Freigeben über


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 removed

  • Anonymous
    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 removed

  • Anonymous
    December 08, 2015
    早々のご回答ありがとうございます。 改修を待ってから再調査することにします。

  • Anonymous
    December 14, 2015
    先日バージョン 1.9 が公開されましたので、是非お試しください。 github.com/.../1.9

  • 中村 憲一郎
  • Anonymous
    December 14, 2015
    最新バージョンではメッセージを返すようになっていました。 ありがとうございます。