PowerBI + PowerShell = Exportar PBIX de Workspace

Olá pessoal, Tudo bem?

Em alguns momentos fazer certas atividades manuais não são agradáveis, principalmente, para nós de tecnologia que sempre queremos ao máximo tarefas rotineiras e manuais.

Recentemente e acredito que utilizarei em muitas outras circunstâncias, foi necessário exportar – fazer download – todos os relatórios de um determinado workspace e republicar em outro workspace, sendo assim, montei um script, mas que com algumas variações, vocês podem montar aplicações para cada necessidade. Vamos lá?

Exportar pbix de Workspace Group

Podemos utilizar este script exportar todos os arquivos pbix de um determinado workspace, afim de backup ou download dos projetos.

# SCRIPT PARA EXPORTAR TODOS OS ARQUIVOS PBIX DE UM DETERMINADO WORKSPACE GROUP
Login-PowerBI
$diretorio = "C:\temp"
cd $diretorio

#NOME DO WORKSPACE A SER EXPORTADO:
$WorkspaceName = "DIGITE_AQUI_NOME_WORKSPACE"

#LOOP PARA EXPORTAÇÃO DO PBIX
$Workspace = Get-PowerBIWorkspace -Name $WorkspaceName
$reportsids = Get-PowerBIReport -Workspace $Workspace | select Id, name
foreach ($rpt in $reportsids)
{
    $rptname = $rpt.Name + ".pbix"
    $id = $rpt.id
    Write-Host "Exportando: $id - $rptname"
    Export-PowerBIReport -ID $id -OutFile $rptname -WorkspaceId $Workspace.Id
}
Write-Host "Finalizado!"

Exportar pbix e importar em outro Workspace Group

Podemos utilizar este script para mover arquivos de um determinado workspace para outro:

Login-PowerBI
$diretorio = "C:\temp\"
cd $diretorio
$WorkspaceName_Export = "DIGITE_AQUI_NOME_WORKSPACE_ORIGEM"
$WorkspaceName_Import = "DIGITE_AQUI_NOME_WORKSPACE_ORIGEM"

#LOOP PARA EXPORTAÇÃO DO PBIX
$Workspace = Get-PowerBIWorkspace -Name $WorkspaceName_Export
$reportsids = Get-PowerBIReport -Workspace $Workspace | select Id, name
foreach ($rpt in $reportsids)
{
    $rptpath = $diretorio + $rpt.Name + ".pbix"
    $id = $rpt.id
    Write-Host "Exportando: $id - $rptpath"
    Export-PowerBIReport -ID $id -OutFile $rptpath -WorkspaceId $Workspace.Id

    # UPLOAD DO RELATORIO
    New-PowerBIReport -Path $rptpath -Name $rpt.name -Workspace ( Get-PowerBIWorkspace -Name $WorkspaceName_Import) -ConflictAction CreateOrOverwrite
}
Write-Host "Finalizado!"

Referências

Gostou da dica? Deixe seu comentário ou dúvida!

Vithor da Silva e Silva | CTO – Datasource Expert
vithor@datasource.expert