我想要一个帮助验证从文件夹安装的更新的状态,这是下面的脚本。
# Specify the location of the *.msu files
$updatedir = "C:\install\hvpatches"
foreach ($msu in $msus)
{
write-host "Installing update $msu ..."
$fullname = $msu.fullname
# Need to wrap in quotes as folder path may contain spaces
$fullname = "`"" + $fullname + "`""
###
$files = Get-ChildItem $updatedir -Recurse
$msus = $files | ? {$_.extension -eq ".msu"}
# Specify the command line parameters for wusa.exe
$parameters = $fullname + " /quiet /norestart"
# Start wusa.exe and pass in the parameters
$install = [System.Diagnostics.Process]::Start( "wusa",$parameters )
$install.WaitForExit()
write-host "Finished installing $msu"
}
从上面的脚本安装Windows更新,我想要的是验证这些更新是否正确安装的某种方式,或者在安装失败时给出状态。
我希望我们的一些知识产权大师帮助我:)
谢谢, Vinith!
答案 0 :(得分:0)
我不是PS大师,但前段时间我正在玩不同背景下的检查更新,所以也许我的建议会对你有用。
重点。试着调用我之前写下的这段代码:
$session = New-Object -ComObject Microsoft.Update.Session
$searcher = $session.CreateUpdateSearcher()
$result = $searcher.Search("IsInstalled=1 and Type='Software'" )
$result.Updates | get-member
过了一段时间(它有点慢)你会得到你可以查看的东西清单。我不知道您正在安装的这些更新有哪些信息,但这里有一些可能有用,例如Title
或KBArticleIDs
号码(希望包含一些相关信息)。然后用你想要的东西替换最后一行,例如
$result.Updates | select Title
并与最近安装的更新数据进行比较。
很抱歉,某些不完整的答案 - 我当前的Windows框有一些问题,上面的代码不能像我记得的那样工作。不要犹豫,指出它是否完全错误,错误的人性化! ;)