none
PowerShell による、連続したwusaの実行が空ぶりする

    質問

  • 不要となる複数のWindowsパッチをアンインストールしたく
    下記のようなスクリプトを実行しても 
    一番最初のパッチしか、アンインストールされないです。

    ※wusa の命令がすぐに終わってしまい、直ちに次のwusaが実施されますが、特にエラーは発生しません。

    試しに、Start-Sleep -m 60000
    を追加して、処理が重複しないようにしても改善されません。

    何か注意する事がありますでしょうか?

    ----------------------------------------

    $KBNumbers = @(
    "4040956",
    "4038792",
    "4054999",
    "4040967"
    )

    foreach ( $KBNumber in $KBNumbers ){
        $KB = "KB" + $KBNumber
        echo ""
        echo "$KB installed ?"

        $Result = Get-HotFix -ErrorAction SilentlyContinue $KB

        if( $Result -ne $null ){
            echo "$KB installed. Try $KB uninstall."
            wusa /uninstall /quiet /norestart /kb:$KBNumber
            echo "$KB uninstalled. Need reboot."
        }
        else{
            echo "$KB not installed."
        }
    }


    2018年4月20日 6:14

すべての返信

  •  Start-Process -FilePath wusa -Wait -ArgumentList "/uninstall /quiet /norestart /kb:$KBNumber"

    のように、Start-Processコマンドレットに-Waitパラメータを付与し、プロセスの終了を待機してみてください。


    2018年4月20日 6:34
    モデレータ