NT 4.0 서버 리소스 킷 - 보충 II는 다음과 같은 작업을 할 수 있는 SECADD를 포함하고 있다.
- HKEY_LOCAL_MACHINE 하이브의 임의의 키로부터 Everyone 그룹 제거
- HKEY_LOCAL_MACHINE 하이브의 임의의 키에 사용자나 그룹에대한 읽기 권한 설정
SECADD는 지역 또는 원격으로 동작한다. 불행하게 이 것은 하위키에대해서는 동작하지 않는다.
REG(공개 명령행/배치 레지스트리 & 환경변수 편집기의 공개 프로그램이 아니라 리소스킷의)은 Query 옵션을 가지고 있으며, 이 것으로 키와 하위키를 출력할 수 있다. SecAddS.bat 파일을 사용하면 임의의 키와 하위키에 SECADD를 사용할 수 있다.
사용예: (SECADD와 동일)
- SecAddS -l KeyName은 지역 레지스트리의 HKLM\KeyName에서 Everyone 그룹을 제거한다.
- SecAddS -r \ServerName KeyName은 \ServerName 레지스트리의 HKLM\KeyName에서 Everyone 그룹을 제거한다.
- SecAddS -l -a KeyName UserOrGroup은 지역 레지스트리의 HKLM\KeyName에 사용자 또는 그룹에대한 읽기 권한을 추가한다.
- SecAddS -r -a \ServerName KeyName UserOrGroup은 \ServerName 레지스트리의 HKLM\KeyName에 사용자 또는 그룹에대한 읽기 권한을 추가한다.
SecAddS.bat:
@echo off
cd
if exist %TEMP%\secadds.log del %TEMP%\secadds.log
if /i "%1"=="-r" goto tstp2
if /i "%1"=="-l" goto tstp2
if /i "%1"=="-a" goto syntax
if /i "%1"=="" goto syntax
:tstp2
if /i "%2"=="-a" goto tstp3
if /i "%1"=="-r" goto p2s
goto regl2
:p2s
if not exist %2\admin$*.* goto syntax
if /i "%3"=="" goto syntax
goto regr3
:tstp3
if /i "%3"=="" goto syntax
if /i "%1"=="-r" goto p3s
if /i "%4"=="" goto syntax
goto regl4
:p3s
if not exist %3\admin$*.* goto syntax
if /i "%4"=="" goto syntax
if /i "%5"=="" goto syntax
goto regr5
:syntax
@echo Syntax error %1 %2 %3 %4 %5
goto end
:regl2
if /i NOT "%3"=="" goto syntax
secadd %1 %2
reg query HKLM\%2 /s | Findstr /b "[" %TEMP%\secadds.log
for /f "Tokens=1* Delims=[]" %%i in (%TEMP%\secadds.log) do secadd %1 %2\%%i
goto end
:regr3
if /i NOT "%4"=="" goto syntax
secadd %1 %2 %3
reg query HKLM\%3 %2 /s | Findstr /b "[" %TEMP%\secadds.log
for /f "Tokens=1* Delims=[]" %%i in (%TEMP%\secadds.log) do secadd %1 %2 %3\%%i
goto end
:regl4
if /i NOT "%5"=="" goto syntax
secadd %1 %2 %3 %4
reg query HKLM\%3 /s | Findstr /b "[" %TEMP%\secadds.log
for /f "Tokens=1* Delims=[]" %%i in (%TEMP%\secadds.log) do secadd %1 %2 %3\%%i %4
goto end
:regr5
secadd %1 %2 %3 %4 %5
reg query HKLM\%4 %3 /s|Findstr /b "[" %TEMP%\secadds.log
for /f "Tokens=1* Delims=[]" %%i in (%TEMP%\secadds.log) do secadd %1 %2 %3 %4\%%i %5
:end
if exist %TEMP%\secadds.log del %TEMP%\secadds.log
댓글: