グループポリシーを更新するには、gpupdateユティリティを使います。既定ではgpupdateはコンピューターの構成、ユーザーの構成両方を更新します。コンピューターの構成のみを更新する、またはユーザーの構成のみを更新する時に、/targetオプションをつけます。
コンピューターの構成の更新 PS C:\Users\Administrator> gpupdate /target:computer Updating Policy... Computer Policy update has completed successfully. ユーザーの構成の更新 gpupdate /target:user |
既定ではgpupdateは変更された設定しか更新しません。すべての設定を強制的に更新するには、/forceオプションを使用します。
PS C:\Users\Administrator> gpupdate /force User Policy update has completed successfully. |
これからPowershell3.0でドメイン内のクライアントに対してグループポリシー更新をご紹介します。
Step 1:ドメイン内のクライアントオブジェクトを取得する。
ここでGet-ADComputerコマンドを使います。Get-ADcomputerコマンドはActive Directoryモジュールに含まれています。RSATツールからActive Directoryモジュールをインストールできます。
$clientPC = Get-ADComputer –Filter * |
Step 2:クライアントごとに、Powershell リモートセッションを作成する。
New-PSSessionコマンドでセッションを作成します。
$credential = Get-Credential test\administrator $session = New-PSSession –ComputerName $clientPC.name –Credential $credential |
クライアントがオフラインになっている時に、以下のようなエラーメッセージが表示されます。
New-PSSession : <pc name> Connecting to remote server <pc name> failed with the following error message : The WinRM client cannot process the request because the server name cannot be resolved. |
オンラインしているクライアントのセッションが成功しているので、エラーを無視していいです。
Step 3:リモートクライアントでgpupdateコマンドを実行する
Invoke-Commandを使います。確率されたセッションごとにScriptBlock内のコマンドを実行します。
Invoke-Command -Session $session -ScriptBlock {gpupdate /force} |
Step 4:コマンドの実行結果を確認する。
グループポリシーが正しく更新された場合、システムイベントログにEvent 1502が出力されます。Get-EventLogコマンドで確認できます。
Invoke-Command -Session $session -ScriptBlock {Get-EventLog -LogName system -InstanceId 1502 -Newest 1 |
日経BPソフトプレス
売り上げランキング: 217,690
技術評論社
売り上げランキング: 241,533
この記事がお役にたちましたらシェアをお願いします:)
すいません、ComputerNameやclientPC.nameは、クライアントの情報をいれる箇所でしょうか。。
返信削除