【Management】Windows Update Powershell Module (1)
久しぶりに Windows Update をスクリプトから実行しようかなぁと思って PowerShell のコマンドレットを探していたら、標準では提供されていないんですねぇ。全く気づいておりませんでした。
となると、VBScript のように Microsoft.Update.Session を呼び出すしかないものかと思っていると、なんと便利なモジュールが提供されていました。
Windows Update PowerShell Module
https://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc
さっそく使ってみましょう。
まずはダウンロードして ZIP ファイルを開いてみてください。PSWindowsUpdate フォルダが格納されているはずです。この中にこのモジュールを構成するスクリプト群が格納されています。
これらのファイルは「インターネットゾーンからダウンロードしたファイル」なので、必ず「ブロックの解除」を実行しておきましょう。でないと実行できません。
- 【PowerShell】一括で「ブロックを解除」する ~ Windows PowerShell 編 その1
https://blogs.technet.com/b/junichia/archive/2012/01/13/3475162.aspx - 【PowerShell】「ブロックを解除」するためのメソッドを追加してみる
https://blogs.technet.com/b/junichia/archive/2012/01/15/3475439.aspx - 【Management】一括で「ブロックを解除」する streams コマンド編
https://blogs.technet.com/b/junichia/archive/2012/01/12/3475091.aspx
ブロック解除が完了したら、PSWindowsUpdate フォルダを、PowerShell のモジュール用フォルダに保存します。
モジュール用フォルダの場所を確認するには、以下のように PowerShell コンソールから環境変数 PSModulePath を確認します。
PS C:\windows\system32> $env:PSModulePath C:\Users\junichia\Documents\WindowsPowerShell\Modules;C:\windows\system32\WindowsPowerSh ell\v1.0\Modules\;C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\ |
(参考)Windows PowerShell: Windows PowerShell のカスタム ツールをパッケージ化して配布する
ここでは3つのパスが指定されています。
以下のパスはユーザーの個人的なモジュールパスで、今回はモジュールを追加するのでこの配下に PSWindowsUpdate フォルダを移動してください。なお、既定ではこのパスは存在しないので、自分で作ってください。
- C:\Users\junichia\Documents\WindowsPowerShell\Modules
以下のパスはシステムモジュール用のパスです。
- C:\windows\system32\WindowsPowerShell\v1.0\Modules\
以下は Windows Azure 用コマンドレットをインストールしたときに作成されたパスでしょう。既定では存在しませんので、無くても不安にならないでください。
- C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\
PSWindowsUpdate フォルダを移動したら、コンソールから Import しましょう。
PS C:\> Import-Module pswindowsupdate |
ブロック解除が行われていれば、特にエラーは出力されないはずです。
次に、コマンドレットの一覧を見てみましょう。以下の用の出力されたら問題ありません。
PS C:\>Get-Command -Module pswindowsupdate
CommandType Name ModuleName ----------- ---- ---------- Function Add-WUOfflineSync pswindowsupdate Function Get-WUHistory pswindowsupdate Function Get-WUInstall pswindowsupdate Function Get-WUInstallerStatus pswindowsupdate Function Get-WUList pswindowsupdate Function Get-WURebootStatus pswindowsupdate Function Get-WUServiceManager pswindowsupdate Function Get-WUUninstall pswindowsupdate Function Hide-WUUpdate pswindowsupdate Function Remove-WUOfflineSync pswindowsupdate Function Test-ElevatedShell pswindowsupdate |
それぞれのコマンドレットの用途は、なんとなーくわかりますよね。
具体的な使い方は次の投稿で。