이 PowerShell 명령은 Windows가 보여주지 않는 모든 시작 프로그램을 나열합니다
만약 여러분이 책임감 있는 Windows 사용자로서 시작 프로그램을 확인하기 위해 작업 관리자를 열어본 적이 있다면, 소식이 있습니다—Windows 작업 관리자에 있는 시작 프로그램 목록은 당신에게 거짓말을 합니다. 모든 시작 프로세스를 보지 못하면 시작 프로그램을 비활성화해서 PC 부팅 시간을 빠르게 최적화할 수 없습니다.
Windows가 작업 관리자에 보여주는 것은 설치한 프로그램과 서비스 중에서 선택한 시작 앱 목록일 뿐, 전체 그림은 아닙니다. Windows가 시작될 때 스스로 로드되는 실제 프로그램 목록은 훨씬 더 길며, 이 PowerShell 명령을 알지 못하면 Windows는 이를 표시할 의도가 없습니다.
모든 시작 프로그램 요구 사항을 위한 PowerShell 명령
윈도우가 모든 것을 숨기는 곳을 파헤치는 한 줄
PowerShell을 열고, 일부 항목을 표시하려면 관리자 권한이 필요하기 때문에 가급적 관리자 권한으로 실행한 후 다음 명령을 실행하세요:
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Format-List
그리고 그게 다입니다. 이 한 가지 명령어만으로 작업 관리자에서 한 번도 암시하지 않았던 시작 프로그램 항목을 보여줄 수 있습니다. 더 상호작용적인 목록을 선호한다면 Format-List 플래그를 Out-GridView로 바꾸어 별도의 창에서 검색 가능하고 정렬 가능한 테이블을 얻을 수 있습니다. 이를 통해 항목을 필터링하고 실제로 보는 데이터를 이해할 수 있습니다.
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Out-GridView마지막으로, 나중에 비교하기 위해, 예를 들어 시스템을 시간에 걸쳐 감사하기 위해 이 목록을 저장하고 싶다면, 결과를 텍스트 파일로 보내는 것도 가능합니다:
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User | Format-List > C:\startup_audit.txt문법을 익히고 나면 비교적 사용하기 쉬운 명령어이며, PC 성능을 얼마나 면밀히 모니터링하느냐에 따라 금방 좋아하는 명령어가 될 수 있습니다. 또한 배우기 쉽지만 큰 차이를 만드는 Windows 명령어 중 하나이기도 합니다.
생각보다 훨씬 더 많이 파고들고 있어
시작 폴더, 레지스트리 키, 그리고 그 사이의 모든 것
이 명령의 주요 동인은 Win32_StartupCommand라는 WMI(Windows Management Instrumentation) 클래스이며, 마이크로소프트에 의해 공식적으로 "사용자가 컴퓨터 시스템에 로그인할 때 자동으로 실행되는 명령"으로 정의되어 있습니다. 이 클래스는 로컬 사용과 원격 관리를 위해 설계되었으며, 즉 IT 관리자는 네트워크 상의 기기를 직접 만지지 않고도 이를 실행할 수 있습니다.
이 클래스는 발견한 각 시작 프로그램 항목에 대해 여덟 가지 속성을 제공합니다: Caption, Command, Description, Location, Name, SettingID, User, 및 UserID. 이들 모두 유용하지만, 가장 많이 필요한 두 가지는 Location과 User입니다. 이 두 가지는 각각 항목이 레지스트리나 파일 시스템에서 정확히 어디에 있는지와 어떤 계정에 속하는지를 알려주기 때문입니다.
Windows에는 프로그램이 부팅 시 실행되도록 등록할 수 있는 장소가 꽤 많습니다. 문제는 작업 관리자가 그 중 일부만 모니터링한다는 것입니다. 이 PowerShell 명령어는 다음 레지스트리 경로의 항목을 표시합니다:
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run: 컴퓨터의 모든 사용자에게 적용됩니다. 대부분의 일반적인 시작 항목에서 사용됩니다.
- HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run: 특정 사용자가 로그인할 때 사용자별로 실행됩니다.
- HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run: 64비트 버전 Windows에서 실행되는 32비트 프로그램의 시작 항목을 저장합니다.
이 주요 경로 외에도, 처음 두 키에는 RunOnce 변형이 있으며, 이는 한 번 실행된 후 스스로 삭제되도록 되어 있습니다. 이 메커니즘은 설치 프로그램과 업데이트 서비스에서 사용되지만, 항상 제대로 정리되지 않는 경우가 있습니다. 세 번째 경로의 경우, Windows가 자동으로 레지스트리 리디렉션을 처리하지만, 작업 관리자에서는 이 노드에 있는 항목을 놓칠 수 있어 32비트 프로그램 시작 등록이 64비트 시스템에서 사실상 보이지 않게 되며, 직접 찾아 들어가야 확인할 수 있습니다.
그리고 시작 프로그램 폴더도 있습니다. 레지스트리 키와 마찬가지로, 이것들도 다음과 같이 사용자별과 시스템 전체로 나뉩니다:
- C:\Users[사용자이름]\AppData\Roaming\Microsoft\Windows\시작 메뉴\프로그램\시작프로그램 (사용자별)
- C:\ProgramData\Microsoft\Windows\시작 메뉴\프로그램\시작 프로그램 (시스템 전체)
이 폴더에 놓인 모든 프로그램 바로가기는 Windows가 부팅될 때 실행됩니다. 아마 짐작할 수 있겠지만, 이 폴더들은 Win32_StartupCommand 명령을 통해서도 나타납니다.
그리고 그래, 여전히 몇몇 시작 시간을 놓치고 있어
물건들이 여전히 숨을 수 있는 곳
만약 단 한 가지 명령으로 Windows가 가진 모든 시작 프로그램 비밀을 발견했다고 생각했다면, 틀린 것은 아닙니다. Win32_StartupCommand는 작업 관리자보다 향상되었지만, 다음 사항들은 보여주지 않습니다:
- 로그인 시 실행되도록 설정된 예약 작업
- 자동으로 시작되도록 설정된 Windows 서비스
- 자동 시작 확장 지점(ASEPs)
여기서 가장 좋은 선택은 마이크로소프트 자체의 Sysinternals Autoruns 도구를 사용하는 것입니다. 이 도구는 브라우저 확장, 셸 확장, Winlogon 알림 등 200개 이상의 자동 시작 위치를 포함합니다.
즉, Autoruns는 별도의 다운로드가 필요하고 설치가 필요하며 단순한 PowerShell 명령보다 훨씬 더 복잡합니다. 게다가 Autoruns가 보여주는 모든 것이 비활성화할 가치가 있는 것은 아닙니다. 그 중 일부는 시스템이 제대로 작동하기 위해 필요한 Windows 또는 프로그램 서비스입니다.
WIn32_StartupCommand는 시작 시 로드되는 내용을 현실적으로 보고 싶어하는 대부분의 사용자에게 접근성과 세부 정보 사이에서 적절한 균형을 제공합니다. 즉, Windows가 부팅될 때 실행되는 모든 단일 프로세스를 알고 싶지 않은 이상 말이죠.
이것을 한 번 실행해 보세요—왜 중요한지 알게 될 거예요
부팅 시간을 가장 빠르게 정리하는 방법
이 명령을 실행하는 명백한 이유는 부팅 시간과 성능 때문입니다. 만약 컴퓨터가 시작 시 느리게 느껴진다면, 작업 관리자가 보여주지 않는 항목들이 해결책일 수 있습니다. 업데이트 확인 프로그램, 클라우드 동기화 에이전트, 텔레메트리 데몬, OEM 불필요 소프트웨어는 모두 작업 관리자에서 보이지 않으면서 시스템을 느리게 만드는 원인입니다.
주목할 만한 보안 측면도 있습니다. 레지스트리 실행 키는 악성코드에서 가장 흔히 남용되는 지속성 메커니즘 중 하나입니다. 이 PowerShell 명령어를 주기적으로 실행하고 출력을 파일에 저장한 뒤 이를 알려진 정상 기준과 비교하는 것은, 더 큰 문제로 번지기 전에 무단 추가를 빠르게 발견할 수 있는 방법입니다. 그래서 이 명령어는 제가 가장 자주 사용하는 Windows PowerShell 명령어 중 하나입니다.
핵심은 당신이 인식하지 못하는 모든 것을 삭제하는 것이 아닙니다—그렇게 하면 운영 체제가 쉽게 망가질 수 있습니다. 핵심은 실제로 당신의 컴퓨터에서 백그라운드로 실행되고 있는 것을 아는 것입니다. 작업 관리자는 그런 접근을 제공하기 위해 설계된 것이 아니라 터미널이 그 역할을 합니다.








