Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
みなさん、こんにちは。
今日は管理者の方向けの情報として、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
まとめ
こちらのモジュールは今後基本的な関数を充実させる予定です。
是非お試しいただき、ダウンロードサイトに直接フィードバックを
お願いします。
- 中村 憲一郎