- はじめに
- (1) ソフトウェア更新プログラムのスキャン サイクル
- (2) コンピューター ポリシーの取得および評価サイクル
- (3) ソフトウェア更新プログラムの展開評価サイクル
- (1)(2)(3)をまとめて実行する
- SCCMコンソールで実行する
- 参考記事
はじめに
Japan System Center Support Team Blog「System Center Configuration Manager で、できる限り早く更新プログラムを適用する方法について」が紹介されています。
クライアントの操作、VBScriptでの実行方法が紹介されていますが、実際の業務では、クライアントの操作をエンドユーザーに連絡してお願いしたり、VBSの実行をユーザーに案内して実施してもらったりと、システム管理者、ユーザーサポートの方は負担が大きいですよね。そこで、PowerShellを使ったリモート実行方法を紹介します。
(1) ソフトウェア更新プログラムのスキャン サイクル
ソフトウェアの更新ポイント (WSUS) サーバーに対してスキャンを行い、更新プログラムの必要有無を判断します。
このサイクルは、既定で 7 日間隔で実行されます。
コマンドは管理者権限で実行してください。TriggerScheduleのGUIDの説明は参考記事に記載のリンクを参照してください。
#ソフトウェア更新プログラムのスキャンサイクルのリモート実行(Scan by Update Source)
#computernameは、リモート実行先のコンピューター名を指定してください
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000113}"
(2) コンピューター ポリシーの取得および評価サイクル
SCCM サーバーで設定された更新プログラムの展開を受信します。
このサイクルは、既定で 1 時間間隔で実行されます。
コマンドは管理者権限で実行してください。TriggerScheduleのGUIDの説明は参考記事に記載のリンクを参照してください。
#コンピューター ポリシーの取得および評価サイクルのリモート実行(Machine Policy Assignments Request,Machine Policy Evaluation)
#computernameは、リモート実行先のコンピューター名を指定してください
#コンピューター ポリシーの取得(Machine Policy Assignments Request)
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000021}"
#コンピューター ポリシーの評価サイクル(Machine Policy Evaluation)
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000022}"
(3) ソフトウェア更新プログラムの展開評価サイクル
過去に受信した展開でインストールに失敗した更新プログラムがあれば再評価し、インストールを再試行します。
このサイクルは、既定で 7 日間隔で実行されます。
コマンドは管理者権限で実行してください。TriggerScheduleのGUIDの説明は参考記事に記載のリンクを参照してください。
#ソフトウェア更新プログラムの展開評価サイクルのリモート実行(Software Updates Assignments Evaluation Cycle)
#computernameは、リモート実行先のコンピューター名を指定してください
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000108}"
(1)(2)(3)をまとめて実行する
コマンドは管理者権限で実行してください。各コマンドの間に1分のスリープを入れています。
#computernameは、リモート実行先のコンピューター名を指定してください
#ソフトウェア更新プログラムのスキャンサイクル(Scan by Update Source)
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000113}"
#1分待機
sleep 60
#コンピューター ポリシーの取得(Machine Policy Assignments Request)
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000021}"
#1分待機
sleep 60
#コンピューター ポリシーの評価サイクル(Machine Policy Evaluation)
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000022}"
#1分待機
sleep 60
#ソフトウェア更新プログラムの展開評価サイクル(Software Updates Assignments Evaluation Cycle)
Invoke-WMIMethod -ComputerName computername -Namespace root\ccm -Class SMS_CLIENT -Name TriggerSchedule "{00000000-0000-0000-0000-000000000108}"
SCCMコンソールで実行する
SCCMコンソールのスクリプトに、こちらのPowerShellを登録しておき、SCCMのコンソール操作のみで、PowerShellの実行が可能です。SCCMへ登録するPowerShellには「-ComputerName 」のオプション指定は不要となります。
詳細な手順はこの記事では割愛しますので、こちらの記事を参考にしてください。