web-dev-qa-db-ja.com

PsExecを使用してWindows Updateをリモートでインストールする

作業中の問題:現在、会社のすべてのWindowsマシンを担当しています。すべてのワークステーションでWindows 7を実行していますが、ドメインがなく、ネットワーク上でWindowsサーバーが実行されていません。それらを管理するために、私はPsExecを使用して、次のように各ワークステーションでコマンドをリモートで実行します。

FOR /F "tokens=*" %%a IN (E:\list-of-workstations.txt) DO CALL :theCommand %%a
PAUSE

:theCommand
FOR /F "tokens=1,2,3,4" %%a IN ("%*") DO (
        psexec \\%%a -s -u %%b -p %%c -c E:\script-to-execute-remotely.bat
)
GOTO:EOF

次に、各ワークステーションでWindows更新をトリガーします。

私が行った調査どうやら 、インストールを開始するように特に指示するWindowsデバイスに送信できるsetコマンドはありません保留中の更新。

多くのサーバー障害とブログのトピックでは、サードパーティのソリューションを使用してWindows Updateをオンデマンドでインストールすることを推奨していますが、これらの推奨されるサードパーティのソリューションはすべて、購入した場合にのみ使用できます。

問題を解決するためにこれまでに取られた手順:つまり、私が行き詰まっているようです:Windowsサーバーがなければ、特にワークステーションにアップデートをインストールするように依頼するネイティブな方法と私が聞いたすべてのサードパーティのソリューションは無料ではありません。

私は正しいですか?私が直面している問題を解決する方法を知っていますか?

3
dbourcet

Michael BaileyによるVBSメソッドに加えて、オンラインで見つけたpowershellスクリプトを変更しました(technetのどこかからですが、正確なリンクが手元にありません)。

#Define update criteria.
$Criteria = "IsInstalled=0 and Type='Software'"

#Search for relevant updates.
$Searcher = New-Object -ComObject Microsoft.Update.Searcher
$SearchResult = $Searcher.Search($Criteria).Updates

If($SearchResult.Count -eq 0){
Write-Host "No Updates Available"
Exit
}

Write-Host "Updates Found: $($SearchResult.Count)`r`n"
$SearchResult | ForEach-Object{Write-Host "$($_.Title) `r`n"}

#Download updates.
$Session = New-Object -ComObject Microsoft.Update.Session
$Downloader = $Session.CreateUpdateDownloader()
$Downloader.Updates = $SearchResult
Write-Host "Download Results:"
$Downloader.Download()

#Install updates.
$Installer = New-Object -ComObject Microsoft.Update.Installer
$Installer.Updates = $SearchResult
$Result = $Installer.Install()
Write-Host "Install Result: $($Result.HResult) `r`n"
Write-Host "Reboot Required: $($Result.RebootRequired) `r`n"

#Reboot if required by updates.
#If ($Result.rebootRequired) { shutdown.exe /t 0 /r }

PDQを使用して実行していますが、PSExecでも使用しています。監査としてマシンごとの更新のみを一覧表示する場合は、検索セクション以降のすべてを除外できます。

更新の問題への回答を探していたときも、これを詳しく調べました: http://blogs.technet.com/b/heyscriptingguy/archive/2011/08/13/use-powershell- to-audit-and-install-windows-patches.aspx

それはあなたの組織によく合うかもしれないツールのように見えます。

2
Chris Davidson

Psexecによる更新のプッシュについては、次の記事を確認してください。 http://techthoughts.info/remotely-install-windows-updates/

これはおそらく、達成したいことを行う方法を正確に説明しています-基本的に、psexecを介してサードパーティのコマンドラインツールwuinstallを使用し、シェルスクリプトを介してリモートマシンに更新をプッシュします

1
GeraldDC

SevenForumsの優れた人々は、これを行うためにVBSでテストする機会のないスクリプトを持っています。 http://www.sevenforums.com/windows-updates-activation/235764-run-window-update-command-line.html

VBSスクリプトは、コマンドラインを使用して記述およびトリガーできます。

さらに、自動更新を処理するレジストリキーを操作することもできます。しかし、それは完璧な答えではありません。

0
Michael Bailey