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
まとめ
こちらのモジュールは今後基本的な関数を充実させる予定です。
是非お試しいただき、ダウンロードサイトに直接フィードバックを
お願いします。
- 中村 憲一郎