윈도우 사용자의 SID 값을 구하는 스크립트

@ECHO OFF
REM ------------------------------------------------------------------
REM - 레지스트리 파일명 정의
REM ------------------------------------------------------------------
SET "ORIGINAL_REG_FILE=@@ORIGINAL_REG_FILE@@.TXT"
SET "TMP_REG_FILE=@@TMP_REG_FILE@@.REG"

REM ------------------------------------------------------------------
REM - 사용자의 공유 SID 값을 구한다.
REM - 예) WHOAMI /USER /FO CSV /NH 을 실행하면...
REM - "10-10-10-34\administrator","S-1-5-21-3325802533-174215194-4141127220-500"
REM ------------------------------------------------------------------
FOR /F TOKENS^=3^ DELIMS^=^" %%A IN (
    'WHOAMI /USER /FO CSV /NH') DO SET SID_STR=%%A
ECHO SID: %SID_STR%

REM ------------------------------------------------------------------
REM - %ORIGINAL_REG_FILE% 파일에서 ___SID___ 문자열을 %SID_STR%로
REM - 변경하여 %TMP_REG_FILE% 파일에 저장한다.
REM ------------------------------------------------------------------
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /F "DELIMS=" %%A IN ('TYPE "%ORIGINAL_REG_FILE%"') DO (
    SET "STRING=%%A"
    SET "MODIFIED=!STRING:___SID___=%SID_STR%!"
    ECHO !MODIFIED!>>"%TMP_REG_FILE%"
)
ENDLOCAL

REM ------------------------------------------------------------------
REM - SID가 포함되어 저장된 레지스트리 파일을 적용한다.
REM ------------------------------------------------------------------
TYPE %TMP_REG_FILE%
REG IMPORT %TMP_REG_FILE%
DEL /Q %TMP_REG_FILE%

PAUSE
위로 스크롤