2021/02/25

新しくなった WUA_SearchDownloadInstall.vbs(自動化やオフラインスキャンに対応)

Windows Update Agent(WUA)API を使用した Windows Update 用サンプル スクリプト「WUA_SearchDownloadInstall.vbs」が新しくなってました。いつ差し替えられたのかわかりませんが、少なくとも去年 7 月には新しくなっていた模様。少なくとも 2019年の時点では古いやつだった。

Searching, Downloading, and Installing Updates (2020/07/23)
https://docs.microsoft.com/ja-jp/windows/win32/wua_sdk/searching--downloading--and-installing-updates

新しいスクリプトはたくさんのパラメーターを新たにサポート。


以下の WindowsUpdate.vbs は古い WUA_SearchDownloadInstall.vbs を改造したもの。検索して更新あれば yes/no でインストールするかしないか選択するだけの単純なスクリプトだった。

Windows Scripting: Windows Update をスクリプトから ( WindowsUpdate.vbs )   

以前公開されてたのはこんな感じで始まるやつ。 こっちにあった → Searching, Downloading, and Installing Updates (Windows) | Microsoft Docs

"Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
WScript.Echo "Searching for updates..." & vbCRLF
Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
..."

パラメーターなしだと以前とあまり変わりませんが...(このあとインストール結果(Installation Result:)と再起動の必要性(Reboot Required:)など表示して終了)


サポートされるパラメーターはこちら。

' Supported parameters:

'    /AppName: Name to pass to the WUA API as the 'calling application';
'             this appears in the Windows Update logs
'             Default: "WUA API Sample Script"
'    /Criteria: Search criteria to be used (see the WUA documentation for
'             IUpdateSearcher::BeginSearch for examples)
'             Default: Search for all non-installed, non-hidden software
'    /Automate: Don't prompt the user for various actions
'             Default: Prompt the user
'    /IgnoreSupersedence: Display all applicable updates, even those
'             superseded by newer updates
'             Default: Ignore supersedes updates
'    /Offline: Path to WSUSSCN2.cab file that should be used for offline sync
'             Default: Don't do offline sync
'    /Service: Update service that script should scan against
'             Available values: WU, MU, WSUS, or an
'             identifying GUID of another service
'             Default: Default service (WSUS if machine is configured to
'                 use it, or MU if opted in, or WU otherwise)
'             Ignored if /Offline is set
'    /NoDownload: Do not download any updates that the scan detects
'    /NoInstall: Do not install any updates that the scan detects
'    /ShowBundle: Output information about the child updates in the
'             bundled updates that are found

/Automate を指定すれば、対話なしで確認、ダウンロード、インストールと進む。

cscript WUA_SearchDownloadInstall.vbs /Automate


 以下のサイトにオフラインスキャンのサンプル スクリプトありますけど、

Using WUA to Scan for Updates Offline
https://docs.microsoft.com/ja-jp/windows/win32/wua_sdk/using-wua-to-scan-for-updates-offline
オフライン検索用の最新の Wsusscn2.cab はこちら(毎月第 2 火 PT 更新、WSUS に同期されるやつ、C パッチとかは含まない)
http://download.windowsupdate.com/microsoftupdate/v6/wsusscan/wsusscn2.cab

新しい WUA_SearchDownloadInstall.vbs なら次のように実行できる。/NoDownload /NoInstall を省略すれば、検出結果に基づいてダウンロードとインストールを進めることもできる。

cscript WUA_SearchDownloadInstall.vbs /Offline:<パス>\wsusscn2.cab /NoDownload /NoInstall

オンライン スキャンなら、こう。今なら .NET の C パッチとか、Adobe Flash の削除更新とかオプションの更新も検索してくる。

cscript WUA_SearchDownloadInstall.vbs /NoDownload /NoInstall


余計な(オプションの)更新を避ける方法として、オフラインスキャンからの自動インストール。

cscript WUA_SearchDownloadInstall.vbs /Offline:<パス>\wsusscn2.cab /Automate

あと、WSUS クライアントで Windows Update(/Service:WU)or Microsoft Update(/Service:MU)を明示的に指定してアップデートさせたりもできる。

ちなみに、既定の検索条件(Criteria)は、"IsInstalled=0 and Type='Software' and IsHidden=0"

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。