2011-06-21 127 views
0

我想幫助驗證從文件夾安裝的更新的狀態,以下是腳本。從文件夾安裝Windows更新並返回已安裝的狀態

# 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,我想一些方法來驗證,如果這些更新的安裝是否正確,或給一個狀態,如果安裝失敗。

我希望我們的一些PowerShell的大師幫我:)

感謝, Vinith!

回答

0

我幾乎不是PS大師,但前段時間我玩的是在不同的環境下檢查更新,所以也許我的建議對你很有用。

重點。嘗試調用這個片段我都抄下來:

$session = New-Object -ComObject Microsoft.Update.Session 
$searcher = $session.CreateUpdateSearcher() 
$result = $searcher.Search("IsInstalled=1 and Type='Software'") 
$result.Updates | get-member 

經過一段時間後(它有點慢),你會得到的東西,你可以檢查列表。我不知道你有關於你正在安裝的這些更新的信息,但這裏有一些可能有用的信息,比如TitleKBArticleIDs(希望包含一些相關信息)。然後,您將最後一行替換爲您想要的內容,例如

$result.Updates | select Title 

並與最近安裝的更新的數據進行比較。

對不起,在某種程度上不完整的答案 - 我目前的Windows盒有一些問題,上面的代碼不能像我記得那樣工作。不要猶豫,指出是否錯誤,錯誤人性! ;)

相關問題