Denys Chamberland
Senior BI Developer
© MBAU2018 – Denys Chamberland
Power BI REST API + PowerShell en action
Agenda
• Revue versions modules Powershell
• Exemple d’une logique fictive à reproduire
• Demo
• Enregregistrement d’application AAD
• Revue de logique du script ./copyWorkspace.ps1 Powershell
• Exécution de code sur console Windows Powershell
• Questions
Modules -MSOnline - Deprecated
https://docs.microsoft.com/en-us/powershell/module/msonline/?view=azureadps-1.0
MSOnline
Modules - AzureAD
https://docs.microsoft.com/en-gb/powershell/module/Azuread/?view=azureadps-2.0
AzureAD
Modules – Power BI REST APIs
https://msdn.microsoft.com/en-US/library/mt147898.aspx
Power BI REST API
Modules – MicrosoftPowerBIMgmt
https://docs.microsoft.com/en-us/powershell/power-bi/overview?view=powerbi-ps
Power BI REST API
MicrosoftPowerBIMgmt
Options versions de modules PowerShell
Modèle de cycle de déploiement
DEV Workspace - Reports
DEV Workspace - Reports
DEV Workspace - Reports
DEV Workspace - Reports
DEV Workspace - Reports
DEV Workspace - Datasets
DEV Workspace - Datasets
DEV Workspace - Datasets
DEV Workspace - Datasets
DEV Workspace - Datasets
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
https://dev.powerbi.com/apps
Option d’enregistrement: AAD [Azure Active Directory]
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Option d’enregistrement:– MS Azure Portal
Edit Manifest:– MS Azure Portal
!!?
Edit Manifest:– MS Azure Portal
Edit Manifest:– MS Azure Portal
"availableToOtherTenants": true
Edit Manifest:– MS Azure Portal
"availableToOtherTenants": false
Edit Manifest:– MS Azure Portal
Edit Manifest:– MS Azure Portal
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
PS> Install-Module -Name AzureRM.profile -RequiredVersion 4.1.1
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
PS> Install-Module -Name AzureRM.profile -RequiredVersion 4.1.1
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
PS> Install-Module -Name AzureRM.profile -RequiredVersion 4.1.1
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
PS> Install-Module -Name AzureRM.profile -RequiredVersion 4.1.1
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
Cette condition évite les redondances inutiles d’exportation de dataset
lors de chaque exportation ultérieure de reports!
# only export if this dataset hasn’t been seen
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
# clone report if the underlying dataset already exists in the target workspace,
but we haven’t moved the report itself yet
Cette méthode de clonage évite toute redondance inutile de dataset
lors de chaque exportation ultérieure de reports!
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
https://github.com/Azure-Samples/powerbi-powershell
./copyWorkspace.ps1 - Comment ça marche
./copyWorkspace.ps1 - Comment ça marche
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
Exécution ./copyWorkspace.ps1 - console Windows Powershell
MBAUGTestWorkspace – Reports Yeeesss
MBAUGTestWorkspace – Reports Yeeesss
MBAUGTestWorkspace – Reports Yeeesss
MBAUGTestWorkspace – Reports Yeeesss
MBAUGTestWorkspace – Reports Yeeesss
MBAUGTestWorkspace – Datasets Yeeesss
MBAUGTestWorkspace – Datasets Yeeesss
MBAUGTestWorkspace – Datasets Yeeesss
MBAUGTestWorkspace – Datasets Yeeesss
MBAUGTestWorkspace – Datasets Yeeesss
N.B: Limites…
• On ne peut ici reproduire que les données [datasets] générées a partir
de Power BI Desktop –
i.e. les données obtenues en streaming datasets, données accompagnant
les exemples en ligne [Samples…], etc., ne sont pas prises en charge.
• On doit disposer de droits d'édition relatifs au Workspace source,
car des autorisations d'édition sont exigées pour l'exportation des fichier PBIX.
• Le script de clonage PowerShell ne copie pas les cédules d'actualisation,
les alertes, les abonnements ou les memberships relatifs à un Workspace
- ceux-ci devront être recréés manuellement sur l'espace de travail
Workspace ciblé.
Merci à tous!
Questions?
Liens de références utiles…
https://powerbi.microsoft.com/en-us/blog/working-with-powershell-in-power-bi/
https://www.sqlshack.com/connect-query-power-bi-azure-using-powershell/
http://blogs.solidq.com/en/businessanalytics/
how-to-refresh-power-bi-dataset-from-an-on-premise-power-shell-script/
http://angryanalyticsblog.azurewebsites.net/index.php/2018/02/16/
power-bi-audit-log-analytics-solution/
https://www.c-sharpcorner.com/article/install-power-bi-powershell-in-your-machine
https://github.com/Azure-Samples/powerbi-powershell/blob/master/rebindReport.ps1

MBAUG - Power BI REST API + PowerShell en action