Skip to content

Instantly share code, notes, and snippets.

@darrenjrobinson
Created August 29, 2016 04:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save darrenjrobinson/b5523c8caaf1d3674826e103b8965668 to your computer and use it in GitHub Desktop.
Save darrenjrobinson/b5523c8caaf1d3674826e103b8965668 to your computer and use it in GitHub Desktop.
# PowerBI Username
$username = "user@customer.com.au"
# Password for PowerBI User
$password = "1tsAS3cr3t!" | convertto-securestring -AsPlainText -Force
# Client ID from the PowerBI Client App created as the pre-req's
$clientID = "71b5f022-abcd-4516-efgh-e32ede85beer"
$credentials = New-Object System.Management.Automation.PSCredential $Username,$password
# AuthN and get Token
$authToken = Get-PBIAuthToken -clientId $clientID -Credential $credentials
# Look to see if our DataSet Exists
$dataSetUserMetadata = Get-PBIDataSet -authToken $authToken -name "Office365 License Reporting"
if (-not $dataSetUserMetadata)
{
# If cannot find the DataSet create it with this schema
$dataSetUserSchema = @{
name = "Office365 License Reporting"
; tables = @(
@{name = "Users"
; columns = @(
@{ name = "UPN"; dataType = "String" }
, @{ name = "objectID"; dataType = "String" }
, @{ name = "GivenName"; dataType = "String" }
, @{ name = "Surname"; dataType = "String" }
, @{ name = "DisplayName"; dataType = "String" }
, @{ name = "mail"; dataType = "String" }
, @{ name = "AccountEnabled"; dataType = "Boolean" }
)}
@{name = "User Provisioned Licenses"
; columns = @(
@{ name = "objectID"; dataType = "String" }
, @{ name = "UPN"; dataType = "String" }
, @{ name = "ProvisionedPlans"; dataType = "String" }
)
}
@{name = "User Assigned Licenses"
; columns = @(
@{ name = "objectID"; dataType = "String" }
, @{ name = "UPN"; dataType = "String" }
, @{ name = "AssignedPlans"; dataType = "String" }
)
}
@{name = "License Plans"
; columns = @(
@{ name = "objectID"; dataType = "String" }
, @{ name = "skuId"; dataType = "String" }
, @{ name = "skuPartNumber"; dataType = "String" }
, @{ name = "suspended"; dataType = "Integer" }
, @{ name = "warning"; dataType = "Integer" }
, @{ name = "consumedUnits"; dataType = "Integer" }
, @{ name = "enabled"; dataType = "Integer" }
)
}
)}
$dataSetUserMetadata = New-PBIDataSet -authToken $authToken -dataSet $dataSetUserSchema -Verbose
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment