Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreShape the future of the Fabric Community! Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions. Take survey.
Hi,
Here is my working code to update a dataset:
# This sample script calls the Power BI API to progammtically trigger a refresh for the dataset # It then calls the Power BI API to progammatically to get the refresh history for that dataset # For full documentation on the REST APIs, see: # https://msdn.microsoft.com/en-us/library/mt203551.aspx # Instructions: # 1. Install PowerShell (https://msdn.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell) and the Azure PowerShell cmdlets (https://aka.ms/webpi-azps) # 2. Set up a dataset for refresh in the Power BI service - make sure that the dataset can be # updated successfully # 3. Fill in the parameters below # 4. Run the PowerShell script # Parameters - fill these in before running the script! # ===================================================== # An easy way to get group and dataset ID is to go to dataset settings and click on the dataset # that you'd like to refresh. Once you do, the URL in the address bar will show the group ID and # dataset ID, in the format: # app.powerbi.com/groups/{groupID}/settings/datasets/{datasetID} $groupID = "me" # the ID of the group that hosts the dataset. Use "me" if this is your My Workspace $datasetID = "d234581a-734c-473c-be6c-e72f54ff9058" # the ID of the dataset that hosts the dataset # AAD Client ID # To get this, go to the following page and follow the steps to provision an app # https://dev.powerbi.com/apps # To get the sample to work, ensure that you have the following fields: # App Type: Native app # Redirect URL: urn:ietf:wg:oauth:2.0:oob # Level of access: all dataset APIs $clientId = "fbeb6bda-74a4-4a51-9c92-38a22c172a49" # End Parameters ======================================= # Calls the Active Directory Authentication Library (ADAL) to authenticate against AAD function GetAuthToken { $adal = "C:\Program Files\On-premises data gateway\Microsoft.IdentityModel.Clients.ActiveDirectory.dll" $adalforms = "C:\Program Files\On-premises data gateway\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll" [System.Reflection.Assembly]::LoadFrom($adal) | Out-Null [System.Reflection.Assembly]::LoadFrom($adalforms) | Out-Null $redirectUri = "urn:ietf:wg:oauth:2.0:oob" $resourceAppIdURI = "https://analysis.windows.net/powerbi/api" $authority = "https://login.microsoftonline.com/common/oauth2/authorize"; $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority $authResult = $authContext.AcquireToken($resourceAppIdURI, $clientId, $redirectUri, "Auto") return $authResult } # Get the auth token from AAD $token = GetAuthToken # Building Rest API header with authorization token $authHeader = @{ 'Content-Type'='application/json' 'Authorization'=$token.CreateAuthorizationHeader() } # properly format groups path $groupsPath = "" if ($groupID -eq "me") { $groupsPath = "myorg" } else { $groupsPath = "myorg/groups/$groupID" } # Refresh the dataset $uri = "https://api.powerbi.com/v1.0/$groupsPath/datasets/$datasetID/refreshes" Invoke-RestMethod -Uri $uri –Headers $authHeader –Method POST –Verbose # Check the refresh history $uri = "https://api.powerbi.com/v1.0/$groupsPath/datasets/$datasetID/refreshes" Invoke-RestMethod -Uri $uri –Headers $authHeader –Method GET –Verbose
Only issue is I get prompted to login, twice!
Is there some code I can add to my above powershell script to bypass these userid prompts? Where exactly would that code be inserted into my code?
Thanks
Jason
Solved! Go to Solution.
nevermind I figured it out.
Actually can someone let me know how i I can pass the password encriped to the powershell script? Hard now the working copy is hardcoded
Actually nevermind I figured it out.
Thanks
Hi @mcguija,
Congratulations, you have resolved your issue by yourself. Please mark your reply as answer. More people will learn new things and get helpful information clearly and easily.
Best Regards,
Angelia
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
User | Count |
---|---|
34 | |
32 | |
21 | |
11 | |
8 |
User | Count |
---|---|
53 | |
42 | |
28 | |
13 | |
11 |