이 글에서는 Windows 제어판의 설치된 프로그램 목록에서 특정 프로그램을 숨기는 방법을 소개합니다. 이 가이드는 Windows XP부터 최신 Windows 10 및 Windows 11 빌드까지 모든 버전에 적용할 수 있습니다.
설정/제어판에서 특정 프로그램 숨기기
예를 들어 이미지 편집기 GIMP 항목을 숨기는 작업을 진행한다고 가정해 보겠습니다. 먼저 제어판을 열고 프로그램 및 기능 섹션으로 이동한 뒤, 설치된 프로그램 목록에 GIMP 2.10.28 항목이 있는지 확인합니다.

최신 설정 UI(설정 → 앱 → 설치된 앱)에서도 동일한 정보를 확인할 수 있습니다.

설치된 응용 프로그램 항목은 Windows 레지스트리를 통해 숨길 수 있습니다. 먼저 Windows가 제어판에 표시되는 설치된 프로그램 목록을 어떻게 구성하는지 이해해야 합니다. 설치된 앱 정보는 다음 세 가지 레지스트리 키 중 하나에 저장됩니다.
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall – 해당 장치의 모든 사용자에게 적용되는 일반 프로그램 목록
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall – x64 Windows에 설치된 x86(32비트) 앱의 항목이 포함된 키
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall – 현재 사용자에게만 설치된 앱 정보가 포함된 키
Windows는 이 레지스트리 키들의 항목을 기반으로 설정 또는 제어판에 표시되는 설치된 프로그램 목록을 생성합니다.
이 예시에서 GIMP는 Winget 패키지 관리자를 통해 현재 사용자 프로필에만 설치되었으므로, 해당 항목은 사용자 레지스트리 하이브인 HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall에 위치합니다.
애플리케이션의 레지스트리 키(이 예시에서는 GIMP-2_is1)를 찾은 후, 새 32비트 DWORD 값을 생성합니다. 값 이름은 SystemComponent, 데이터는 1로 설정합니다: SystemComponent = dword:00000001

설치된 프로그램 목록 창을 새로 고칩니다(F5 키 누름). 그러면 GIMP 항목이 목록에서 사라진 것을 확인할 수 있습니다.

이 변경 사항은 Windows 10의 최신 설정 패널에 표시되는 설치된 프로그램 목록에도 동일하게 적용되어 해당 항목이 사라집니다.

팁: 설치된 프로그램을 숨기는 또 다른 방법도 있습니다. 동일한 레지스트리 키에서 DisplayName 매개 변수의 이름을 QuietDisplayName으로 변경하면 됩니다.
명령 프롬프트에서도 프로그램을 숨길 수 있습니다. 아래 명령은 스크립트나 배치 파일에 활용할 수 있는 예시로, 설치된 7-Zip 압축 프로그램을 숨깁니다:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-zip" /v SystemComponent /t REG_DWORD /d 1 /f

프로그램을 다시 표시하려면 SystemComponent 매개 변수를 삭제하거나 값을 0으로 변경하면 됩니다(REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-zip" /v SystemComponent /t REG_DWORD /d 0 /f). 또는 QuietDisplayName 매개 변수의 이름을 다시 DisplayName으로 되돌려도 됩니다.
팁: 애플리케이션과 함께 해당 서비스까지 숨겨야 한다면 "Windows 서비스를 사용자에게 숨기는 방법" 문서를 참고하세요.
단, C++ 재배포 가능 패키지나 .NET Framework와 같은 시스템 구성 요소는 이 방법으로는 숨길 수 없습니다.
PowerShell 스크립트로 여러 앱 한 번에 숨기기
여러 애플리케이션을 한 번에 사용자에게서 숨겨야 한다면 다음 PowerShell 스크립트를 활용할 수 있습니다. 숨기려는 프로그램 목록은 $AppsToHide 변수에 지정합니다. 스크립트는 모든 레지스트리 경로를 검사하여 프로그램 항목이 있는 키를 찾고, 각 키에 값이 1인 SystemComponent 매개 변수를 생성합니다(이미 매개 변수가 존재하면 값을 1로 변경).
PowerShell로 레지스트리 키와 매개 변수를 관리하는 방법에 대한 자세한 내용은 "PowerShell로 레지스트리 키 조회, 생성, 수정, 삭제하기" 문서를 참고하세요.
$RegPaths = @(
"HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*",
"HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*",
"HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
)
$AppsToHide = @(
"*GIMP*",
"*7-Zip*",
"*Teams*",
"*Firefox*"
)
foreach ($App in $AppsToHide) {
foreach ($Path in $RegPaths) {
$AppKey = (Get-ItemProperty $Path -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -like $($App) }).PSPath
if ($null -ne $AppKey) {
$SystemComponent = Get-ItemProperty $AppKey -Name SystemComponent -ErrorAction SilentlyContinue
if (!($SystemComponent)) {
New-ItemProperty "$AppKey" -Name "SystemComponent" -Value 1 -PropertyType DWord
}
else {
$SystemComponentValue = (Get-ItemProperty $AppKey -Name SystemComponent -ErrorAction SilentlyContinue).SystemComponent
if ($SystemComponentValue -eq 0) {
Set-ItemProperty "$AppKey" -Name "SystemComponent" -Value 1
}
}
}
}
}

이 예시에서는 Teams, GIMP, Firefox, 7-Zip 앱을 숨기는 데 스크립트를 사용했습니다. 이 PowerShell 스크립트는 GPO(그룹 정책)를 통해 도메인 내 컴퓨터에 배포하여 실행할 수도 있습니다.
다른 사용자에게 모든 설치된 앱 숨기기
제어판에서 사용자에게 설치된 모든 프로그램을 완전히 숨길 수도 있습니다. 이를 위해서는 로컬 그룹 정책 설정을 편집해야 합니다.
로컬 그룹 정책 편집기를 실행하고(gpedit.msc), 사용자 구성 → 관리 템플릿 → 제어판 → 프로그램 섹션으로 이동한 뒤, "프로그램 및 기능 페이지 숨기기" 정책을 사용으로 설정합니다.

gpupdate /force 명령으로 그룹 정책 설정을 갱신한 후, 사용자에게 제어판의 "프로그램 및 기능" 창이 보이지 않는지 확인합니다. 제어판에는 "시스템 관리자가 프로그램 및 기능을 사용하지 않도록 설정했습니다"라는 메시지가 표시됩니다.

또한 아래 명령을 사용하여 Windows 제어판에 설치된 프로그램 목록이 표시되지 않도록 차단할 수도 있습니다:
REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Programs" /v NoProgramsCPL /t REG_DWORD /d 1 /f
REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Programs" /v NoProgramsAndFeatures /t REG_DWORD /d 1 /f