Dynamics CRM Online: 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 ファイルを解凍し、UpdateCrmUsersSettings
フォルダを任意の場所に保存します。
サンプルスクリプトの編集
UpdateCrmUsersSettings フォルダ内の UpdateCrmUsersSettings.ps1 を
任意のエディタで開きます。ここでは PowerShell ISE を利用します。
1. AddCrmOLUsersFromCSV.ps1 を右クリックし編集をクリックします。
2. 73 行目の $crmAdminUser に Dynamics CRM Online の管理者権限
があるユーザー名を入力します。
3. 74 行目の $crmAdminPassword に上記ユーザーのパスワードを
入力します。
4. 77 行目の $organizationName に設置型の場合は組織名を入力し、
オンラインの場合は $organizationName =”” とします。
5. 78 行目 の $serverUrl に設置型の場合はサーバーのアドレスを http か
https から指定し、オンラインの場合は $serverUrl = “” とします。
6. ユーザー設定のパラメーターを指定します。
$advancedFindStartupMode: 高度な検索のモードを指定します。
1 が簡易、2 が詳細です。
$timeZoneCode: ユーザーのタイムゾーンを指定します。タイムゾーンは
Get-CrmTimeZones で取得できます。
$pagingLimit: ページに表示できるレコード数を指定します。指定できる数字は
25、50、75、100、250 です。
$reportScriptErrorOption: スクリプトエラーが発生した場合の動作を指定します。
1 が 「エラー報告を Microsoft に送信するときに確認ダイヤログを表示する」
2 が 「確認ダイアログを表示せずに、自動的にエラー報告を Microsoft に送信する」
3 が 「Microsoft Dynamics CRM に関するエラー報告を Microsoft に送信しない」です。
$uiLanguageId: UI 言語を指定します。
$transactionCurrencyName: 通貨名を指定します。
7. スクリプトを保存します。
スクリプトの流れ
このサンプルスクリプトは、以下の順序で処理を行います。
- Dynamics CRM 設置型/Online 組織への接続作成
- 有効なユーザー一覧を読み込みます。
- ユーザー毎にユーザー設定を取得し、値を変更します。
注意点
- スクリプトはサンプルのため、検証環境で動作を試してください。
- 通貨や言語は事前に作成や有効化が必要です。
まとめ
今回は Microsoft Dynamics CRM Online ユーザーを作成するスクリプトを
紹介しましたが、サンプルには他にも色々なスクリプトが含まれています
ので、是非お試しください。
- 中村 憲一郎
Comments
Anonymous
November 10, 2015
いつも楽しく拝見させていただいております。 PowerShellからUserSettingsエンティティの更新について、質問させてください。 IsSendAsAllowed属性をfalseからtrueに更新したいのですが、PowerShellから更新ができません。 ちなみにtrueからfalseへの更新は可能なのですが... 何か情報をお持ちでしたら教えていただけないでしょうか。Anonymous
November 11, 2015
コメントありがとうございます。 ご連絡いただいた問題は新しいバージョンで修正されているため、お手数ですが最新のバージョンをダウンロードしていただき再度ご確認いただけますでしょうか。 ‐ 中村 憲一郎Anonymous
November 15, 2015
The comment has been removedAnonymous
November 16, 2015
コメントありがとうございます。 ご確認いただき、ありがとうございました。
- 中村 憲一郎
Anonymous
December 08, 2015
PowerShellでのユーザー情報の更新で、追加で質問させていただきます。 Office365全体管理者に対して、CRMの部署やセキュリティロールが更新できないのはCRMの製品仕様だと思いますが、 PowerShellメソッドの Set-CrmUserBusinessUnit や Add-CrmSecurityRoleToUser を実行するとエラーがcatchできません。(内部的には正常終了しているようです) CRMのUI側でエラーが表示されるようにPowerShell側でも異常を検知するか、 もしくは何か回避方法があれば教えていただけないでしょうか。Anonymous
December 08, 2015
The comment has been removedAnonymous
December 08, 2015
早々のご回答ありがとうございます。 改修を待ってから再調査することにします。Anonymous
December 14, 2015
先日バージョン 1.9 が公開されましたので、是非お試しください。 github.com/.../1.9
- 中村 憲一郎
- Anonymous
December 14, 2015
最新バージョンではメッセージを返すようになっていました。 ありがとうございます。