Power BI 用 PowerShell モジュール

Power BI チームより、管理者および開発者の方が使える PowerShell モジュールが公開されました。本記事では GitHub にある README を中心に紹介します。

[GitHub: PowerBI PowerShell](https://github.com/Microsoft/powerbi-powershell)
[Microsoft Power BI Cmdlets for Windows PowerShell and PowerShell Core](https://docs.microsoft.com/en-us/powershell/power-bi/overview?view=powerbi-ps)

# PowerShell/PowerShell Core 用 Microsoft Power BI コマンドレット

これはコミュニティベースのモジュールであり、オープンソースです。

## PowerShell モジュール

Power BI 用のモジュールは機能ごとに分かれていますが、基本 MicrosoftPowerBIMgmt を入れることで全てが利用できます。

| 説明| モジュール名 | PowerShell Gallery リンク|
| ----------- | ----------- | ----------------------- |
| 全てを含むメインモジュール | `MicrosoftPowerBIMgmt` | [![MicrosoftPowerBIMgmt](https://img.shields.io/powershellgallery/v/MicrosoftPowerBIMgmt.svg?style=flat-square&label=MicrosoftPowerBIMgmt)](https://www.powershellgallery.com/packages/MicrosoftPowerBIMgmt/) |
| ユーザープロファイル関連のモジュール | `MicrosoftPowerBIMgmt.Profile` | [![MicrosoftPowerBIMgmt.Profile](https://img.shields.io/powershellgallery/v/MicrosoftPowerBIMgmt.Profile.svg?style=flat-square&label=MicrosoftPowerBIMgmt.Profile)](https://www.powershellgallery.com/packages/MicrosoftPowerBIMgmt.Profile/) |
| ワークスペース関連のモジュール | `MicrosoftPowerBIMgmt.Workspaces` | [![MicrosoftPowerBIMgmt.Workspaces](https://img.shields.io/powershellgallery/v/MicrosoftPowerBIMgmt.Workspaces.svg?style=flat-square&label=MicrosoftPowerBIMgmt.Workspaces)](https://www.powershellgallery.com/packages/MicrosoftPowerBIMgmt.Workspaces/) |
| レポートやダッシュボード関連のモジュール | `MicrosoftPowerBIMgmt.Reports` | [![MicrosoftPowerBIMgmt.Reports](https://img.shields.io/powershellgallery/v/MicrosoftPowerBIMgmt.Reports.svg?style=flat-square&label=MicrosoftPowerBIMgmt.Reports)] (https://www.powershellgallery.com/packages/MicrosoftPowerBIMgmt.Reports/) |
| データセットや行操作関連のモジュール | `MicrosoftPowerBIMgmt.Data` | [![MicrosoftPowerBIMgmt.Data](https://img.shields.io/powershellgallery/v/MicrosoftPowerBIMgmt.Profile.svg?style=flat-square&label=MicrosoftPowerBIMgmt.Data)](https://www.powershellgallery.com/packages/MicrosoftPowerBIMgmt.Data/)

## サポートされる環境と PowerShell のバージョン

* Windows PowerShell v3.0 以上および .NET 4.6.1 以上
* _[予定]_ PowerShell Core (v6) およびクロスプラットフォームサポート

## インストール

管理者として実行している PowerShell で以下コマンドを実行します。

```powershell
Install-Module -Name MicrosoftPowerBIMgmt
```

個別のモジュールだけをインストールすることも可能です。

```powershell
Install-Module -Name MicrosoftPowerBIMgmt.Workspaces
```

既にインストール済みの場合、以下コマンドで更新が行えます。

```powershell
Update-Module -Name MicrosoftPowerBIMgmt
```

### アンインストール

管理者として実行している PowerShell で以下のコマンドを実行します。

```powershell
Get-Module MicrosoftPowerBIMgmt* -ListAvailable | Uninstall-Module -Force
```

## 使い方

多くのコマンドレットでは以下の 2 つのスコープがサポートされています。
> **Individual** : ログインしているユーザーに属するオブジェクトが取得できます。
> **Organization** : 組織全体のオブジェクトが取得できます。Power BI のテナントアドミンだけが実行できるコマンドです。

### Power BI に接続 (ログイン)

```powershell
Connect-PowerBIServiceAccount   # or Login-PowerBIServiceAccount
```

### ワークスペースの取得

```powershell
Get-PowerBIWorkspace
```

### ワークスペースの名前や説明を更新

```powershell
Set-PowerBIWorkspace -Scope Organization -Id "3244f1c1-01cf-457f-9383-6035e4950fdc" -Name "Test Name" -Description "Test Description"
```

### ワークスペースにユーザーを追加

```powershell
Add-PowerBIWorkspaceUser -Scope Organization -Id 3244f1c1-01cf-457f-9383-6035e4950fdc -UserEmailAddress john@contoso.com -AccessRight Admin
```

### ワークスペースからユーザーを削除

```powershell
Remove-PowerBIWorkspaceUser -Scope Organization -Id 3244f1c1-01cf-457f-9383-6035e4950fdc -UserEmailAddress john@contoso.com
```

### 削除したワークスペースの復元

```powershell
Restore-PowerBIWorkspace -Id "3244f1c1-01cf-457f-9383-6035e4950fdc" -RestoredName "TestWorkspace" -AdminEmailAddress "john@contoso.com"
```

### レポートの取得

```powershell
Get-PowerBIReport
```

### データセットの取得

```powershell
Get-PowerBIDataset
```

### テーブルとデータセットの追加

```powershell
$col1 = New-PowerBIColumn -Name ID -DataType Int64
$col2 = New-PowerBIColumn -Name Data -DataType String
$table1 = New-PowerBITable -Name SampleTable1 -Columns $col1,$col2
$col3 = New-PowerBIColumn -Name ID -DataType Int64
$col4 = New-PowerBIColumn -Name Date -DataType DateTime
$col5 = New-PowerBIColumn -Name Detail -DataType String
$col6 = New-PowerBIColumn -Name Result -DataType Double
$table2 = New-PowerBITable -Name SampleTable2 -Columns $col3,$col4,$col5,$col6
$dataset = New-PowerBIDataSet -Name SampleDataSet -Tables $table1,$table2
Add-PowerBIDataSet -DataSet $dataset
```
### テーブルにデータを追加

```powershell
Add-PowerBIRow -DataSetId 4b644350-f745-48dd-821c-f008350199a8 -TableName SampleTable1 -Rows @{"ID"=1;"Data"="Value1"},@{"ID"=2;"Data"="Value2"}
```

### テーブルにデータを CSV から追加

```powershell
Add-PowerBIRow -DataSetId 4b644350-f745-48dd-821c-f008350199a8 -TableName SampleTable1 -Rows (Import-Csv -Path ".\data.csv")
```

### テーブルのデータを削除

```powershell
Remove-PowerBIRow -DataSetId 4b644350-f745-48dd-821c-f008350199a8 -TableName SampleTable1
```

### その他のコマンド
他にも多くのコマンドがあります。以下コマンドで情報を取得してください。

```powershell
Get-Command -Module MicrosoftPowerBIMgmt*
Get-Help <Cmdlet> -Detailed
```

## 問題の報告とフィードバック

不具合を見つけたり、特定の機能の要求などは、[issues](https://github.com/Microsoft/powerbi-powershell/issues) に登録してください。

もしフィードバックが PowerShell に限定されない場合は、[Power BI コミュニティ](http://community.powerbi.com/) か [Power BI サポート](https://powerbi.microsoft.com/en-us/support/) まで連絡してください。

今度の予定は [ROADMAP.md](https://github.com/Microsoft/powerbi-powershell/blob/master/ROADMAP.md) にあります。

### セキュリティの問題

セキュリティの問題や不具合は、個別に [Microsoft Security Response Center (MSRC): secure@microsoft.com](mailto:secure@microsoft.com) までご連絡ください。

返信は 24 時間以内に行われます。

## コントリビュート

このプロジェクトはオープンであり、コントリビュートを歓迎します。コントリビューターは Contributor License Agreement (CLA) 同意いただく必要があります。詳細は [https://cla.microsoft.com](https://cla.microsoft.com) をご覧ください。

プルリクエストを作成した際、CLA ボットが自動的に CLA に同意しているか確認します。インストラクションに沿って同意をお願いします。

より詳細は [CONTRIBUTING](https://github.com/Microsoft/powerbi-powershell/blob/master/CONTRIBUTING.md) を参照してください。