none
PowerShell에서 Hotfix제거 RRS feed

답변

  •  

    안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShell에서 Hotfix제거에 대한 답변을 드리겠습니다.

     

    Step 1 : Hotifix ID 정보

     

    Win32)QuickFixEngineering WMI Instance를 이용해서 Hot fix ID 정보를 제공을 할 수 있습니다.

     

    Get-WmiObject -ComputerName . -Class Win32_QuickFixEngineering | select hotfixid

     

     

    Step 2 : WUSA

     

    Standalone Tool WUSA를 이용해서 임의의Hotfix를 제거를 할 수 있습니다.

     

    wusa.exe /uninstall /KB:$hotfixID /quiet /norestart"

     

     

    Step 3 : 문자열 실행

     

    문자열로 작성된 명령어를 Invoke-Expression을 이용해서 실행을 할 수 있습니다. Script 작성시 유용합니다.

    Invoke-Expression "cmd.exe /c wusa.exe /uninstall /KB:$hotfixID /quiet /norestart"

     

    Step 4 : Full Script

     

    Hotfix ID를 인자로 받아서 제거를 합니다.

     

    function Remove-Hotfix

    {   

        param(

            [Parameter(Mandatory=$true)]

            [string] $HotfixID

        )

       

        $computername = $env:computername

     

        $hotfixes = Get-WmiObject -ComputerName $computername -Class Win32_QuickFixEngineering | select hotfixid

     

        if($hotfixes -match $hotfixID)

        {

            $hotfixID = $HotfixID.Replace("KB","")

           

            Write-host "hotfix KB"$HotfixID " 찾았습니다."

            Write-Host "위의 업데이트를 제거를 시작 합니다."

           

            $UninstallString = "cmd.exe /c wusa.exe /uninstall /KB:$hotfixID /quiet /norestart"        

            Invoke-Expression $UninstallString | out-null

     

            while (@(Get-Process wusa -computername $computername -ErrorAction SilentlyContinue).Count -ne 0)

            {

                Start-Sleep 3

                Write-Host "제거 ..."

            }

           

            write-host "$hotfixID KB 업데이트를 제거 했습니다."

       

        }

        else

        {           

     

            write-host "업데이트($hotfixID) 찾았습니다."    

            return

        }

    }

     

    Remove-Hotfix "KB976902"

     

    참고 자료

     

    Description of the Windows Update Stand-alone Installer (Wusa.exe) and of.msu files in Windows Vista, Windows 7, Windows Server 2008 and in Windows Server 2008 R2

    http://support.microsoft.com/kb/934307

    Win32_QuickFixEngineering class

    http://msdn.microsoft.com/en-us/library/windows/desktop/aa394391(v=vs.85).aspx

     

    Invoke-Expression

    http://technet.microsoft.com/ko-kr/library/dd347550.aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 제안됨 milyman 2011년 11월 23일 수요일 오전 6:57
    • 답변으로 표시됨 김도남 2011년 11월 24일 목요일 오전 9:15
    2011년 11월 23일 수요일 오전 5:03
    중재자