Dynamics CRM: 組織用 PowerShell の紹介

みなさん、こんにちは。

今日は管理者の方向けの情報として、Microsoft Dynamics CRM 組織の
データ操作を行う PowerShell を紹介します。

Microsoft.Xrm.Data.Poweshell: PowerShell for Dynamics CRM Organization Data

概要

PowerShell は Microsoft Dynamics CRM 2011 よりサポートされましたが
組織の作成やインポート、トレース設定の変更など、展開サービス関連
の関数とスクリプトが中心となっており、組織レベルの設定の変更や
ユーザー設定の変更、レコードの取得などは行えませんでした。

その後 SDK 内で XrmTooling と呼ばれるツールが提供され、その機能の
1 つとして組織に対する PowerShell がサポートされましたが、あまり
広く知られておらず、また使い方も開発者向けのものでした。

Microsoft.Xrm.Data.Poweshell

Microsoft.Xrm.Data.Poweshell は XrmTooling をベースにして、より
管理者が使いやすい形式にしたものです。このモジュールは多くの
関数を提供します。これらの関数を組み合わせることで用途にあった
スクリプトを作成し、各種作業を自動化することができます。

セットアップの仕方

1. Microsoft.Xrm.Data.Powershell.zipをサイトよりダウンロードして
以下のフォルダのいずれかに解凍します。特定のユーザーで利用する
場合は上のパスを、システム全体で利用する場合は下のパスを使います。

   • %USERPROFILE%\Documents\WindowsPowerShell\Modules
   • %WINDIR%\System32\WindowsPowerShell\v1.0\Modules

以下はユーザープロファイルに解凍したフォルダを展開した例です。

2. モジュールはデジタル署名されていないため、環境によっては実行
ポリシーを変更する必要があります。以下のコマンドを PowerShell で
実行する事でポリシーを変更できます。

 > Set-ExecutionPolicy –ExecutionPolicy RemoteSigned –Scope CurrentUser

詳細は Set-ExecutionPolicy をご覧ください。

3. PowerShell を開いて以下コマンドを実行するとモジュールが

読み込まれます。

 > Import-Module Microsoft.Xrm.Data.Powershell
 使い方
 以下の方法で Dynamics CRM 組織に接続が可能です。
 1. PowerShell を開いて、以下のコマンドを実行します。GUI を利用して
サインインが行えます。接続情報は $conn グローバル変数に格納されます。
 > Connect-CrmOnlineDiscovery –InteractiveMode

2. 以下のコマンドでレコードの作成、更新、読み取り、削除を

実行できます、

  # 取引先企業を作成して GUID を変数に保存します

  $accountId = New-CrmRecord -conn $conn -EntityLogicalName account -Fields @{"name"="Sample Account";"telephone1"="555-5555"}   

  # GUID を表示します

  $accountid

  # GUID を指定してレコードを取得します。

  $account = Get-CrmRecord -conn $conn -EntityLogicalName account -Id $accountId -Fields name,telephone1   

  # 取得したレコードを表示します

  $account

  # 新しい値をレコードに設定します

  $account.name = "Sample Account Updated"

  # レコードを更新します

  Set-CrmRecord -conn $conn -CrmRecord $account

  # GUID を指定してレコードを再度取得します

  Get-CrmRecord -conn $conn -EntityLogicalName account -Id $accountId -Fields name   

  # レコードを削除します

  Remove-CrmRecord -conn $conn -CrmRecord $account

3. 以下のコマンドでシステム設定を操作できます。

  # 現在のシステム設定を表示します 
  Get-CrmSystemSettings -conn $conn –ShowDisplayName   

  # PricingDecimalPrecision 設定の値を 0 から 1 変更します 
  Set-CrmSystemSettings -conn $conn -PricingDecimalPrecision 1  

  # 再度システム設定を表示します。 
  Get-CrmSystemSettings -conn $conn –ShowDisplayName

4. 以下のコマンドでサポートされている関数を取得できます。

  Get-Command *crm*

5. 以下のコマンドでそれぞれの関数の詳細を確認できます。

以下は New-CrmRecord 関数の詳細を表示します。

  Get-Help New-CrmRecord –Detailed

まとめ

こちらのモジュールは今後基本的な関数を充実させる予定です。

是非お試しいただき、ダウンロードサイトに直接フィードバックを

お願いします。

- 中村 憲一郎