Terminal: ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰

์— ๋งŒ๋“  2019๋…„ 07์›” 08์ผ  ยท  42์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/terminal

2019-07-08_14h29_22
2019-07-08_14h29_54

"๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ"ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ : Windows์—์„œ "C : Program FilesWindowsAppsMicrosoft.WindowsTerminal_0.2.1831.0_x64__8wekyb3d8bbweWindowsTerminal.exe"๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

Issue-Bug Needs-Tag-Fix Product-Terminal Resolution-External

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋˜ํ•œ ์ž‘์—… ํ‘œ์‹œ ์ค„์—์„œ ๊ด€๋ฆฌ์ž๋กœ ์ „์ฒด ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ์ œ์•ˆ์œผ๋กœ ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ๋ฅผ ๋“ค๋ฉด :

์ƒˆ ํƒญ์„ ์—ด ๋•Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌ์ž๋กœ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ด ๊ฒƒ์ธ์ง€ ๋ฌป๋Š” UI๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
suggesstion

๋˜๋Š” ํ„ฐ๋ฏธ๋„์„ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜์—ฌ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ด€๋ฆฌ ํƒญ์„ ์—ฝ๋‹ˆ ๋‹ค. (์ด๊ฒƒ์€ sudo์™€ ๊ฐ™์€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— powershell-core์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค)

๋ชจ๋“  42 ๋Œ“๊ธ€

@ DHowett-MSFT ์–ด๋”˜๊ฐ€์— ์ค‘๋ณต ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งน์„ธ ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ ์›์ธ์„ ๊ธฐ์–ตํ•˜์‹ญ๋‹ˆ๊นŒ?

Ahh man, ์ค‘๋ณต ๋œ ๊ฒฝ์šฐ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ์ •์ƒ์ ์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€๋งŒ ๊ด€๋ฆฌ์ž๊ฐ€ ์‹คํŒจํ•˜๋ฉด r- ํด๋ฆญํ•˜๊ณ  ์‹œ์ž‘ํ•˜๋ฉด Windows UAC์—์„œ ๊ด€๋ฆฌ์ž ์•”ํ˜ธ๋ฅผ ๋‘ ๋ฒˆ ํ”„๋กฌํ”„ํŠธ ํ•œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ํ‘œ์‹œ ์ค„์—์„œ ํ„ฐ๋ฏธ๋„์„ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
win-terminal-run-as-admin-issue-1

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ด€๋ฆฌ์ž ์ž๊ฒฉ ์ฆ๋ช…์„ ๋‘ ๋ฒˆ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ํ•˜๋‚˜์˜ ๊ด€๋ฆฌ์ž ํ”„๋กฌํ”„ํŠธ. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‘ ๋ฒˆ์งธ๋กœ ์ž๊ฒฉ ์ฆ๋ช… ์ž…๋ ฅ์„ ๋งˆ์น˜๋ฉด์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

win-terminal-run-as-admin-issue

์˜ค๋Š˜ ๋ฐฉ๊ธˆ ๋‹จ๋ง๊ธฐ๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„ ๋ฒ„์ „ :
๋ฒ„์ „ : 0.2.1831.0

OS ๋ฒ„์ „ :
Windows 10 Pro
10.0.18362 ๋นŒ๋“œ 18362

๋˜ํ•œ ์ž‘์—… ํ‘œ์‹œ ์ค„์—์„œ ๊ด€๋ฆฌ์ž๋กœ ์ „์ฒด ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•˜๋Š” ๋Œ€์‹  ์ œ์•ˆ์œผ๋กœ ๋Œ€์•ˆ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ๋ฅผ ๋“ค๋ฉด :

์ƒˆ ํƒญ์„ ์—ด ๋•Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌ์ž๋กœ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ด ๊ฒƒ์ธ์ง€ ๋ฌป๋Š” UI๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
suggesstion

