みなさま、こんにちは。Configuration Manager サポート チームです。
本日は Configuration Manager で PowerShell スクリプトを配布する手順についてご紹介いたします。
PowerShell スクリプトは、こちらの記事で紹介したスクリプト機能でも配布可能ですが、繰り返し実行することを想定してパッケージ機能で配布する手順をご紹介します。
定期的なメンテナンスを行うスクリプトや、NOIDMIF ファイルを定期的に作成してカスタム インベントリを収集する場合にも使用できますので、ご活用ください。
事前準備
配布したい PowerShell スクリプト ファイルを作成します。名前は、sample.ps1 などの任意の名前にします。
パッケージの作成手順
- 管理コンソールを起動し [ソフトウェア ライブラリ] - [概要] - [アプリケーション管理] - [パッケージ] を開きます。
- [パッケージ] を右クリックし、[パッケージの作成] をクリックします。
- [パッケージとプログラムの作成ウィザード] が表示されますので、[名前] に任意の名前を入力し、[このパッケージにソース ファイルを含める] にチェックを入れます。
- [ソース フォルダー] の参照ボタンをクリックし、事前準備で用意したスクリプト ファイルの格納場所 (\
\Share\PowerShell など) を指定します。 - 次のページで、[標準プログラム] を指定します。
- 次のページで、[名前] に任意の名前を指定し、ログオン状態に関わらずスクリプトを実行するために次のように指定します。
・コマンドライン"%Windir%\sysnative\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File sample.ps1
(※) -File パラメータには、スクリプト ファイル名を指定してください
・プログラムの実行条件
ユーザーのログオン状態に関係なし
・実行モード
管理者権限で実行する - その他の設定項目は、既定のまま、パッケージの作成を完了します。
パッケージの展開手順
- 作成されたパッケージを右クリックし、[展開] をクリックします。
- ソフトウェアの展開ウィザードが開きます。[参照] をクリックし、配布先のコレクションを指定して [次へ] をクリックします。
- [コンテンツ] ページにおいて、[追加] をクリックし配布ポイントを選択し、[次へ] をクリックします。
- [展開設定] ページにおいて、目的を [必須] にし [次へ] をクリックします。
※ 必須とすることで、ユーザー操作が必要なく、インストールが完了します。 - [展開スケジュール] ページからスケジュールを以下のように設定し、[次へ] をクリックします。
・割り当てスケジュールの [新規] をクリックし、[次のイベントの直後に割り当てる] > [直ちに] をクリックして、[OK] をクリックします。
・再実行の動作を [プログラムを常に再実行する] を選択します。
※スクリプト ファイルを 1 回だけではなく繰り返し実行させておきたい場合は、割り当てスケジュールの [新規] をクリックし、[次のスケジュールに割り当てる] > [スケジュール] をクリック、[間隔指定] より、例えば 「3 時間」と指定して [OK] をクリックします。 - [ユーザー側の表示と操作] において、通知設定を設定し [次へ] をクリックします。通知させたくない場合は、[割り当てられたプログラムの個別の実行をユーザーに許可する] をオフにします。
- [配布ポイント] ページにおいて、展開設定を設定し [次へ] をクリックします。(他のパッケージの展開設定と合わせて頂くとよいかと存じます。)
- 以降のページを進み、ソフトウェアの展開ウィザードが正常に完了することを確認します。
上記の手順を実施いただくことで、クライアントへの展開は完了します。
上記以外の設定項目につきましては、ご要件に応じて適宜変更をいただけます。各項目のご説明については、次の公開情報をご確認ください。
Title: パッケージとプログラムを作成する
URL: https://learn.microsoft.com/ja-jp/mem/configmgr/apps/deploy-use/packages-and-programs#create-a-package-and-program
Title: パッケージとプログラムをデプロイする
URL: https://learn.microsoft.com/ja-jp/mem/configmgr/apps/deploy-use/packages-and-programs#deploy-packages-and-programs
実行結果の確認方法
パッケージ機能で配布した場合、スクリプトのリターン コードが 0 か 3010 以外であれば、「失敗」判定されます。
そのため、スクリプトの実行に失敗した端末は、「監視」の「展開ステータス」にて、対象パッケージの展開ステータスを把握し、失敗のステータスに分類されますので、そちらでご確認ください。
補足
パッケージの配布を停止したい場合
作成したパッケージの配布を停止する場合、管理コンソールより、[ソフトウェア ライブラリ] - [概要] - [アプリケーション管理] - [パッケージ] を開きます。
プログラムを選択し、下ペインより [プログラム] に移動します。下ペインより、プログラム名を右クリック > 無効 をクリックします。ポップアップが表示されるので [はい] をクリックします。
再度、クライアント上でスクリプトを実行する場合は、プログラムを [有効] とします。
展開してから実行されるまでの流れについて
パッケージを展開した後は、クライアント側で [コンピューター ポリシーの取得および評価サイクル] が実行されることで、スクリプトのダウンロードと実行が行われます。こちらは既定で 60 ~ 120 分間隔で実行されています。
なお、できる限り早く実行させたい場合は、「クライアント通知」という機能を使用すれば、「コンピューターポリシーの取得および評価サイクル」を直ちに実行するように、サーバー側からクライアントに通知させることができますので、こちらもご利用ください。(デバイス単位でもコレクション単位でも実行可能です。)
Title: Configuration Manager でのクライアント通知
URL: https://learn.microsoft.com/ja-jp/mem/configmgr/core/clients/manage/client-notification