본문 바로가기
Windows/PowerShell

PowerShell | 설치된 프로그램 삭제, 프로그램 삭제하기

by 지혜를 탐구하는 오딘 2022. 8. 9.
728x90
반응형

(관련된 자료)

PowerShell | 설치된 프로그램 목록 보기(레지스트리, WmiObject ...) - https://wednesday1304.tistory.com/entry/PowerShell-%EC%84%A4%EC%B9%98%EB%90%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%AA%A9%EB%A1%9D-%EB%B3%B4%EA%B8%B0%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC-WmiObject

 

 

1. PowerShell 로 프로그램을 삭제하는 이유

[appwiz.cpl] 또는 [설정 --> 앱 -->  앱 및 기능] 에서 하나씩 삭제할 수도 있다. 하지만 PowerShell 로 하는 이유는 결국 자동화 및 빠르게 반복된 작업을 하고 싶을 때에 사용하면 되겠다.

 

 

2. PowerShell 로 프로그램 삭제 방법

설치된 프로그램 목록 보기🔗

설치된 프로그램 목록에서 "UninstallString"의 값을 실행시키면 프로그램이 삭제된다. 프로그램 및 기능에서 삭제할 때에 해당 UninstallString을 실행시켜서 삭제한다. 이 방법을 코드화 하는 것이다.

# 삭제할 프로그램 이름
$Uninstall_Program = '삭제할 프로그램 이름'




# 설치된 프로그램 목록
$Installed_Apps = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*    # 32 bit
$Installed_Apps += Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*     # 64 bit
 
# 삭제할 프로그램 정보
$Uninstall_Program_Info = $Installed_Apps | Where-Object { $_.DisplayName -eq $Uninstall_Program }

# 프로그램 삭제
## msiexe 포함 여부 확인, 프로그램 삭제 진행
if ($Uninstall_Program_Info.UninstallString -like "msiexec*") 
{
    $arg = ($Uninstall_Program_Info.UninstallString -split ' ')[1] 
    $arg = ($arg -replace '/I','/X ') + ' /q'
    
    Start-Process msiexec.exe -ArgumentList $arg -Wait
} 
else 
{
    Start-Process $Uninstall_Program_Info.UninstallString -Wait
}

$Uninstall_Program 에 배열로 선언하고, 그 아래를 foreach 등으로 변환하면 되겠다.

 

유의할 점은 DisplayName 이 정확하게 들어가야 한다. 특히 문자열의 앞뒤에 띄어쓰기 유의하자(Trim()으로 해결 가능).

 

 

 


(관련된 자료)

PowerShell | 설치된 프로그램 목록 보기(레지스트리, WmiObject ...) - https://wednesday1304.tistory.com/entry/PowerShell-%EC%84%A4%EC%B9%98%EB%90%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%AA%A9%EB%A1%9D-%EB%B3%B4%EA%B8%B0%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC-WmiObject

 

 

 

(참고 자료)

Start-Process (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-7.2)

 

 

 

 

 

728x90
반응형

댓글