๋˜๋Š” ํ„ฐ๋ฏธ๋„์„ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญํ•˜์—ฌ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ด€๋ฆฌ ํƒญ์„ ์—ฝ๋‹ˆ ๋‹ค. (์ด๊ฒƒ์€ sudo์™€ ๊ฐ™์€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— powershell-core์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค)

๊ด€๋ฆฌ์ž ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” Windows ํ„ฐ๋ฏธ๋„ ์ง€์›์€ ์ข‹์€ ๋™์ž‘์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, Ctrl + T์—์„œ ์—ด๋ฆฐ ๋‹ค๋ฅธ ํƒญ์˜ ๋ชจ๋“  ์…ธ์ด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ Windows Terminal์€ ๊ด€๋ฆฌ์ž์—์„œ ์ œํ•œ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Windows์—์—†๋Š” ๊ฒƒ์€ sudo์™€ ๊ฐ™์ด UI ์ƒํ˜ธ ์ž‘์šฉ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ถŒํ•œ ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ sudo๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋„ ๋ฒˆ๊ฑฐ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. runas ๋™์‚ฌ์˜ ํ๋ฆ„์€ ๋Œ€๋žต ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค (์ž˜๋ชป๋œ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”).

  1. AppInfo๋Š” ์„ธ์…˜ 1์— ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž์˜ ์Šน๊ฒฉ ๋œ ํ† ํฐ์„ ์–ป๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ ๋ณด์•ˆ ๊ธฐ๊ด€๊ณผ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.
  2. AppInfo๋Š” STARTUPINFOEX ๊ตฌ์กฐ (Vista์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ)๋ฅผ๋กœ๋“œํ•˜๊ณ  ํ•˜๋‚˜์˜ ์†์„ฑ์„์œ„ํ•œ ๊ณต๊ฐ„์ด์žˆ๋Š” ์ƒˆ๋กœ์šด Vista API InitializeProcThreadAttributeList ()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  3. OpenProcess ()๋Š” RPC ํ˜ธ์ถœ์„ ์‹œ์ž‘ํ•œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํ•ธ๋“ค์„ ๊ฐ€์ ธ ์˜ค๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
  4. UpdateProcThreadAttribute ()๋Š” PROC_THREAD_ATTRIBUTE_PARENT_PROCESS ๋กœ ํ˜ธ์ถœ๋˜๊ณ  3 ๋‹จ๊ณ„์—์„œ ๊ฒ€์ƒ‰๋œ ํ•ธ๋“ค์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  5. CreateProcessAsUser ()๋Š” EXTENDED_STARTUPINFO_PRESENT ๋ฐ 1 ๋‹จ๊ณ„์™€ 4 ๋‹จ๊ณ„์˜ ๊ฒฐ๊ณผ๋กœ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
  6. DeleteProcThreadAttributeList ()๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
  7. ๊ฒฐ๊ณผ๊ฐ€ ์ˆ˜์ง‘๋˜๊ณ  ํ•ธ๋“ค์ด ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ฐ„๋‹จํ•œ ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ runas ๋Š” ์‹ค์ œ๋กœ ๋†’์€ ๊ถŒํ•œ์ด์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ RPC ์š”์ฒญ์„ ์‹œ์ž‘ํ•˜๋Š” ์ •์ƒ์ ์ธ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๋†’์€ ๊ถŒํ•œ ํ”„๋กœ์„ธ์Šค (AppInfo ์„œ๋น„์Šค)๋Š” ๊ด€๋ฆฌ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ๋ฐ˜ ํ”„๋กœ์„ธ์Šค๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

AppInfo๋Š” ํ˜„์žฌ ๊ด€๋ฆฌ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ, ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ (CreateProcessAsUser ํ˜ธ์ถœ) ์„ค์ •์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Windows Terminal์—์„œ sudo ์ง€์›์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. (ShellExecuteEx SEE_MASK_NO_CONSOLE์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ)

SHELLEXECUTEINFOW :

