2011-06-21 4 views
0

フォルダからインストールされた更新プログラムの状態を確認するためのヘルプが必要でした。以下のスクリプトがあります。フォルダからWindows Updatesをインストールし、インストール済みかどうかを返信してください

# 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" 
} 

更新はスクリプト上からインストールされているウィンドウは、私が望んでいたことは、これらの更新プログラムが正しくインストールされているかどうかを確認するか、インストールが失敗した場合、ステータスを与えるためにいくつかの方法です。

私たちの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 

をしばらく(それはちょっと遅いです)、あなたがチェックできるもののリストを取得します。インストールしているこれらのアップデートについてどのような情報があるのか​​分かりませんが、TitleまたはKBArticleIDsのような有用な情報があります。最後の行を必要なものに置き換えます(例:

$result.Updates | select Title 

最近インストールされたアップデートに関するデータと比較してください。

申し訳ありませんが、私の現在のWindowsボックスにはいくつかの問題があり、上記のコードは覚えているように正しく動作しません。もしそれが単に間違っている、指摘することを躊躇しないerrre humanum est! ;)

関連する問題