이 글의 내용은 비스타 이상에만 적용됩니다.


예전에 비슷한 내용의 글을 올린 적이 있는데 이 글의 내용은 조금 다릅니다. 그리고 개인적으로 저는 이렇게 쓰는게 더 편합니다.

저는 CMD 창을 자주 띄웁니다. 물론 현재 위치에서 말이죠. 윈도우 비스타 이상에서는 Shift + 우클릭 하시면 여기서 명령 창 열기 라는 메뉴가 나옵니다.



그런데 저는 이 Shift 키를 누르는게 귀찮아졌습니다. 그냥 우클릭 만으로도 바로 메뉴가 뜨면 참 좋겠다는 생각을 했습니다. 그래서 레지스트리를 뒤져보니 해답이 있었습니다.

위 기능의 레지스트리상 위치는 아래와 같습니다.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""



이중에 Shift 키를 눌러야 메뉴가 보이도록 하는 녀석은 바로 "Extended"="" 입니다. 따라서 이 값을 제거해주면 Shift 키를 누르지 않더라도 바로 메뉴가 보이게 됩니다.


 

그런데 저처럼 Administrator 계정으로 윈도우를 사용하거나 UAC를 끄고 사용하시는 분들은 위 방법을 쓰시면 되겠지만, 평소에 UAC를 켜고 사용하시는 분들은 이 커맨드 창이 관리자 권한으로 실행되지 않기 때문에 불편을 느낄 수 있습니다. 보통 CMD 창을 띄울 때는 관리자 권한으로 작업해야 하는 경우가 많으니까요. (예를 들어 bcdedit)


따라서 일반 유저들을 위해 이 글의 제목처럼 마우스 우클릭으로 관리자 권한의 CMD 창을 열 수 있도록 레지스트리를 제공해드립니다. 원리는 간단합니다. runas 라는 키를 사용하면 됩니다.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
@="관리자 권한으로 여기에 CMD 창 열기"

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""







그러면 UAC 창이 뜨게 되고 예 누르면 관리자 권한의 CMD 창이 뜨게 됩니다.