typedef struct _SHELLEXECUTEINFOW {
  DWORD     cbSize;
  ULONG     fMask;
  HWND      hwnd;
  LPCWSTR   lpVerb;
  LPCWSTR   lpFile;
  LPCWSTR   lpParameters;
  LPCWSTR   lpDirectory;
  int       nShow;
  HINSTANCE hInstApp;
  void      *lpIDList;
  LPCWSTR   lpClass;
  HKEY      hkeyClass;
  DWORD     dwHotKey;
  union {
    HANDLE hIcon;
    HANDLE hMonitor;
  } DUMMYUNIONNAME;
  HANDLE    hProcess;
} SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW;

์ฐธ์กฐ : https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute

| ๊ฐ€์น˜ | ์˜๋ฏธ |
| --- | --- |
| PROC_THREAD_ATTRIBUTE_PARENT_PROCESS | lpValue ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ƒ์„ฑ๋˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ถ€๋ชจ๋กœ ํ˜ธ์ถœ ํ”„๋กœ์„ธ์Šค ๋Œ€์‹  ์‚ฌ์šฉํ•  ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํ•ธ๋“ค์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ํ”„๋กœ์„ธ์Šค์—๋Š” PROCESS_CREATE_PROCESS ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ง€์ •๋œ ํ”„๋กœ์„ธ์Šค์—์„œ ์ƒ์† ๋œ ์†์„ฑ์—๋Š” ํ•ธ๋“ค, ์žฅ์น˜ ๋งต, ํ”„๋กœ์„ธ์„œ ์„ ํ˜ธ๋„, ์šฐ์„  ์ˆœ์œ„, ํ• ๋‹น๋Ÿ‰, ํ”„๋กœ์„ธ์Šค ํ† ํฐ ๋ฐ ์ž‘์—… ๊ฐœ์ฒด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. (๋””๋ฒ„๊ทธ ํฌํŠธ์™€ ๊ฐ™์€ ์ผ๋ถ€ ์†์„ฑ์€์ด ํ•ธ๋“ค๋กœ ์ง€์ •๋œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ ์ƒ์„ฑ ํ”„๋กœ์„ธ์Šค์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.) |

์ด๊ฒƒ์€ ํ™•์‹คํžˆ Windows ํ”Œ๋žซํผ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์†Œ์œ ํ•˜๊ณ ์žˆ๋Š” ํŒ€์— ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ์ด๊ฒƒ์„ ์ข…๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ๋‚˜ ์ž์‹ ์—๊ฒŒ ํ• ๋‹นํ•˜๊ณ ์žˆ๋‹ค. ๊ฐ์‚ฌ.

์—์Šค์ปฌ๋ ˆ์ด์…˜ ๋œ ๊ถŒํ•œ์œผ๋กœ ํƒญ์„ ์Šน์ธํ•˜๋Š” @ YMba9g8j9CJp0wLoQf5y์˜ ์ œ์•ˆ์ด ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. ์ €๋Š” ConEmu์—์„œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์žˆ๊ฑฐ๋‚˜์—†๋Š” ํƒญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ ํƒญ์„ ๋งŒ๋“ค ๋•Œ UAC๋ฅผ ๋ฌป๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Windows ์Šคํ† ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ •์ƒ์ ์ธ ๋™์ž‘์ด ์•„๋‹™๋‹ˆ๊นŒ? ์ตœ๊ทผ์— ์ถœ์‹œ ๋œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์•ฑ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋†’์€ ํฌํƒ„์„ ์‹คํ–‰ํ•  ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ํƒญ ์—ด๊ธฐ).

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ์ผ์ด ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. "๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ> ์•ฑ ๋ฐฐํฌ"์นดํ…Œ๊ณ ๋ฆฌ์— ํ”ผ๋“œ๋ฐฑ์„ ์ œ์ถœํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด๋ฅผ ํ†ตํ•ด ์˜ฌ๋ฐ”๋ฅธ ํŒ€์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  ๋งค์šฐ ์œ ์šฉํ•œ ์ง„๋‹จ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ : ์ด๊ฒƒ๋„ # 1538

