2017. 11. 16. 20:55ㆍIT-OS/Window
(펌)을 다시 (펌) ...ㅠㅠ
1.
TakeOwnerShip.reg (AllFilesystemObjects, Shift)
설명을 위해 잘 알려진 이 자료
부터 소개합니다. 소유권을 가져와서 모든 권한을 부여하는 레지입니다.
HKEY_CLASSES_ROOT\*\shell\runas
(기본값)=Take OwnerShip
HKEY_CLASS_ROOT\*\shell\runas\command
(기본값)=cmd.exe /c takeown /f "%1" && icacls
"%1" /grant Administrator:F
HKEY_CLASSES_ROOT\Directory\shell\runas
(기본값)=Take OwnerShip
HKEY_CLASS_ROOT\Directory\shell\runas\command
(기본값)=cmd.exe /c takeown /f "%1" /r /d y
&& icacls "%1" /grant Adninistrator:F /t
*\shell 의 경로로 등록하면 *
(와일드카드)가 '모든 파일들'을 의미하기 때문에 확장자에 관계없이 모든 파일에서 이 우클릭 메뉴를 사용할 수 있습니다.
Directory\shell 의 경로로 등록하면 Directory 가 '파일 폴더들'을 의미하기
때문에 '파일 폴더'에서 이 우클릭 메뉴를 사용할 수 있습니다.
이렇게 하면 모든 파일과 디렉토리에서 이 우클릭 메뉴를 사용할 수 있어야 하는데 실제로는 적용되지 않는 경우가 있습니다.
이유는 .exe 를 비롯한 몇몇 확장자와, 내
컴퓨터를 뜻하는 {20D04FE0-3AEA-1069-A2D8-08002B30309D} 외의 몇몇 디렉토리에는
이미 runas 키가 등록되어 있기 때문입니다. 그 중에
소유권을 얻어야할 필요가 있는 .exe 파일에 대하여 추가로 등록해 줍니다.
HKEY_CLASSES_ROOT\exefile\shell\runas2\command
(기본값)=cmd.exe /c takeown /f "%1" && icacls
"%1" /grant Administrator:F
exefile 은 .exe 파일에
대한 Program ID 입니다.
참고: 명령창에서 ASSOC 를 치면 시스템에 등록된 파일 확장자에 대한 ProgID 를 보여
줍니다.
HKEY_CLASSES_ROOT\.exe
(기본값)=exefile
어떤 파일 확장자의 기본값에 ProgID 가 등록되지 않은 경우라면 .확장자\shell 의 경로로 등록해도 되지만 그렇지 않으면 ProgID\shell 의
경로로 등록해야 작동이 됩니다.
키 이름이 runas 로 되어 있으면 윈도우는 관리자 권한으로 해당 명령을 실행시켜 줍니다. .exe 파일의 우클릭 메뉴의 '관리자 권한으로 실행' 이 runas 키를 사용합니다. 때문에 exefile\shell\runas2 키를 사용했는데 이 runas2 키는
할 수 없이 이름만 유사하게 사용한 것이지 관리자 권한으로 실행되지는 않습니다.
위에 *, Directory 에 적용되는 두가지 레지를 제가 다음과 같이 바꿔 봤습니다.
HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\runas
Extended=""
HasLUAShield=""
NoWorkingDirectory=""
MUIVerb=@%SystemRoot%\System32\RSHX32.DLL,-35
HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\runas\command
(기본값)=cmd.exe /c takeown /f "%1" /r /d y>nul 2>&1
&if not errorlevel 1 (icacls "%1" /grant *S-1-5-32-544:F /t) else
(takeown /f "%1" && icacls "%1" /grant
*S-1-5-32-544:F)
AllFilesystemObjects
은 모든 파일과 모든 폴더를 의미합니다. *와 ,Directory 를 포함하는 경로이기 때문에 위의 두가지에
적용시킨것과 마찬가지로 작동됩니다. (참고로,
HKEY_CLASSES_ROOT\Folder 는 모든 폴더를 의미합니다.) 다만 takeown 과 icacls 명령이 파일과 디렉토리에 적용되는 명령이
다르기 때문에 if ~명령1 else 명령2 로 해결했습니다. 레지스트리에 등록할 수 있는 명령은 한 줄로 된 명령만 등록할 수 있습니다. '응용프로그램
매개변수 옵션' 이런 형식입니다. 그런데 cmd.exe 는 & 기호를 사용하여 여러 명령을 한 줄로
붙여서 사용할 수 있는 기능이 있습니다. 제한 사항은 명령이 아닌 레이블이나 괄호를 사용한 다중 명령을
사용할 수 없다는 점입니다. 저는 주로 echo 명령으로 %temp% 폴더에 배치파일을 만들어서 실행시키는 방법을 사용했습니다. 또
하나의 제한 사항은 값 데이타 크기에 제한 사항이 있습니다. 대략
4KB 전후가 한계입니다. 가끔가다 2KB 전후가
한계인 경우도 있습니다. 4KB 면 글자수로 대략 2000자
내에서 사용할 수 있습니다.
Extended 값이 추가되면 Shift 키를 누른채 우클릭해야만 나타납니다. Extended 를 사용한 레지에서는 (Shift) 라고 표시했습니다.
HasLUAShield 값이 추가되면 UAC의 방패모양 아이콘이 표시됩니다. 아이콘이 표시되는 것 외에는 다른 의미는 없습니다. 제가 dism.exe, pnputil.exe, Imagex.exe, bcdedit.exe 등 관리자 권한으로 실행되어야
하는 곳에는 부득이하게 runas 키를 사용한 곳이 있는데
HasLUAShield 값을 추가해 놓았습니다.
NoWorkingDirectory 는 관련된 설명을 마땅히 찾지 못했습니다. 순정 상태의
레지스트리에 사용되어 있는 곳은 '여기서 명령창 열기'에
사용되어 있습니다.
MUIVerb 값은 MUI 호환 문자열 정의에 사용됩니다.
값 데이타가 @%SystemRoot%\System32\RSHX32.DLL,-35 인데 RSHX32.DLL.mui 의 stringID 35번의 문자열을 사용한다는
뜻입니다. 영문 윈도우에서는 'Take
OwenerShip' 이라 표시되고 한글 윈도우에서는 '소유권 가져오기'라고 표시됩니다. 해당 윈도우의
en-US ,ko-KR 폴더에서 RSHX32.DLL.mui 을 7zip 으로 열여보시면 string.txt 파일이 있는데 이 파일을
열어서 확인해 보시면 알 수 있습니다. (ko-KR 폴더에서 추출한
string.txt 는 notepad.exe 로 열어보면 글자가 깨져 보입니다. notepad++ 을 사용해 보세요>)
2.
7zGetMuiStringTxt.reg (.mui)
.mui 파일 안의 string.txt 를 확인해 보기 위해서 우클릭 메뉴로 만들어 봤습니다.
System32 폴더에 있는 en-US ,ko-KR 폴더에는 천개가 넘는 .mui 파일이 있습니다. 해당 디렉토리에 있는 모든 .mui 파일의 압축을 %temp% 폴더에 풀어서 string.txt 를 가져오고 나머지는 삭제시킵니다. 7zip 이 Program Files 폴더에 설치되어 있어야만 사용할 수 있습니다.
3.
FindString.reg (Directory\Background, Shift)
위에서 압축을 풀어서 가져온 string.txt 파일을 사용하기 위해서 문자열을 검색할 수 있도록 만들었습니다. 제가 아는 한에서 문자열을 검색할 수 있는 자체 유틸로 Find.exe 와 Findstr.exe 가 있는데 Findstr.exe 는 string.txt 에서 검색을 전혀 못하고 Find.exe는 en-US에 들어 있는 mui 파일의 string.txt 중에서 어떤 파일만 부분적으로 검색이 되고 ko-KR은
전혀 검색을 안됩니다. 아마 유니코드로된 문서파일은 제대로 검색을 못하는 것 같습니다. Win7 자체 유틸 중에 파일을 비교할 수 있는 Fc.exe 파일이
있는데 비교결과 출력을 아스키 형식으로 출력하는 것 같습니다. 그래서 빈 파일을 만들어 위 string.txt 와 비교하고 그 출력을 받아서 Find 명령으로
검색하도록 했습니다. [U]nicode ,or [A]scii? 의 명령프롬프트에서 u 를 클릭하면 Fc.exe를 사용하고 a 를 클릭하면 Find.exe 만 사용하는 것입니다.
4. Compare.reg
(*, Shift)
위에서 말한 Fc.exe 를 이용해 파일을 비교하는 것입니다. 첫번째 파일 클릭에
파일 경로 정보가 %temp% 폴더에 저장되고 두번째 파일 클릭에 첫번째 클릭한 파일과 비교합니다.
5.
ShellnewTxt.reg (우클릭-새로 만들기)
우클릭- 새로 만들기- '새 텍스트 문서'를 '텍스트 문서'로 변경시키고
만들어진 .txt 의 파일명을 '새 텍스트 문서'에서 '텍스트 문서'로
변경시킵니다.
6.
CreateDocument.reg (Directory\Background)
우클릭- 새로 만들기의 서브 메뉴가 아닌 우클릭에서 바로 .txt 문서를 만드는 메뉴입니다. 파일명을 무엇으로 할까?가 문제인데
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\SendTo\문서.mydocs 파일이 언어 버전별로 다르게 나타나는 것 같아 이 파일에서 파일명을 참조했습니다. 영문에서는 Document1, Document2,... 한글에서는
문서1 ,문서2.... 이런 식으로 만들어 집니다.
7.
ControlPanelShortcut.reg (DesktopBackground)
몇몇 제어판 바로가기가 등록되어
있습니다.
8. CreateVHD.reg
(Directory\Background, Shift)
diskpart 를 이용한 명령줄로 VHD를 생성합니다.
9. DiskClean.reg
(Directory\Background)
IE의 검색기록 삭제, 디스크 정리, %temp% 폴더 비우기등..
10.
EnvironmentVariable.reg (DesktopBackground)
환경 변수 폴더 바로가기 입니다.
11.
InfPnPUtil.reg (.inf)
.INF 형식의 드라이버를 설치할
때 보통은 장치관리자에서 경로를 지정해서 설치하는데 이것은 Pnputil.exe 를 이용해 설치하는
것입니다.
12.
MsiPassiveInstall.reg (.msi)
msiexec.exe 의 명령줄 옵션에 /passive 옵션이 있는데 진행 표시줄만 표시하고 무인 모드로 설치하는 것입니다.
13.
MsuDismInstall.reg (.msu)
.msu 파일을 wusa.exe 가 아닌 현재 디렉토리의 모든 .msu 에 대해서 %temp% 폴더에 압축을 푼다음 dism.exe /online
/add-package /packagepath: /IgnoreCheck /norestart 명령줄로 설치합니다.
14.
ProgramFiles(x86)IE.reg, ProgramFilesIE.reg (DesktopBackground)
IE를 명령줄 옵션으로 실행시키는
것입니다.
15.
RegSilentMerge.reg (.reg)
regedit /s 명령을 사용하여 병합시키는
것입니다.
보통은 .reg 파일을 16개 이상 선택후 우클릭하면
관련된 메뉴가 나타나지 않습니다. 기본값이 15개까지 입니다.
"MultiSelectModel"="Player"
값을 추가해주면 15 이상 선택해도 사용할 수 있습니다.
"MultiSelectModel"="Single" 은 1개를 초과하여 선택시 우클릭하면 사용할 수 없도록 제한합니다. 위 MsuDismInstall.reg 에 적용했습니다. 그렇지 않으면
선택한 갯수만큼 반복적으로 작동이 되기 때문입니다.
16.
RestartExplorer.reg (DesktopBackground)
시스템 변경사항을 적용하는데 가장
좋기로는 시스템을 다시 시작하는 것이지만 부분적으로는 Explorer.exe 만 다시 시작해도 변경사항이
적용되는 경우가 있습니다. taskkill 명령으로
Explorer.exe를 강제로 종료시켰다 다시 시작합니다.
17.
SearchFile.reg (Drive, Folder)
파일 검색 메뉴 인데, 예전에는 Dir /s 명령을 사용했지만 Where /r 명령으로 바꿨습니다. 체감 속도는...
18.
SelectAll.reg (Directory\Background)
'모두 선택' 메뉴입니다.
19. ShowExt.reg
,ShowHidden.reg (Directory\Background)
'파일 확장자 표시'와 '숨김 파일 표시'입니다. %temp% 폴더에 .vbs 파일을 만들고 실행 시킵니다. 작동하는 방식은
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 경로의
레지스트리 값을 변경시키고 새로 고침을 하는 것인데 이 '새로 고침'에
해당하는 cmd 명령이 없는 것 같습니다. Explorer.exe 를
다시 시작 시키면 되지만 ..
20. VHD.reg
(.vhd)
VHD 연결 ,분리 ,Compact ,부팅등록 메뉴를 사용할 수 있습니다.
InfoTip -마우스를 올리면 설명이 나타납니다.
DefaultIcon- 탐색기에서 표시되는 아이콘을 추가로 적용해 봤습니다.
21. WIM.reg
(.wim, .swm)
Imagex 메뉴와 분할 파일인 .swm 메뉴를 추가했습니다. Windows 폴더나 System32 폴더에 imagex.exe 파일이 있어야 사용할 수
있습니다. win7 sp1 설치 이미지 파일의 sources 폴더
안에 dism.exe(17154 버전)은 많은 기능이 빠져
있는 것 같습니다.
dism.exe 로 시작하는 명령줄 때문에 위의 dism.exe 가 실행되어서 여러가지
작동이 안되는 문제점이 있어서 %SystemRoot%\System32\dism.exe(16385 버전) 로 수정했습니다.
Dism 메뉴의 분할선은 "CommandFlags"=dword:00000020 를
추가해 주면 해당 메뉴의 앞쪽에 분할선을 만들어 주고,
"CommandFlags"=dword:00000040 값을 추가해 주면 해당 메뉴의 뒤쪽에 분할선을 만들어 줍니다.
---------------------------------------------------------------
다음은 기존에 있는 레지에 아이콘이나
문자열 값만 변경시킨 것입니다.
22. AxDllOcx.reg
(.ax .dll .ocx)
regsvr32 "%1" 명령을 사용합니다. 표시되는 문자열 값을 변경시켰습니다.
23.
KillNotRespondingTasks.reg (DesktopBackground)
taskkill /F /FI "STATUS eq NOT RESPONDING" 명령을 사용합니다. 아이콘
값 추가했습니다.
24.
RecycleBin.reg (DesktopBackground)
우금티님이 올려 놓은 자료인데
중복이지만 같이 올립니다. 휴지통 비우기 우클릭 메뉴입니다. 변경된
사항 없습니다.
-----------------------------------------------------------------
시스템 아이콘 값을 보려면 "iconsext.exe" 이란 유틸을 추천합니다. System32 폴더의 모든 파일의 아이콘을 보여주고 또한 한꺼번에 추출할 수 있습니다. 아이콘을 적용하려면 "Icon"="DLL,EXE의 파일경로,-리소스ID" 혹은 "Icon"="DLL,EXE의 파일경로,인덱스번호"를 사용합니다. "iconsext.exe"에서 보면 대부분 음수를 써서 번호를 적어주면 틀리지는 않습니다.
출처 // http://winforum.kr/2422408
출처: http://yong40.tistory.com/entry/Win7-우클릭-메뉴-설정펌 [nofile setup]
옮기기도 어렵다~ ㅠㅠ... 저 공부용입니다.
'IT-OS > Window' 카테고리의 다른 글
IPv6 - windows - 끄기 및 켜기 (0) | 2018.06.01 |
---|---|
(펌) Windows 시작프로그램의 로딩되는 순서 자료모음 (0) | 2018.02.13 |
전력 - 절전모드(1) - 절전모드 종류 (0) | 2017.06.09 |
전력 - 부팅때 많은 전력을 사용하게 된다 (펌) (0) | 2017.06.09 |
닷넷(.Net) 기본 설치된 버전 - OS 종류별 - 조사 (0) | 2017.05.26 |