(관련된 자료)
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)
'Windows > PowerShell' 카테고리의 다른 글
PowerShell | (관리자) 계정 비활성화/활성화 (0) | 2022.09.21 |
---|---|
PowerShell | IP주소 변경하기(고정 IP, DHCP 로 변경 등) (0) | 2022.09.16 |
PowerShell | 설치된 프로그램 목록 보기(레지스트리, WmiObject ...) (0) | 2022.08.08 |
PowerShell | Write-Host, Write-Output 차이 (0) | 2022.07.07 |
PowerShell | 명령어, 코드가 길어 질 때 개행, 줄바꿈 하기 (0) | 2022.07.05 |
댓글