๋‚˜๋Š” ๊ฒฐ์ •์— ๋™์˜ํ•˜์ง€๋งŒ. ๊ด€๋ฆฌ์ž ๋ชจ๋“œ์—์„œ ๋ช…์‹œ ์ ์œผ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  chocolatey ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ณ ํ†ต ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. (

@musm ๋‚ด PowerShell 6 ๊ตฌ์„ฑ์— ๋‹ค์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

function GoAdmin { start-process pwsh โ€“verb runAs }

(์ด์ „ powershell์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ pwsh ๋ฅผ powershell ๋Œ€์ฒด)

๋”ฐ๋ผ์„œ chocolatey๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ / ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค GoAdmin (Windows ํ„ฐ๋ฏธ๋„์˜ ํ˜ธ์ŠคํŒ… ๋œ PowerShell์—์„œ)๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ณ„๋„์˜ Admin powershell ์ฐฝ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ ๋ชจ๋“  ์ดˆ์ฝœ๋ฆฟ ๊ด€๋ฆฌ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ด€๋ฆฌ์ž ์ฐฝ์„ ๋‹ซ๊ณ  Windows ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์— refreshenv ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ชจ๋“  PATH ๋ณ€์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ๊ฝค ์‰ฝ์Šต๋‹ˆ๋‹ค.

"๋ฒ ์–ด"pwsh๋กœ ์ง์ ‘ ์ด๋™ํ•˜๋Š” ๋Œ€์‹  wt (Windows ํ„ฐ๋ฏธ๋„)์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์›ํ•˜์ง€๋งŒ ๋ถˆ๊ฐ€๋Šฅ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ๋ถˆ๋งŒ์ž…๋‹ˆ๋‹ค. Meh. :-)

๊ด€๋ฆฌ์ž๋กœ WT (0.9.433.0)๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

image

์ตœ์‹  WT ๋ฐ Windows (v10.0.18363.657)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ ๋œ ์ด์œ ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ๋ฐ›์€ ์ฝ”๋ฉ˜ํŠธ๋Š” Windows ๋ฌธ์ œ์ด๋ฉฐ ํŒ€๊ณผ ํ•จ๊ป˜ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ ํŒ€๊ณผ ํ•จ๊ป˜ ๊ทธ๊ฒƒ์„ ์˜ฌ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๊ฒƒ์€ " ๋‹น์‹  ์€ ํŒ€๊ณผ ํ•จ๊ป˜ ๊ทธ๊ฒƒ์„ ๋†’์—ฌ์•ผํ•œ๋‹ค"์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๊ณ ์žฅ๋‚œ Win Terminal v1์„ ์ถœ์‹œ ํ•  ์ƒ๊ฐ์€ ์—†์Šต๋‹ˆ๋‹ค.
WT์˜ ํ˜„์žฌ ์‹œํ—˜ํŒ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ๋˜๋ฏ€๋กœ ์•ˆํƒ€๊น์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž์—๊ฒŒ ์ƒˆ powershell ์ฐฝ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น ์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ”„๋กœํ•„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

"commandline": "powershell.exe -Command \"Start-Process powershell.exe -Verb RunAs\"",

์™œ ์ด๊ฒƒ์ด ๋‹ซํ˜€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ƒ์Šน ํƒญ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€์ด ์ €์žฅ์†Œ์˜ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ฌธ์ œ์—์„œ ์ถ”์ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@ DHowett-MSFT ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ๋”ฐ๋ผ์•ผํ•ฉ๋‹ˆ๊นŒ? ์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ๊ฒƒ ๊ฐ™์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@musm ๋‚ด PowerShell 6 ๊ตฌ์„ฑ์— ๋‹ค์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

function GoAdmin { start-process pwsh โ€“verb runAs }

(์ด์ „ powershell์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ pwsh ๋ฅผ powershell ๋Œ€์ฒด)

