Automatizando o Power BI com PowerShell

No curso Power BI Serviço Implantação 2.0 do Paulo Sawaya, ele ensina como usar o powershell integrado ao Power BI Service, trabalhando com essas duas ferramentas é possível, por exemplo, adicionar vários usuários de forma mais rápida em um workspace, atualizar datasets automaticamente e publicar relatórios PBIX com apenas um comando.

Pré-requisitos para começar

Antes de usar o PowerShell com o Power BI, você precisa configurar alguns itens:

  1. Instalar o módulo Power BI

    Abra o PowerShell como administrador e execute:

     Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Autenticar no Power BI

     Login-PowerBI
    
  3. Permissões no workspace

    Você precisa ser administrador do workspace ou ter permissões apropriadas para executar ações via PowerShell

Como criar workspaces e adicionar usuários

Criar um novo workspace

$newWorkspace = New-PowerBIWorkspace -Name "Relatórios Financeiros"

Adicionar usuários a um workspace

# Definir variáveis
$workspaceName = "Relatórios Financeiros"
$emailUsuario = "usuario@empresa.com"
$acesso = "Admin"  # Pode ser: Admin, Member, Contributor, Viewer

# Obter o workspace pelo nome
$workspace = Get-PowerBIWorkspace -Name $workspaceName

# Adicionar usuário
Add-PowerBIWorkspaceUser -Id $workspace.Id -UserPrincipalName $emailUsuario -AccessRight $acesso

Adicionar múltiplos usuários (via CSV)

Exemplo de Planilha Excel(csv):

Email,Acesso
joao@empresa.com,Admin
maria@empresa.com,Viewer
ana@empresa.com,Member

Script para importar e adicionar:

$workspace = Get-PowerBIWorkspace -Name "Relatórios Financeiros"
$usuarios = Import-Csv "C:\Caminho\usuarios.csv"

foreach ($usuario in $usuarios) {
    Add-PowerBIWorkspaceUser -Id $workspace.Id `
        -UserPrincipalName $usuario.Email `
        -AccessRight $usuario.Acesso
}
💡
Se for usar grupos do Azure AD em vez de e-mails individuais, o processo é o mesmo: basta usar o nome do grupo.

Para remover usuários:

Remove-PowerBIWorkspaceUser -Id $workspace.Id -UserPrincipalName $email

Como automatizar a publicação de relatórios PBIX

Script para publicar o relatório:

# 1. Login no Power BI
Login-PowerBI

# 2. Definir variáveis
$workspaceName = "Seu Workspace"
$caminhoPBIX = "C:\Caminho\SeuRelatório.pbix"
$nomeRelatorio = "Seu Relatório"

# 3. Obter o workspace pelo nome
$workspace = Get-PowerBIWorkspace -Name $workspaceName

# 4. Publicar o relatório
New-PowerBIReport -Path $caminhoPBIX -Name $nomeRelatorio -WorkspaceId $workspace.Id -ConflictAction CreateOrOverwrite
💡
O parâmetro -ConflictAction CreateOrOverwrite é importante para substituir o relatório existente com o mesmo nome.

Como automatizar a execução

  1. Salve o script acima como .ps1

    Exemplo: PublicarRelatorio.ps1

  2. Agende com o Agendador de Tarefas do Windows

    Abra o Agendador de Tarefas > Arquivo > Executar nova tarefa > Em "Ação" → "Iniciar um programa" → use:

    programa: powershell

     -ExecutionPolicy Bypass -File "C:\Caminho\PublicarRelatorio.ps1"
    
💡
Para rodar automaticamente sem perdir login pode usar o Azure DevOps Pipeline ou chamada direta à REST API com token

Dica bônus: publicar vários PBIX de uma só vez

$workspace = Get-PowerBIWorkspace -Name "Vendas"

$arquivos = Get-ChildItem "C:\Relatorios\" -Filter *.pbix

foreach ($arquivo in $arquivos) {
    Publish-PowerBIReport -Path $arquivo.FullName -WorkspaceId $workspace.Id -ConflictAction CreateOrOverwrite
}

⋆。°✩ Outros comandos úteis

Listar relatórios:

# Buscar o ID do workspace
$workspace = Get-PowerBIWorkspace -Name $workspaceName

# Listar 
Get-PowerBIReport -WorkspaceId $workspace.Id

Listar workspaces:

Get-PowerBIWorkspace

Listar datasets:

# Buscar o ID do workspace
$workspace = Get-PowerBIWorkspace -Name $workspaceName

# Listar
Get-PowerBIDataset -WorkspaceId $workspace.Id

Gerenciar permissões em relatórios/dashboards

É feito via API REST usando Invoke-PowerBIRestMethod

✩ Dica bônus: pesquisar comandos disponíveis ✩

Get-Command -Module MicrosoftPowerBIMgmt*


Além do uso do PowerShell, também existe a API REST do Power BI, que oferece ainda mais flexibilidade e controle para quem precisa integrar o Power BI com outros sistemas ou construir automações mais avançadas. Através dela, é possível acessar recursos que vão além dos cmdlets do PowerShell, como exportar relatórios para PDF, gerar tokens de incorporação e obter métricas detalhadas de uso. É uma abordagem mais técnica, ideal para times de desenvolvimento e projetos com alto nível de automação. Em breve, posso trazer um artigo completo explicando como utilizar a API REST do Power BI na prática.

Referência: Power BI Cmdlets reference | Microsoft Learn

Por Gabrielle Cristine ✧

0
Subscribe to my newsletter

Read articles from Gabrielle Cristine directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Gabrielle Cristine
Gabrielle Cristine