1. Overview


본 게시글은 Windows 10 Pro (버전 1809) x64 에서 실행되는 Powershell을 대상으로 기록하였습니다. Windows OS 의 버전이나 사용자의 세팅 환경에 따라 다를 수 있음을 알려드립니다.

 

 

 

1.1 문제의 발견

 

서버의 원격 개발을 위해 VScode의 ssh 연결을 위해 {시작 - 실행}을 통해 Powershell을 입력하여 호출하였다.

[그림 1] 실행을 통한 powershell 호출

 

평소 Powershell을 "CMD"와 유사하게 설정해놓고 사용하고 있다.

[그림 2] CMD와 유사한 Powershell 세팅

 

Windows에서는 {시작 - 실행}으로 Powershell을 실행하는 방법 이외에 다른 방법으로 호출할 수 있도록 지원한다. 

설정(Windows Shortcut : Winkey + i)에서 {개인설정 - 작업표시줄}의 아래 그림에 표시된 토글 버튼의 활성화 여부에 따라 파워유저 메뉴(Windows Shortcut : Winkey + x or 시작버튼 우클릭) 에서 Powershell을 호출할 수 있다.

[그림 3] 개인설정 - 작업 표시줄의 설정

 

해당 토글의 활성화를 통해 파워유저 메뉴에서 Powershell을 실행할 수 있다.

[그림 4] 파워유저 메뉴의 Powershell

 

파워유저 메뉴를 통해 실행한 Powershell과 실행을 통해 실행한 Powershell이 다른 것을 확인할 수 있었다.

같은 Powershell인데 하나는 설정이 적용되어 있고 하나는 기본 설정으로 되어 있는 것을 확인하였다.

[그림 5] 서로 상이한 powershell

 

 

 

2. Body


2.1 파워유저 메뉴의 Path

 

앞서 등장한 {Winkey + i}를 통해 실행할 수 있는 파워유저 메뉴는 아래의 경로에서 관리된다.

C:\Users\[USERNAME]\AppData\Local\Microsoft\Windows\WinX

 

 

{시작 - 실행}을 통해 호출하는 명령은 다음과 같다.

%localappdata%\Microsoft\windows\winX

 

 

파워유저 메뉴의 각 콘텐츠를 관리하는 레지스트리는 다음과 같다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\InboxApp

 

 

해당 경로를 통해 확인한 결과 파워유저 메뉴는 "Group1~3"으로 관리되고 있었다[1].

[그림 6] 파워유저 메뉴와 Group1~3 폴더

 

 

Group1~3 폴더 내부에는 바로가기 파일들이 존재하며 파워유저를 통해 실행하는 각 기능들은 바로가기를 통해 호출되고 있음을 알 수 있다.

[그림 7] Group1과 Group2의 파워유저 메뉴

 

 

[그림 8] Group3과 파워유저 메뉴

 

 

 

2.2 서로 다른 Powershell 실행의 비교

 

{시작 - 실행}을 통한 Powershell의 실행은 다음 경로의 "powershell.exe"를 실행한다.

C:\Windows\System32\WindowsPowerShell\v1.0

 

파워유저 메뉴를 통한 Powershell의 실행은 다음 경로의 "powershell.exe"의 바로가기를 통해 실행한다.

C:\Users\[UserName]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

 

이는 시작에서 검색하여 실행한 경우와 동일한 경로이다.

[그림 9] 시작을 통해 검색한 Powershell

 

 

"C:\Users\[UserName]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell" 경로의 Powershell의 속성을 확인해보면 다음 그림과 같다.

[그림 10] Start menu의 Powershell 속성

 

 

해당 start menu의 Powershell은 "C:\Windows\System32\WindowsPowerShell\v1.0" 경로의 Powershell이다.

그렇다면, 동일 파일임에도 불구하고 다른 이유는 무엇일까?

 

그 이유는 바로가기의 속성에서 찾을 수 있었다.

바로가기의 속성에서도 색, 글꼴등을 설정할 수 있다.

[그림 11] 바로가기 파일의 속성창

 

 

Windows 10 OS가 설치될 때 시작 프로그램 경로에 Powershell의 바로가기가 생성되고, 해당 바로가기는 설치 당시의 Powershell의 디폴트 세팅으로 생성되었기 때문에 기존 디폴트 세팅으로 되어 있음을 추측할 수 있다.

 

 

그렇다면, 변경된 Powershell의 속성이 저장된 powershell을 바로가기로 만들면 어떤 결과를 출력할까?

[그림 12] 속성이 변경된 Powershell의 바로가기 결과

 

 

예상대로 기존에 설정된 파일의 바로가기를 생성하면 해당 파일의 속성이 따라오는것을 확인할 수 있다. (폰트는 아닌듯 하다.)

 

 

 

3. Additional Information


3.1 파워유저 메뉴의 Powershell이 Start Menu에서 실행되는것은 어떻게 확인할 수 있을까?

 

단순하게 Start Menu에 있는 powershell의 파일명을 살짝만 변경하면 된다. "powershell2"로 파일명을 변경한 후 파워유저 메뉴의 powershell을 실행해보았다.

 

[그림 13] 파일명 변경 후 파워유저 메뉴를 통해 실행한 powershell

 

 

파일명을 변경한 후에도 시작을 통한 검색에서는 변경된 파일명으로 정상적으로 검색되며 실행 또한 정상적이다.

[그림 14] 파일명 변경 후 시작을 통해 검색한 powershell

 

 

또한 Start Menu에서 Powershell가 여러개 존재할 경우에 하나만 검색 결과로 표출된다. 숫자의 경우 낮은 숫자가 표출된다.

해당 폴더에는 powershell2와 powershell3이 존재했지만 powershell3은 검색결과에 표시되지 않았다.

[그림 15] powershell3 검색 결과 확인

 

 

[그림 16] Start Menu의 powershell2와 powershell3

 

 

 

3.2 파워유저 메뉴 활용

 

파워유저 메뉴를 편리하게 활용하기 위한 도구가 제공된다. "win+x menu editor" 도구가 있으며 관심이 있다면 찾아보면 좋을것 같다.

 

이외에도 파워유저 메뉴에 원하는 프로그램을 추가할 수 있는 다양한 방법이 있으니 관심이 있다면 참고문헌을 통해 찾아보는것을 추천한다.

 

 

 

4. Conclusion


{시작 - 실행}을 통해 실행한 Powershell과 파워유저 메뉴를 통해 실행한 Powershell이 설정이 다른것을 확인하고 같은 Powershell 사이에 어떤 차이가 있는지 확인하였다.

 

결론은 같은 Powershell이지만 바로가기의 속성에서의 사용자 변경사항 적용 유무의 차이가 있었다. 

 

큰 통찰력을 주는 결론은 아니지만 파워유저 메뉴에 대해 알아볼 수 있는 좋은 기회였다고 생각한다.

 

 

 

5. References


[1] "https://www.interfacett.com/blogs/modify-winx-menu-windows-10"

[2] "https://www.htguk.com/get-back-control-panel-winx-menu-instead-settings-windows-10-creators-update-customize-way-really/"

+ Recent posts