๋”ฐ๋ผ์„œ chocolatey๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ / ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค GoAdmin (Windows ํ„ฐ๋ฏธ๋„์˜ ํ˜ธ์ŠคํŒ… ๋œ PowerShell์—์„œ)๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ณ„๋„์˜ Admin powershell ์ฐฝ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ ๋ชจ๋“  ์ดˆ์ฝœ๋ฆฟ ๊ด€๋ฆฌ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ด€๋ฆฌ์ž ์ฐฝ์„ ๋‹ซ๊ณ  Windows ํ„ฐ๋ฏธ๋„ ์„ธ์…˜์— refreshenv ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋ชจ๋“  PATH ๋ณ€์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ๊ฝค ์‰ฝ์Šต๋‹ˆ๋‹ค.

"๋ฒ ์–ด"pwsh๋กœ ์ง์ ‘ ์ด๋™ํ•˜๋Š” ๋Œ€์‹  wt (Windows ํ„ฐ๋ฏธ๋„)์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์›ํ•˜์ง€๋งŒ ๋ถˆ๊ฐ€๋Šฅ ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ๋ถˆ๋งŒ์ž…๋‹ˆ๋‹ค. Meh. :-)

Windows์—์„œ์ด ๊ตฌ์„ฑ ํŒŒ์ผ์€ ์–ด๋””์— ์žˆ์Šต๋‹ˆ๊นŒ?

