티스토리 뷰

Microsoft Faric/Power BI

Power BI PowerShell

정홍주 2018. 8. 18. 08:00

 

Power BI PowerShell

 

조직 관리자나 사용자, 개발자 들이 Power BIPowerShell을 통해서 작업을 진행할 수 있습니다. 예를 들어 조직 전체의 보고서, 앱 작업영역 리스트를 나열하거나, 사용자가 본인 보고서 중에서 특정 데이터 원본으로 생성된 보고서만 추출하거나 여러 보고서를 각각 pbix 파일로 한꺼번에 내보내기할 수도 있습니다.

 

Power BI PowerShell에 대한 자세한 정보는 아래 링크를 참고할 수 있습니다.

https://powerbi.microsoft.com/ko-kr/blog/working-with-powershell-in-power-bi/

https://github.com/Microsoft/powerbi-powershell

 

Power BI PowerShell을 사용하기 위해서는 Power BI PowerShell 모듈을 설치해야 합니다. PowerShell이 설치되어 있어야 하고 .NET 4.6.1 이상이 구성된 환경이어야 합니다.

# 설치

Install-Module -Name MicrosoftPowerBIMgmt

필요하다면 Update, Uninstall 할 수 있습니다. 그후 Power BI 계정으로 로그온해야 다른 작업을 할 수 있습니다.

Connect-PowerBIServiceAccount   # or Login-PowerBIServiceAccount

Power BI 서비스 관리자로 로그온했다면 여러 구문을 실행하여 조직전체의 정보를 확인할 수 있습니다. 주요 구문은 다음과 같습니다.

Get-PowerBIDataset

Get-PowerBIDatasource

Get-PowerBIReport

Get-PowerBIDashboard

Get-PowerBIWorkspace

Export-PowerBIReport

Add-PowerBIWorkspaceUser 

Remove-PowerBIWorkspaceUser

Invoke-PowerBIRestMethod

 

 

제일 먼저 앱 작업 영역 목록을 나열해보겠습니다.

 

Get-PowerBIWorkspace

여러 속성이 나오며 이름만 출력할 수 있습니다.

Get-PowerBIWorkspace | Select Name

실행한 계정의 앱 작업 영역만 확인할 수 있으며 조직 관리자로서 조직 전체를 보기위해서는 -Scope Organization 옵션을 지정해야 합니다.

Get-PowerBIWorkspace -Scope Organization | Select Name

위에서와 달리 조직 전체의 앱 작업영역 목록을 확인할 수 있습니다.

소유자가 없는 유령(?) 앱 작업영역을 찾기 위해서는  -Orphaned 을 붙여서 실행할 수 있습니다.

 

 

또 다른 예를 들어보겠습니다. 구체적인 내용은 아래 링크를 참고하면 됩니다.

https://powerbi.microsoft.com/ko-kr/blog/announcing-apis-and-powershell-cmdlets-for-power-bi-administrators/

 

SQL Server 데이터 연결 중에서 Sales 데이터베이스로 생성된 데이터 집합을 구합니다.

$datasetIds = Get-PowerBIDataset -Scope Organization -ErrorAction SilentlyContinue | Foreach {$dsId = $_.Id; Get-PowerBIDatasource -DatasetId $dsId -Scope Organization -ErrorAction SilentlyContinue | Where-Object {$_.DatasourceType -eq 'Sql' -and ($_.ConnectionDetails.Server -like 'sqldb01' -and $_.ConnectionDetails.Database -like 'sales')} | Foreach { $dsId }}

$datasetIds

 

위에서 찾은 데이터 집합을 통해 생성된 보고서를 확인할 수 있습니다.

$reports = $datasetIds | Foreach { Get-PowerBIReport -Filter "datasetId eq '$_'" -Scope Organization }

$reports

 

 

그리고 또 다른 유용한 예인 Export-Power​BIReport 의 경우 pbix 파일로 내보내기 할 수 있습니다.

https://docs.microsoft.com/en-us/powershell/module/microsoftpowerbimgmt.reports/export-powerbireport?view=powerbi-ps

하지만 실행을 해도 현재는 오류가 발생합니다. 서비스 관리자이지만 다음과 같은 오류가 발생합니다.
Export-PowerBIReport : Operation returned an invalid status code 'Unauthorized'

 

버그가 해결된다면 손쉽게 백업 할 수 있어 더 효과적일 것으로 판단됩니다.

 

간략히 Power BI PowerShell에 대해서 살펴보았습니다.

 

 

 

댓글