신고

  1. 이전 댓글 더보기
  2. 즐겁게
    2010.05.25 14:00 신고

    넘 편리하다 귀찮니즘에 들겠습니다~~^^
    잘 쓰겠습니다~~

    • BlogIcon snpbox
      2010.05.25 14:17 신고
      수정 및 삭제

      제 블로그 글의 상당수는 귀찮음을 줄여보기 위한 몸부림이라 생각합니다. ^^

  3. jujuvvo
    2010.05.25 16:07 신고

    항상 좋은 정보 얻어갑니다
    공부하는 느낌으로 ..
    트위터 팔로 했어요 자주 뵈여^^

  4. a
    2010.05.25 17:41 신고

    가끔가다 들르는데 너무나 유용한 팁들 때문에 저의 필수방문싸이트가 되었습니다. 스누피님이 올리는 팁 모두 제가 원하던 것들이었어요. 다시한번 감사드립니다

  5. chuchuBBo
    2010.05.25 19:59 신고

    안녕하세요....ㄷㄷ 엊그제 포스팅하신 VHD글 잘봤습니다... 몇가지 의문점이 드는대요...

    부모 파일에서 삭제한 파일이 자식에선 삭제된다는건 이해가 되는대..왜 부모가 업뎃한거를 자식VHD에서는

    인식을 못하나여?...차이점만 ㅂ기록한다면..부모가 업데이트된거는 자식도 업데이트가..가능한거아닌가여?..

    그리고 파티션을 나눠서 쓰지안고 Expandable방식에서 용량을 40GB 지정해줬다면....40GB이상은 기록이 안되는건가여?..그럼 파티션을 나누지 않으면 자료저장은...어떻게 되는지....궁금하내요;;C에 깔은 프로그램이나 저장한 동영상이나 노래같은거는 깨끗한VHD로 복원하면 다사라지는건가여?...

    • BlogIcon snpbox
      2010.05.26 08:01 신고
      수정 및 삭제

      차이점의 기준이 무엇일까요? 자식이 생성되어 기록되기 시작하는 시점의 부모의 모습이겠죠. 중간에 부모가 변경된다면 자식 입장에선 시초 부모를 기준으로 잡을지 변경된 부모를 기준으로 잡을지 어떻게 알까요? 당연히 시초 부모를 기준으로 잡아야 하는 것입니다. 다만 부모에서 삭제된 파일은 존재하지 않으니 자식에 존재할 수 없는 것입니다.

      질문을 보니 아직 VHD 사용을 안해보셨나보네요. VHD 복원하면 자료는 당연히 날아가죠. 그러니 자료는 D에 보관하시면 됩니다. VHD로 부팅하면 파일 자체가 C로 되고 원래 VHD 파일이 들어있던 파티션은 D로 잡힙니다.

  6. BlogIcon Nulbo
    2010.05.25 21:51 신고

    정말 편리해져서 없어지면 귀찮니즘을 느끼게 될것 같은 생각이네요
    감사합니다.

  7. 응삼이
    2010.05.25 22:37 신고

    원하던거였는데 스누피님이 주시는군요 잘쓸게요 감사합니다 (__)

  8. 광영
    2011.02.22 00:52 신고

    잘봤습니다. 사랑합니다

  9. 강상엽
    2011.02.22 09:11 신고

    자주 사용하지는 않지만, 유용하겟네요. 감사합니다.
    아웃룩 RSS 구독자입니다. ^^

  10. goh young joon
    2011.02.27 16:30 신고

    아... 감사합니다. Windows Vista에서 적용하고 지금 잘 사용하고 있답니다. 그런데 "Extended 값 삭제"만 적용하고도 관리자 권한으로 cmd를 열리게 하거나 관리자 권한으로 여기에 CMD 창 열기 하고도 UAC 없이 cmd 바로 열리게 하는 방법이 무엇인지 아세요? 그건 C:\Windows\System32로 들어가서 원본 cmd.exe 파일은 날려버리고 Windows XP에 들어있는 cmd.exe 파일로 바꾸는 것이랍니다. Administrator 계정으로 변경하면 더욱 효과가 좋답니다. snoopy님 이거 잘 사용하겠습니다 ^^

  11. BlogIcon skywind
    2011.04.03 14:51 신고

    정말 편리하네요 삭제 레지도 제공해주시고 ^^

  12. BlogIcon 레아루카레
    2012.03.23 11:28 신고

    완전감사합니다...^^ 유용하게 사용하고 있어요.

  13. cosmozen
    2012.06.06 21:20 신고

    이 팁을 따라 해 봤는데 저는 적용이 안 되더라고요. '기본 프로그램에 연결이 안 돼 있다는..' 그런 오류 창이 뜹니다. 저와 같은 오류 뜨는 분은 없으신 가 봐요. 댓글 보면서 해결 좀 보려 했는데.. 난감...
    음, 쓰고는 싶은데 되지는 않고 해서 구글링으로 나름 방법을 찾았습니다. 레지스트리를 수정하는 방법은 스누피 님이 소개한 것과 동일합니다만 위치가 다르더군요.
    [HKEY_CLASSES_ROOT\\Directory\\Background\\shell\\runas] 가 아니라 그 아래 키 값인
    [HKEY_CLASSES_ROOT\\Directory\\shell\\runas] 에다가 추가 수정하는 겁니다.
    이유는 묻지마시고 -_-;; 어쨌든 모로가도 가기만 하면 되는 거니까...

    레지스트리를 수정하는 코드를 아래 적어놓겠습니다. 복사해서 확장자를 .reg 로 바꿔주시고 병합해 주세요. 이 코드에는 폴더 뿐만 아니라 드라이브(C:, D:)에도 팁이 적용되도록 짜여 있습니다. 또한 관리자 권한 없이 cmd 창을 뜨게도 하고요. '여기서 명령 창 열기'로 메뉴창에 보일 겁니다.

    (주의) 역슬래쉬, 부호 글 편집이 생각처럼 안 되네요. 죄송합니다. 중복된 역슬래쉬는 하나씩만 지워 주세요.

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\\Directory\\shell\\cmd]
    "Extended"=-
    "Extended_Orig"=""

    [HKEY_CLASSES_ROOT\\Directory\\shell\\runas]
    @="관리자 권한으로 여기서 명령 창 열기"

    [HKEY_CLASSES_ROOT\\Directory\\shell\\runas\\command]
    @="cmd.exe /s /k pushd \\"%V\\""

    [HKEY_CLASSES_ROOT\\Drive\\shell\\cmd]
    "Extended"=-
    "Extended_Orig"=""

    [HKEY_CLASSES_ROOT\\Drive\\shell\\runas]
    @="관리자 권한으로 여기서 명령 창 열기"

    [HKEY_CLASSES_ROOT\\Drive\\shell\\runas\\command]
    @="cmd.exe /s /k pushd \\"%V\\""

    복원시키는 코드도 적어드릴게요.

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\\Directory\\shell\\cmd]
    "Extended"=""
    "Extended_Orig"=-

    [-HKEY_CLASSES_ROOT\\Directory\\shell\\runas]

    [HKEY_CLASSES_ROOT\\Drive\\shell\\cmd]
    "Extended"=""
    "Extended_Orig"=-

    [-HKEY_CLASSES_ROOT\\Drive\\shell\\runas]

    저처럼 오류가 뜨는 사용자 분들을 위해 도움을 드리고자 글을 남겨 봤습니다. 워낙 유명한 블로그라 적당한 자리일 거라 생각이 들어서... ^^

    스누피 님, 윈도우 사용에 있어 도움 많이 받고 있어요, 고맙습니다.

  14. tangelo
    2013.07.15 22:23 신고

    스누피님 항상 말없이 들려 도움만 받아갑니다.
    오늘도 감사 드립니다.~~

  15. sik
    2013.11.03 04:19 신고

    감사합니다 좋은 정보 알아갑니다!!!

  16. amitapekr
    2014.08.26 22:56 신고

    처음 들었는데 참 유익한 정보가 만땅이군요
    여러 사람들에게 도움을 주시고 계십니다
    감사합니다

  17. lusifer
    2014.09.30 00:38 신고

    C 드라이브 전체에 소유 및 권한 부여를 한번에 하는 것 찾다가 알게 되었는데 유익한 정보가 많네요. 많은 정보 감사히 사용하겠습니다.
    참고로 위에 COSMOZEN이란 분이 쓰신 오류가 저도 뜨길래 조금 확인해 봤는데(전 윈7 프로 사용합니다.) 저렇게 복잡하게 안 하고 말씀하신 것 중에
    [HKEY_CLASSES_ROOT\\Directory\\shell\\cmd]
    이 부분의 EXTENDED 이것만 지웠더니 우클릭으로 CMD 창 바로 여는 메뉴가 뜨고 실행도 되네요.(background키에 있는 값을 같이 지우시면 오류가 뜹니다.)

  18. BlogIcon 이끼소년
    2014.10.11 13:20 신고

    \Background\shell\cmd의 Extended를 제거하면 폴더 내에서 우클릭으로 cmd를 열 수 있고
    \shell\cmd의 Extended를 제거하면 폴더 우클릭으로 cmd를 열 수 있네요.
    (아마 저는 UAC를 끈 거 같습니다.)

    좋은 정보 고맙습니다.

  19. BlogIcon likefeb
    2016.04.20 14:37 신고

    좋은 기능 잘 이용하겠습니다.
    정말 감사합니다. ^^
    링크로 퍼갑니다.

  20. ㅇㅇㅇ
    2016.10.16 23:40 신고

    좋은 정보 감사합니다.

    다만 본문에
    NoWorkingDirectory에 대한 설명이 없어서
    검색과 테스트해본 결과를 알립니다.

    결론부터 말하면 현재 cmd창 실행에는 관계 없습니다.

    NoWorkingDirectory 는 현재 "작업경로"를 어떻게 할것인가 하는 문제가 됩니다.
    지금은 cmd를 실행시키지만, 다른 vbscript나 exe를 실행시킬때 "작업경로"가 문제가 됩니다.

    vbscript로 예를 들면,
    실행명령은 대강 이런식이 됩니다.
    wscript.exe "C:\Users\Administrator\Desktop\ttt2.vbs"

    ttt2.vbs 내용은
    Wscript.Echo CreateObject("WScript.Shell").CurrentDirectory

    이렇게 넣어보면 차이가 생깁니다.


    NoWorkingDirectory 있을때
    system32경로가 뜸.

    NoWorkingDirectory 없을때
    현재 우클릭한 폴더경로가 뜸.


    cmd 구문은 바로 우클릭한 경로를 넘기므로 NoWorkingDirectory가 있거나 말거나 관계없더군요.

    파일 입출력할때 이 차이가 문제가 됩니다.
    그러므로 파일 입출력 관계 없으면 신경 끄시면 되고,
    파일 입출력 관계 있으면 신경써서 선택하시면 됩니다.
    (제가 새로 명령을 만드는 중인데, 파일입출력을 하기 때문에 이게 중요하더군요.)

  21. ㅇㅇ
    2017.05.05 22:09 신고

    와 정말 감사합니다!!
    전엔 됬던거같은데 왜인지 윈도우 재설치하니 안되더군요..