Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
久しぶりに 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 |
それぞれのコマンドレットの用途は、なんとなーくわかりますよね。
具体的な使い方は次の投稿で。