Dynamics CRM: PowerShell で複数組織のシステム設定を確認する

みなさん、こんにちは。

今日は管理者の方向けの情報として、PowerShell を使って複数の Microsoft
Dynamics CRM 組織設定を更新する方法を紹介します。設置型/オンライン
ともに利用可能です。

事前準備

PowerShell 4.0

今回利用する PowerShell モジュールは PowerShell 4.0 以上が必要と
なります。以下の方法でバージョンが確認可能です。

1. PowerShell を起動して、以下のコマンドを実行します。
PS C:\> host
2. Version にバージョン情報が表示されます。

バージョンが 4.0 より古い場合は、以下のページより新しいモジュールを
取得してください。

Windows Management Framework 4.0
https://www.microsoft.com/ja-jp/download/details.aspx?id=40855

Microsoft Dynamics CRM モジュール

Microsoft Dynamics CRM 用の PowerShell モジュールのインストールは
以下の記事をご覧ください。

Dynamics CRM: 組織用 PowerShell の紹介

サンプル

Microsoft Dynamics CRM のユーザー登録サンプルスクリプトは
以下の手順で利用できます。

1. ブラウザより以下のサイトにアクセスします。
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-functions-for-16c5be31

2. Description にある Microsoft.Xrm.Data.Powershell Samples_日付.zip を
ダウンロードします。

3. ダウンロードした zip ファイルを解凍し、MultiOrgOperation
フォルダを任意の場所に保存します。

サンプルスクリプトの編集

MultiOrgOperation フォルダ内の MultiOrgOperation.ps1 を
任意のエディタで開きます。ここでは PowerShell ISE を利用します。

1. MultiOrgOperation.ps1 を右クリックし編集をクリックします。

2. 16 行目の $connectionsSourceCsvPath に CRM 組織への接続情報を
保存した CSV ファイルパスを入力します。

3. 55 行目と 56 行目のコードを削除して、以下のコードに入れ替えます。
Write-Output "通貨の小数点設定を変更する"
Set-CrmSystemSettings -conn $conn -PricingDecimalPrecision 1

4. 変更を保存します。

5. MultiOrgOperation フォルダ内の connectionssource.csv を開きます。

6. Dynamics CRM 組織への接続情報を入力します。設置型の場合は Type
に OnPrem と入力し、ServerUrl に Dynamics CRM サーバーのアドレスを
入力します。オンラインの場合は Type に Online と入力し、Deployment
Region にリージョンを入力します。日本の場合は JPN です。

7. CSV ファイルを保存します。

スクリプトの流れ

このサンプルスクリプトは、以下の順序で処理を行います。

- CSV ファイルより複数の Dynamics CRM 組織の接続情報を取得
- 接続を作成して、 $conns 変数に格納
- $conns 変数を foreach 処理して同じ内容の処理を実施

注意点

- スクリプトはサンプルのため、検証環境で動作を試してください。
- CRM のバージョンによって存在しない設定もあります。

まとめ

今回はシステム設定の変更を試してみましたが、必要な設定を
すべて行うことで複数組織を同じ設定にすることも可能です。
是非おためしください!

- 中村 憲一郎