@ mian-muhammad ๋‚˜๋Š” ๊ทธ๊ฐ€ PowerShell ํ”„๋กœํ•„์„ ์˜๋ฏธํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. chocolatey๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sudo๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (choco install -y sudo). ๊ทธ๋Ÿฐ ๋‹ค์Œ ์˜ˆ์ƒ๋Œ€๋กœ sudo๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ํ„ฐ๋ฏธ๋„์„ ์—ด ์ˆ˜์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ConEmu (# 632์—์„œ ๋…ผ์˜ ๋จ)์™€ ๊ฐ™์€ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ํƒญ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋” ์ข‹๊ฒ ์ง€ ๋งŒ ํ˜„์žฌ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๊ด€๋ จ ๋ณด๋ฅ˜์ค‘์ธ ๊ธฐ๋Šฅ ์š”์ฒญ :

  • @ Pens99 ๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ€์งˆ๋งŒํ•œ # 146 sudo
  • # 576 ์ž‘์—… ํ‘œ์‹œ ์ค„ ์ ํ”„ ๋ชฉ๋ก; ํŠนํžˆ # 3246๊ณผ ๊ฒฐํ•ฉ ํ•  ๋•Œ ๋ณด์•ˆ ๊ด€๋ จ (๋ณด์•ˆ ์—…๊ณ„์—์„œ ์˜จ ๊ฒƒ์„ ์™„์ „ํžˆ ์ดํ•ดํ•˜๊ณ  ์žˆ์Œ)์œผ๋กœ ์ธํ•ด ์ด๊ฒƒ์„ # 632์˜ ๋Œ€์ฒด๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋”ฐ๋ฅด๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@ DHowett-MSFT์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ๋”ฐ๋ผ์•ผํ•ฉ๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ๋‹ค๋ฅธ ์–ธ๊ธ‰ ๋œ ๋ฌธ์ œ๋Š” ๋‹ซํ˜€์žˆ๋Š” # 1538์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ตœ์‹  Windows ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๋ณ„๋„์˜ ๊ด€๋ฆฌ์ž ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ํ‘œ์ค€ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๊ด€๋ฆฌ ๊ถŒํ•œ์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค๋Š” Microsoft์˜ ์ž…์žฅ์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฒฐ๊ตญ ํ‘œ์ค€ ๋ณด์•ˆ ๊ด€ํ–‰์— ์œ„๋ฐฐ๋ฉ๋‹ˆ๋‹ค.

@danstur ์ œ๊ฐ€ ๊ทธ ์šฐ๋ ค์— ๋Œ€ํ•ด ์ œ์•ˆ ํ•  ์ˆ˜์žˆ๋Š” ์ตœ๊ณ ์˜ ๊ฒƒ์€ # 4217์ž…๋‹ˆ๋‹ค. ์•ฑ ๋ฐฐํฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํŒ€๊ณผ ํ•จ๊ป˜ ์ˆ˜์ •์„ ์ถ”๊ตฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์•ฑ์ด ์ „ ์„ธ๊ณ„์ ์œผ๋กœ _ ์„ค์น˜ _๋˜์—ˆ์ง€๋งŒ ์‚ฌ์šฉ์ž๋ณ„๋กœ ๋งŒ ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ„ฐ๋ฏธ๋„๊ณผ ๊ฐ™์€ ํ‘œ์ค€ win32 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์ง€์›ํ•˜๋„๋ก ๋งค์šฐ ๋Š๋ฆฌ๊ฒŒ ๋ฐœ์ „ํ•œ Windows 8 ์šฉ์œผ๋กœ ๊ตฌ์ถ• ๋œ ์ผ๋ถ€ ์ธํ”„๋ผ์˜€์Šต๋‹ˆ๋‹ค. # 1386์€ ์šฐ๋ฆฌ๊ฐ€ ํŒจํ‚ค์ง€์—์„œ ๋ฒ—์–ด๋‚˜ ํŒจํ‚ค์ง€ ๋ฐฐํฌ ์—”์ง„์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ธฐ์—… ๊ณ ๊ฐ๊ณผ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ข€ ๋” ์ „ํ†ต์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

@ DHowett-MSFT ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ถ”์  ์ค‘์ด๋ผ๋Š” ์†Œ์‹์„ ๋“ฃ๊ณ  ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด : # 1386์— ์–ธ๊ธ‰ ๋œ ์˜ต์…˜์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ ์•ฑ์„ ๋“ฑ๋ก ( Add-AppxPackage ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?) ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@ DHowett-MSFT Dustin Howett FTE ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ถ”์  ์ค‘์ด๋ผ๋Š” ์†Œ์‹์„ ๋“ฃ๊ณ  ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•ํžˆํ•˜๊ธฐ ์œ„ํ•ด : # 1386์— ์–ธ๊ธ‰ ๋œ ์˜ต์…˜์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค์น˜ํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ ์•ฑ์„ ๋“ฑ๋ก ( Add-AppxPackage ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?) ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์‚ฌ์šฉ์ž๋กœ Add-AppxPackage๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. :๋ฏธ์†Œ:

๊ทธ๊ฒŒ ๋‹คํ–‰ ์ด๋„ค์š”.

์ด์ œ ๋ณ„๋„์˜ ๊ด€๋ฆฌ์ž ๋ฐ ์‚ฌ์šฉ์ž ๊ณ„์ •์œผ๋กœ ์„ค์ •๋œ ๋ชจ๋“  Windows ํ™˜๊ฒฝ์—์„œ (๊ถŒ์žฅ) MS Store์—์„œ ์„ค์น˜ ํ•œ ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž๊ฐ€ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‹คํ–‰ ์ด๋„ค์š”.

์ด์ œ ๋ณ„๋„์˜ ๊ด€๋ฆฌ์ž ๋ฐ ์‚ฌ์šฉ์ž ๊ณ„์ •์œผ๋กœ ์„ค์ •๋œ ๋ชจ๋“  Windows ํ™˜๊ฒฝ์—์„œ (๊ถŒ์žฅ) MS Store์—์„œ ์„ค์น˜ ํ•œ ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž๊ฐ€ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธํ•˜๊ณ  Store์—์„œ ํ„ฐ๋ฏธ๋„์„ ๋‹ค์‹œ "์„ค์น˜"ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ๋ฌธ์ œ๋Š” Store๊ฐ€ ํ˜„์žฌ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์•ฑ์„ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์—๋Š” ๊ดœ์ฐฎ์ง€ ๋งŒ (์‹ค์ œ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์ด ์„ค์น˜๋˜์–ด์•ผํ•˜๋Š” ๋ฐฉ์‹) ํ„ฐ๋ฏธ๋„๊ณผ ๊ฐ™์€ ๊ด€๋ฆฌ ์•ฑ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Hey future me : ์ƒ์  ๋“ฑ๋ก ๋ฌธ์ œ๋Š” MSFT : 20356613์„ ํ†ตํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ถ”์ ๋˜๊ณ  ์žˆ์œผ๋ฉฐ # 4217์—์„œ ์ž์„ธํžˆ ๋…ผ์˜๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚ด ์ผ๋ฐ˜ ๊ณ„์ •์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ด€๋ฆฌ์ž ๊ณ„์ •์— ๋กœ๊ทธ์ธ ํ•œ ์ƒํƒœ์—์„œ ํ„ฐ๋ฏธ๋„ ์•ฑ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ผ๋ฐ˜ ๊ณ„์ •์—์„œ ๊ด€๋ฆฌ์ž๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค

๊ด€๋ฆฌ์ž๋กœ ์‹คํ–‰์ค‘์ธ _tab_์„ ์—ด ์ˆ˜์—†๋Š” ์™„๋ฒฝํ•˜์ง€ ์•Š์€ ๋˜ ๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€๋งŒ ๊ธฐ์กด (๋น„ ๊ด€๋ฆฌ) ํƒญ์—์„œ PowerShell ์ฐฝ์„ ๊ด€๋ฆฌ์ž๋กœ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/jt-github/elevate

์ด๊ฒƒ์€ ์œ„์˜ @CraigHead๊ฐ€ ์ œ์•ˆํ•œ ํ”„๋กœํ•„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
"commandline": "powershell.exe -Command \"Start-Process powershell.exe -Verb RunAs\"",

๋‚ด ๋ฒ„์ „์ด elevate ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š”.

@ jt-github ๊ทธ๊ฒƒ์€ sudo์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค : https://github.com/pldmgg/Sudo

์ •ํ™•ํžˆ sudo ๋งŒ ๋‚ด ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋ฉ‹์ง€์ง€๋งŒ ๋‚ด ๊ฒƒ์€ ๋„ˆ๋ฌด ๋‹จ์ˆœํ•ด์„œ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๋งŽ์€ ๋ถ„๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ €๋„์ด ๋ฌธ์ œ์— ๋ถ€๋”ช ํ˜”์œผ๋ฏ€๋กœ powershell.exe, pwsh.exe ๋˜๋Š” Microsoft ํ„ฐ๋ฏธ๋„์—์„œ ๊ด€๋ฆฌ์ž ์…ธ์„ ์—ด๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

# Function        Test-IsAdmin
function Test-IsAdmin {
    <#
    .Synopsis
    Tests if the user is an administrator
    .Description
    Returns true if a user is an administrator, false if the user is not an administrator
    .Example
    Test-IsAdmin
    #>
    $identity = [Security.Principal.WindowsIdentity]::GetCurrent()
    $principal = New-Object Security.Principal.WindowsPrincipal $identity
    $principal.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}


# Function        New-AdminShell
function New-AdminShell {
    <#
    .Synopsis
    Starts an Elevated PowerShell Console.

    .Description
    Opens a new PowerShell Console Elevated as Administrator. If the user is already running an elevated
    administrator shell, a message is displayed in the console session.

    .Example
    New-AdminShell

    #>

    $Process = Get-Process | Where-Object { $_.Id -eq "$($PID)" }
    if (Test-IsAdmin = $True) {
        Write-Warning -Message "Admin Shell already running!"
    }
    else {
        if ($Process.Name -eq "powershell") {
            Start-Process -FilePath "powershell.exe" -Verb runas -PassThru
        }
        if ($Process.Name -eq "pwsh") {
            Start-Process -FilePath "pwsh.exe" -Verb runas -PassThru
        }
    }
}

# Function        New-AdminTerminal
function New-AdminTerminal {
    <#
    .Synopsis
    Starts an Elevated Microsoft Terminal.

    .Description
    Opens a new Microsoft Terminal Elevated as Administrator. If the user is already running an elevated
    Microsoft Terminal, a message is displayed in the console session.

    .Example
    New-AdminShell

    #>

    if (Test-IsAdmin = $True) {
        Write-Warning -Message "Admin Shell already running!"
    }
    else {
        Start-Process "wt.exe" -ArgumentList "-p pwsh" -Verb runas -PassThru
    }
}

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‚ด PowerShell ํ”„๋กœํ•„์— ์ถ”๊ฐ€ ํ–ˆ์œผ๋ฏ€๋กœ ํ•ญ์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚ด ์ผ๋ฐ˜ ๊ณ„์ •์—์„œ๋„์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ด€๋ฆฌ์ž ๊ณ„์ •์— ๋กœ๊ทธ์ธ ํ•œ ์ƒํƒœ์—์„œ ํ„ฐ๋ฏธ๋„ ์•ฑ์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ผ๋ฐ˜ ๊ณ„์ •์—์„œ ๊ด€๋ฆฌ์ž๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋งค์šฐ ์งœ์ฆ๋‚˜์ง€๋งŒ ํšŒ์‚ฌ ๋„คํŠธ์›Œํฌ์—์„œ ๊ฑฐ์˜ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๊ด€๋ฆฌ์ž๊ฐ€์—†๋Š” ๊ฒฝ์šฐ์ด ์•ฑ์€ ๊ธฐ์—… ๋„คํŠธ์›Œํฌ์—์„œ ์ƒ์Šน ๋œ privs๋กœ ์ธํ•ด ๊ฑฐ์˜ ์œ„ํ—˜ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‹คํ–‰ ์ด๋„ค์š”.
์ด์ œ ๋ณ„๋„์˜ ๊ด€๋ฆฌ์ž ๋ฐ ์‚ฌ์šฉ์ž ๊ณ„์ •์œผ๋กœ ์„ค์ •๋œ ๋ชจ๋“  Windows ํ™˜๊ฒฝ์—์„œ (๊ถŒ์žฅ) MS Store์—์„œ ์„ค์น˜ ํ•œ ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž๊ฐ€ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์—์„œ ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธํ•˜๊ณ  Store์—์„œ ํ„ฐ๋ฏธ๋„์„ ๋‹ค์‹œ "์„ค์น˜"ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ, ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค :(

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ๊ณ„์ •๊ณผ ๊ธฐ๋ณธ ๊ณ„์ • ๋ชจ๋‘์— ์„ค์น˜ํ•ด์•ผํ•˜์ง€๋งŒ, ์ž‘๋™ํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ๊ณ„์ •๋„ ๋กœ๊ทธ์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํ“จํ„ฐ๊ฐ€ ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธ ํ•œ ๋‹ค์Œ ์‚ฌ์šฉ์ž๋ฅผ ์ „ํ™˜ (๋กœ๊ทธ ์•„์›ƒํ•˜์ง€ ์•Š์Œ)ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์•ฑ์ด ๊ด€๋ฆฌ์ž ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋‘ ๊ณ„์ •์— ์„ค์น˜๋œ ์Šคํ† ์–ด ์•ฑ์„ ๊ด€๋ฆฌ์ž๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ๊ณ„์ •๊ณผ ๊ธฐ๋ณธ ๊ณ„์ • ๋ชจ๋‘์— ์„ค์น˜ํ•ด์•ผํ•˜์ง€๋งŒ, ์ž‘๋™ํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ๊ณ„์ •๋„ ๋กœ๊ทธ์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ปดํ“จํ„ฐ๊ฐ€ ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธ ํ•œ ๋‹ค์Œ ์‚ฌ์šฉ์ž๋ฅผ ์ „ํ™˜ (๋กœ๊ทธ ์•„์›ƒํ•˜์ง€ ์•Š์Œ)ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์•ฑ์ด ๊ด€๋ฆฌ์ž ๋ชจ๋“œ์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋‘ ๊ณ„์ •์— ์„ค์น˜๋œ ์Šคํ† ์–ด ์•ฑ์„ ๊ด€๋ฆฌ์ž๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