์๊ฐ
์ด ๊ธฐ์ฌ์์๋ ๊ณ ์ ๋ชฉ์ ์ฅ์น ์ ์กฐ์
์ฒด์์ ์๊ตฌํ ์ ์๋ ๊ธฐ๋ฅ์ ๋ํด์๋ง ์ค๋ช
ํฉ๋๋ค. ์ฆ, "ํค์ค์คํฌ" ๋ชจ๋์ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ดํ ๊ฒ์
๋๋ค. ์ํฐํ๋ผ์ด์ฆ ๋ถ๋ฌธ์ Windows ๋ฒ์ ์ ๋ํ ์๋น์ค ์ฒด๊ณ ์ด๋ฆ ๋ณ๊ฒฝ ์ฃผ์ ๋ ๋ค๋ฃน๋๋ค.
์ ์ด๋ฆ์ ์ด์ ์๋น์ค ์ฒด๊ณ
๊ฐ๋จํ ์ค๋ช ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. Windows ๋ฒ์ ์ ๊ธฐ์ ๋ถ๋ฌธ์๋ Windows๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ ๊ฐ์ง ์๋น์ค ์ฒด๊ณ๊ฐ ์์ต๋๋ค. ์๋น์ค ๋ค์ด์ด๊ทธ๋จ์๋ ๋ฌธ์ ์ง์ ์ด ์์ต๋๋ค. ํ์ฌ ์๋น์ค ๋ถ๊ธฐ๋ LTSC ๋ฐ SAC๋ผ๊ณ ํฉ๋๋ค.
LTSC๋ ๋ค์์ ์๋ฏธํฉ๋๋ค.
Microsoft๋ ๋ํ ์๋น์ค ๋ถ๊ธฐ CBB(๋น์ฆ๋์ค์ฉ ํ์ฌ ๋ถ๊ธฐ)์ ์ด๋ฆ์ ๋ณ๊ฒฝํ์ผ๋ฉฐ ์ด์ ์ด ์๋น์ค ๋ถ๊ธฐ๋ SAC๋ผ๊ณ ํฉ๋๋ค.
๊ทธ๋ฌ๋ LTSC ๋ฐ SAC ์๋น์ค ๋ถ๊ธฐ๋ ์๋ก ๋ค๋ฅธ Windows ๋ฐฐํฌํ์ ์ฌ์ฉํ๋ค๋ ์ ์ ์ธ๊ธํด์ผ ํฉ๋๋ค.
SAC์ ์๋ก์ด ํค์ค์คํฌ ๋ชจ๋์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช
์ด๋ฏธ ๋งํ๋ฏ์ด LTSC์ SAC๋ ๋ฐฐํฌํ์ด ๋ค๋ฆ ๋๋ค. LTSC์๋ ํ์ค ๋ฒ์ฉ ์ฑ์ด๋ ์ฑ ์คํ ์ด๊ฐ ์์ง๋ง SAC์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ LTSC์๋ Edge ๋ธ๋ผ์ฐ์ ๊ฐ ์์ง๋ง SAC์๋ ์์ต๋๋ค. ํค์ค์คํฌ๋ฅผ ์ค์ ํ ๋ Edge ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ํํ๋ฉด ์ด์ ๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋์งํธ ์ฌ์ธ ๋๋ ๋ํํ ๋์คํ๋ ์ด๋ก
- ๊ณต๊ฐ ๋ธ๋ผ์ฐ์ ์ฒ๋ผ
์ด ๋ชจ๋ ์ค์ ์ ๋ํด์๋ ์์ธํ ์ค๋ช ํ์ง ์๊ฒ ์ต๋๋ค. ์๋ํ๋ฉด... ์ค์ ์ ๋งค์ฐ ๊ฐ๋จํ๋ฉฐ ๊ทธ๋ํฝ ์ธํฐํ์ด์ค์์ ์ํ๋ฉ๋๋ค. ๊ด๋ฆฌ์ ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์ด ์๋ ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ EDGE๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์ฌ์ฉ์์ ๋ํด ํค์ค์คํฌ ๋ชจ๋๋ฅผ ํ์ฑํํ ํ ์ด๋ฌํ ๋ชจ๋๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ํ์ธํ์ธ์.
๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ถ ํค์ค์คํฌ
์ด๋ค ์ฌ๋๋ค์ ํ๊ฐ๋ ์ฌ์ฉ์ด
๋ฉํฐํค์ค์คํฌ ๋ชจ๋์ ๋ํด ์กฐ๊ธ
๋ฉํฐ ํค์ค์คํฌ ๋ชจ๋๊ฐ ๊ตฌ์ฑ๋ ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ฉด ์์คํ ์ด ํ๋ธ๋ฆฟ ๋ชจ๋๋ก ์๋ํฉ๋๋ค. ์์ ๋ฉ๋ด๊ฐ ์ ์ฒด ํ๋ฉด์ผ๋ก ํ์ฅ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ํ์ผ์ด ํ์๋ฉ๋๋ค.
๊ธฐ๋ณธ ์ค์ ๋ฐ ๋ชจ๋ ๊ธฐ๋ฅ ๋ชฉ๋ก:
- ์ฌ๋ฌ ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ๋ํ ์ค์
- ๊ฐ ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ๊ฐ๋ณ ์ค์ ์ ํ ๋นํ ์ ์์ต๋๋ค.
- ๋ฒ์ฉ ๋ฐ ํด๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๋ ๋ฅ๋ ฅ
- ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ค ํ๋๋ฅผ ์๋์ผ๋ก ์คํํ๋ ๊ธฐ๋ฅ
- ํ์ฉ๋ ์ ํ๋ฆฌ์ผ์ด์
- ํ์ดํธ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ ์ก์ธ์ค
ํฌ์ธํธ 5์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์คํ ์๋์ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ง ์๋์ด ํ์ฉ๋๋ฉฐ, ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ ๊ฒ๋ค. ์ด์ AppLocker๋ฅผ ๋ณ๋๋ก ๊ตฌ์ฑํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ AppLocker ์ค์ ๊ณผ์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ๋ค์ค ํค์ค์คํฌ ๋ชจ๋์์๋ ๊ตฌ์ฑ๋ ๋ชจ๋ AppLocker ๊ท์น์ด ์ ์ฉ๋์ง ์์ต๋๋ค.
ํฌ์ธํธ 6์ ์ข์ ์ต์ ์ ๋ํ๋ด์ง๋ง ํ์ฌ๋ก์๋ "๋ค์ด๋ก๋" ํด๋์ ๋ํ ์ฐ๊ธฐ ๊ถํ๋ง ๋ถ์ฌํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฒ์ฉ ๋ฐ ํด๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ชจ๋ ์ค์ ์ XML ํ์ผ์ ์ง์ ๋๋ฉฐ, ๋จ์ผ ์ ํ๋ฆฌ์ผ์ด์ ํค์ค์คํฌ์ ๋ํ ์ค์ ๋ ์ง์ ํ ์ ์์ต๋๋ค.
์ด์ ๋ชจ๋ ๊ฒ์ ์ค์ ํด ๋ณด๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ฌด์์ด ํ์ํ๊ฐ...
- ์ฐ์ ๋ฉํฐํค์ค์คํฌ ๋ชจ๋๋ฅผ ์ง์ํ๋ ์์คํ
์์ฒด๊ฐ ํ์ํ๋ค.
์ฌ๊ธฐ์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค ๋ฐ๋ชจ ๋ฒ์ ๋ฉํฐํค์ค์คํฌ ์ค์ ์ง์นจ - ๋ชจ๋ XML ํธ์ง๊ธฐ
- ๋ฉํฐํค์ค์คํฌ ์ค์ ์ ์ ์ฉํ๋ ค๋ฉด:
- ๋ฐฉ๋ฒ 1๋ฒ - ADK์ ์ผ๋ถ์ธ ICD. ADK๊ฐ ๊ฐ๋ฅํฉ๋๋ค
์ฌ๊ธฐ์์ ๋ค์ด๋ก๋ํ์ญ์์ค - ๋ฐฉ๋ฒ 2๋ฒ - PsExec ์ ํธ๋ฆฌํฐ. ์ ํธ๋ฆฌํฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์์ ๋ค์ด๋ก๋ํ์ญ์์ค
- ๋ฐฉ๋ฒ 1๋ฒ - ADK์ ์ผ๋ถ์ธ ICD. ADK๊ฐ ๊ฐ๋ฅํฉ๋๋ค
๊ทธ๋ ๋งํ๋ค - "๊ฐ์!"
๋ชจ๋ ์คํ์ ๋ฐ๋ชจ๋ฒ์ ์ด ์๋ Windows 10 IoT Enterprise 1809 LTSC x32 ์์ฉ๋ฒ์ ์์ ์งํํ๊ฒ ์ต๋๋ค. ์์คํ ์ด ํ์ฑํ๋์ง ์์ต๋๋ค. ํ์ฑํ๊ฐ ๋ถ์กฑํด๋ ์์คํ ๊ธฐ๋ฅ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๊ณต๊ฐ์ ๋ ์ฐจ์งํ๊ณ ์์คํ ์ด๋ฏธ์ง ์์ ์ด ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ 32๋นํธ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
1๋จ๊ณ - ์ค์น
Win 10 IoT Enterprise๋ฅผ ์ค์นํ๋ ๊ฒ์ Win 10 Enterprise๋ฅผ ์ค์นํ๋ ๊ฒ๊ณผ ๋ค๋ฅด์ง ์์ผ๋ฏ๋ก ์ ์ฒด ์ค์น ๊ณผ์ ์ ์ค๋ช ํ์ง ์๊ณ ๋ช ๊ฐ์ง ๋์์ค๋ง ์ค๋ช ํ๊ฒ ์ต๋๋ค.
ํน์๋ผ๋ ์ค์น๋ ์์คํ ์์ ์์คํ ์ ์ค์นํ์ง ๋ง์ญ์์ค. ์ค์น ํ๋ก๊ทธ๋จ์ด ์์คํ ์ค์น ์์น๋ฅผ ๋ฌป๋ ๊ฒฝ์ฐ ํฅํ ์์คํ ๋์คํฌ์ ๋ชจ๋ ํํฐ์ ์ ์ญ์ ํ๊ณ ํํฐ์ ๋์ง ์์ ๋์คํฌ๋ฅผ ์ง์ ํฉ๋๋ค.
์์คํ ์ด ๋ถํ์ํ ๊ฒ์ ๊ฐ์ ธ ์ค์ง ์๋๋ก ์ธํฐ๋ท ์ฐ๊ฒฐ์์ด ์์คํ ์ ์ค์นํฉ๋๋ค.
์๋ํ๋ฉด ์์คํ ์ ๋ฐฑ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ์ํด ๊ฐ์ฌ ๋ชจ๋์์ ๋ด์ธํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค์น ํ ์ฆ์ ๊ฐ์ฌ ๋ชจ๋์์ ์์คํ ์ ๋ก๋ํ์ฌ ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ์์คํ ์์ ์ง์ญ์ ์ ํํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด โ์ง์ญ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. ๋ง์ต๋๊น?" ๊ทธ๋ฅ "Ctrl+Shift+F3"์ ๋๋ฅด์ธ์.
2๋จ๊ณ - ์์คํ ์ด๋ฏธ์ง ๋ง๋ค๊ธฐ
์๋ํ๋ฉด ์ฐ๋ฆฌ๋ ์์คํ ์ ๋ชจ์ํ๊ณ ๋ค์ํ ์๋ก์ด ์ค์ ์ ์๋ํ ๊ฒ์ ๋๋ค. ๋ญ๊ฐ ์๋ชป๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ ์์คํ ์ ์๋ ์ํ๋ก ๋๋๋ ค์ผ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น ๋ฅด๊ฒ ์๋ ์ํ๋ก ๋์๊ฐ๋ ค๋ฉด ์์คํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๋ด๊ฐ ํ ์ ์ผํ ์ผ์ "์ ์ฌ ํคํธ"(์คํฌ๋ฆฝํธ์ ์๋ต ํ์ผ)๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์ ๋๋ค. ๋ด ๋ชจ๋ ํ์ผ์ ์์คํ ๋์คํฌ ๋ฃจํธ์ ๋ณต์ฌํ "Sysprep" ํด๋์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ฐํ ์ด "์ ์ฌ ์ธํธ"๋ฅผ ์ฌ๋ฌ๋ถ๊ณผ ๊ณต์ ํ๊ฒ ์ต๋๋ค.
Sysprep.bat โ ์์คํ ์ ๋ด์ธํฉ๋๋ค.
@echo off
chcp 1251>nul
net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)
tasklist /fi "ImageName eq sysprep.exe" | find /i "sysprep.exe"
if %errorlevel% lss 1 (taskkill /im sysprep.exe)
set AdminName=Admin
net user %AdminName%>nul 2>nul
if %errorLevel% neq 0 (call :AddAdmin "%AdminName%")
if %errorLevel% neq 0 (call :ShowMessage "โกโกโกะัะธะฑะบะฐ ัะพะทะดะฐะฝะธั ะฝะพะฒะพะน ััะตัะฝะพะน ะทะฐะฟะธัะธ ะฐะดะผะธะฝะธัััะฐัะพัะฐ "%AdminName%"โกโกะะฐะถะผะธัะต ะปัะฑัั ะบะปะฐะฒะธัั ะดะปั ะทะฐะฒะตััะตะฝะธั ัะฐะฑะพัั ัะบัะธะฟัะฐ"&pause>nul&exit)
pushd "%~dp0"
cls
call :ShowMessage โกโกโกโกโกโกโกโกโกโก
echo 1 - ะะฐะฟะตัะฐัะฐัั ัะธััะตะผั ะฒ ัะตะถะธะผะต ะฐัะดะธัะฐ
echo 2 - ะะฐะฟะตัะฐัะฐัั ัะธััะตะผั ะฒ ัะตะถะธะผะต ะฟัะธะฒะตัััะฒะธั
:Select
set /p Choice="ะะฒะตะดะธัะต ะฝะพะผะตั ะฟัะฝะบัะฐ ะผะตะฝั: "
if "%Choice%"=="1" (goto Audit)
if "%Choice%"=="2" (goto OOBE)
echo.&echo ะัะฑัะฐะฝะพ ะฝะตะดะพะฟัััะธะผะพะต ะทะฝะฐัะตะฝะธะต.&goto Select
exit
:Audit
call :ShowMessage "โกโกโกโกโกะะฐะฟะตัะฐััะฒะฐะฝะธะต ัะธััะตะผั ะฒ ัะตะถะธะผะต ะฐัะดะธัะฐ"
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v KillSysprep /t REG_SZ /d "taskkill /im sysprep.exe" /f
%SYSTEMROOT%System32Sysprepsysprep.exe /audit /generalize /shutdown /quiet
goto :eof
:OOBE
call :ShowMessage "โกโกโกโกโกะะฐะฟะตัะฐััะฒะฐะฝะธะต ัะธััะตะผั ะฒ ัะตะถะธะผะต ะฟัะธะฒะตัััะฒะธั"
reg delete HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v KillSysprep /f
powershell -command "(Get-Content -path 'Unattend.xml' -Raw).Trim() -replace 'Architecture=""".+?"""','Architecture="""%PROCESSOR_ARCHITECTURE%"""' | Set-Content -path 'Unattend.xml'"
%SYSTEMROOT%System32Sysprepsysprep.exe /oobe /generalize /shutdown /quiet /unattend:Unattend.xml
goto :eof
:AddAdmin
setlocal
set UserName=%~1
if not defined UserName (echo ะะต ัะบะฐะทะฐะฝะพ ะธะผั ะฟะพะปัะทะพะฒะฐัะตะปั&endlocal&exit /b 1)
call :GetGroupName "S-1-5-32-544" AdminGroup
if not defined AdminGroup (endlocal&exit /b 2)
call :GetGroupName "S-1-5-32-545" UserGroup
if not defined UserGroup (endlocal&exit /b 3)
net user %UserName% /add
wmic useraccount where "Name='%UserName%'" set PasswordExpires=False>nul
net localgroup %AdminGroup% %UserName% /add
net localgroup %UserGroup% %UserName% /delete
endlocal&exit /b 0
goto :eof
:GetGroupName
if "%~1"=="" (echo ะะต ัะบะฐะทะฐะฝ SID ะณััะฟะฟั&goto :eof)
set %2=
for /f "tokens=2 delims= " %%i in ('whoami /groups /fo table^|find "%~1"') do set %2=%%i
if not defined %2 (echo ะัะธะฑะบะฐ ะพะฟัะตะดะตะปะตะฝะธั ะธะผะตะฝะธ ะณััะฟะฟั ะฟะพ SID'ั "%~1")
goto :eof
:ShowMessage
setlocal enabledelayedexpansion
set String=%~1
if not defined String (echo.&setlocal disabledelayedexpansion&goto :eof)
set /a ConCols=120 & set /a Num=1
set "String[!Num!].str=%String:โก=" & set /a Num+=1 & set "String[!Num!].str=%"
for /l %%a in (1,1,%Num%) do (
for /l %%b in (0,1,%ConCols%) do if "!String[%%a].str:~%%b!" == "" (set "String[%%a].str= !String[%%a].str! "&set /a String[%%a].len-=1) else (set /a String[%%a].len+=0||set /a String[%%a].len=0)
if not defined String[%%a].str (set String[%%a].str= )
if not !String[%%a].len! equ 0 (call set String[%%a].str=%%String[%%a].str:~,!String[%%a].len!%%)
if "!String[%%a].str: =!"=="" (echo.) else (echo !String[%%a].str!))
setlocal disabledelayedexpansion
goto :eof
์คํ๋๋ฉด ์คํฌ๋ฆฝํธ๋ "๊ด๋ฆฌ์" ๊ณ์ ์ด ์๋์ง ํ์ธํ๊ณ ํด๋น ๊ณ์ ์ด ์์ผ๋ฉด ๊ณ์ ์ ์์ฑํฉ๋๋ค. ๊ณ์ ์ด ๊ด๋ฆฌ์ ๊ทธ๋ฃน์ ์ถ๊ฐ๋ฉ๋๋ค.
Unattend.xml โ sysprep์ ๋ํ ์๋ต ํ์ผ์ ๋๋ค.
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f</Path>
<Order>1</Order>
<Description>Dont show key page</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f</Path>
<Order>2</Order>
<Description>Dont make account</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>cmd.exe /c rd %systemdrive%Sysprep /s /q</Path>
<Order>3</Order>
<Description>Del Folder</Description>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoLogon>
<Enabled>true</Enabled>
<Username>Admin</Username>
</AutoLogon>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-US; ru-RU</InputLocale>
<SystemLocale>ru-RU</SystemLocale>
<UILanguage>ru-RU</UILanguage>
<UILanguageFallback></UILanguageFallback>
<UserLocale>ru-RU</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
</component>
</settings>
</unattend>
๊ฐ์ฌ ๋ชจ๋์์ ๋ด์ธํ ๋ ์คํฌ๋ฆฝํธ๋ ๋งค๋ฒ ์๋์ผ๋ก sysprep ์ฐฝ์ ๋ซ์ง ์๋๋ก "sysprep.exe" ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ๋ช ๋ น์ ๋ ์ง์คํธ๋ฆฌ์ ์ถ๊ฐํฉ๋๋ค. Hello ๋ชจ๋๋ก ๋ด์ธ๋๋ฉด ์คํฌ๋ฆฝํธ๋ ๋ ์ง์คํธ๋ฆฌ์์ ์ฐฝ์ ๋ซ๋ ๋ช ๋ น์ ์ ๊ฑฐํ๊ณ ์๋ต ํ์ผ์ ์ํคํ ์ฒ ๊ฐ์ ํ์ฌ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ์๋ต ํ์ผ์๋ ์ฌ์ฉ์ ๊ฐ์ ์์ด ์์คํ ์ ๋ถํ ํ๊ธฐ ์ํ ๋งค๊ฐ ๋ณ์์ ์์คํ ๋๋ผ์ด๋ธ ๋ฃจํธ์ ์๋ "Sysprep" ํด๋๋ฅผ ์ญ์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด ํฌํจ๋์ด ์์ต๋๋ค.
์ด์ โSysprep.batโ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฌ ๋ชจ๋์์ ์์คํ ์ ๋ด์ธํ๊ณ ์์คํ ์ด๋ฏธ์ง๋ฅผ ์บก์ฒํ๊ฒ ์ต๋๋ค. DISM์ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ด๋ฏธ์งํํ๊ณ ์์คํ ๋ณผ๋ฅจ๋ง ์ด๋ฏธ์งํํ๊ฒ ์ต๋๋ค. ์ ์ฒด ๋์คํฌ๊ฐ ์๋ ์์คํ ๋ณผ๋ฅจ๋ง ์ด๋ฏธ์งํํ๋ ค๋ ๊ฒฝ์ฐ ์์คํ ์ ๋ฐฐํฌํ ํ "WindowsSystem32Recovery" ๋๋ ํฐ๋ฆฌ์ ๋ด์ฉ์ ์ฒซ ๋ฒ์งธ ๋ณผ๋ฅจ์ "RecoveryWindowsRE" ํด๋์ ๋ณต์ฌํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ์ด ์์ ์ OS๋ฅผ ๋ก๋ํ๊ธฐ ์ ์ ์ํํด์ผ ํฉ๋๋ค. OS๋ฅผ ๋ก๋ํ ํ "WindowsSystem32Recovery" ๋๋ ํฐ๋ฆฌ๋ ์ด๋ฏธ ๋น์ด ์์ต๋๋ค.
3๋จ๊ณ โ ์์คํ ์ ๋ฌ์์ํ
์ด ํฉ์ด ์์ผ๋ฉด ์ธํฐ๋ท ์ฐ๊ฒฐ ์์ด ์ธ์ด ํฉ์ ์ค์นํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ค์ ์์ ์ธ์ด๋ฅผ ์ถ๊ฐํ๋ฉด ์์คํ ์์ฒด๊ฐ ์ธํฐ๋ท์์ ํด๋น ์ธ์ด๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ์ด์ ๋ฒ์ ์ OS์์ ์ธ์ด ํฉ์ ๊ฐ์ ธ์ฌ ํ์๋ ์์ต๋๋ค. Windows 10 1809์ ๊ฒฝ์ฐ Windows 10 1809 ์ ์ฉ ์ธ์ด ํฉ์ด ์์ด์ผ ํฉ๋๋ค.
Microsoft๋ ํด๋์ ๋ฉ๋ด์์ ์ ๋ฉ๋ด๋ก ์ค์ ์ ์ ์ง์ ์ผ๋ก ์ ์กํ๋ ค๋ ๊ณํ์ ๋ฐ๋ฅด๊ณ ์์ผ๋ฏ๋ก ํด๋์ ์ ์ดํ์์๋ ๋ ์ด์ ์ธ์ด ๋ณ๊ฒฝ ๋ฐ ์ธ์ด ํฉ ์ค์น ์ค์ ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค์ ์ ์ด์ ์์คํ ๋งค๊ฐ๋ณ์์๋ง ์์ต๋๋ค.
๊ฐ์ฌ ๋ชจ๋์์๋ ์์ ๋ฉ๋ด์์ ์์คํ ์ค์ ์ ์ฌ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์์คํ ์ค์ ์ ์ด๋ ค๋ฉด "ms-settings:" ๋ช ๋ น์ ์คํํ๊ณ ๋ช ๋ น ๋์ ์๋ ์ฝ๋ก ์ ์ฃผ์ํ์ธ์. ์๋ํ์ง. ์ด ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์์คํ ๋งค๊ฐ๋ณ์๋ฅผ ํ ๋ฒ ์ฐ ํ ๊ทธ๋ํฝ ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ ์์ต๋๋ค.
ํ์ง๋ง ์์คํ ์ด ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด ์์คํ ์ค์ ์์ ์ธ์ด ํฉ์ ์ค์นํ ์ ์์ผ๋ฉฐ, ๋ก์ปฌ ํ์ผ์์ ์ธ์ด ํฉ์ ์ค์นํ๋๋ก ์ ํํ ์ ์๋ ์ต์ ์ ์์ต๋๋ค.
์์คํ
ํ์งํ ๊ณผ์ ์ ์ค๋ช
ํ์ง ์๊ฒ ์ต๋๋ค. ์๋ํ๋ฉด... ํนํ ํ์งํ ํ๋ก์ธ์ค๊ฐ ์์ธํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ฌ๊ฐ ์๋นํ ๋ณต์กํด์ง๋๋ค.
์ธํฐ๋ท ์ฐ๊ฒฐ ์์ด ์ธ์ดํฉ์ ์ค์นํ๊ฒ ์ต๋๋ค.
์์คํ ํ์งํ๋ฅผ ์๋ฃํ ํ์๋ ๋ฐ๋์ ์์คํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ์ธ์.
4๋จ๊ณ - ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ค์น
์๋ํ๋ฉด LTSB ๋ฐ LTSC ์์คํ
์๋ ์ ํ๋ฆฌ์ผ์ด์
์คํ ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ Microsoft Store์์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ค์นํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค์ด๋ก๋ํ๋ ๋ฑ์ ์ด๋ ค์์ด ๋ฐ์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค์ด๋ก๋ํ๊ธฐ ์ํด Adguard ํ์ฌ๋ ๋งค์ฐ ํธ๋ฆฌํ ์๋น์ค๋ฅผ ๋ง๋ค์์ต๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ ค๋ฉด "Appx" ๋ฐ "AppxBundle" ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ์ด ํ์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๋ฅผ ์ค์นํ๊ธฐ ์ ์ ํด๋น ๊ตฌ์ฑ ์์๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑ ์์๋ ํ์ผ ์ด๋ฆ์ผ๋ก ์ง๊ด์ ์ผ๋ก ๊ตฌ๋ณ๋ ์ ์์ต๋๋ค.
๊ธ์ด ๋๋ฌด ๊ธธ์ด์ง์ง ์๊ธฐ ์ํด, ํนํ ์ค์น์ ๋ํ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
์ค์น ๊ณผ์ ์ ๋ํด์๋ ์์ธํ ์ค๋ช
ํ์ง ์๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ์๋ฆผ์ ํ์ฌ ๊ณ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ ๋ ์์คํ ์ ๋ด์ธํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์์คํ ์ ๋ด์ธํ ์ ์๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์์ ์ง์นจ์ ์ฐธ์กฐํ์ธ์. ๊ทธ๋ฆฌ๊ณ ๋ฉํฐํค์ค์คํฌ์ ์๋์ ํ์ธํ๋ ค๋ฉด ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ง์ผ๋ก๋ ์ถฉ๋ถํฉ๋๋ค.
5๋จ๊ณ - ๋ฉํฐํค์ค์คํฌ์ฉ ๊ตฌ์ฑ ํ์ผ ๋ง๋ค๊ธฐ
์ด์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๋ถ๋ถ์ธ ํค์ค์คํฌ ๋ชจ๋ ์ค์ ์ ๋ค์ด๊ฐ๋๋ค. ์ดํด ๋ณด์
ํ์ผ โโ๋ ์ด์์์ ์ค์ ํ๋ ๊ฒ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. XML ํ์ผ ์ฌ์ฉ์ ์ ์ ๊ตฌ์ฑ์ ์์ฑํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋จผ์ ์์ ๋ฉ๋ด์ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ํ์ผ์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. "Win+s" ๊ฒ์์ ๋ถ๋ฌ์์ ์ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฐพ์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ๊ณ "์์ ํ๋ฉด์ ๊ณ ์ "์ ์ ํํฉ๋๋ค.
๋ค์ ์ฑ์ ๊ณ ์ ํ์ต๋๋ค.
- ๋ฉ๋ชจ์ฅ
- ๊ณ์ฐ๊ธฐ
- ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ
- ํ์ธํธ
- ์๋ ํจ๋
- ๋งค๊ฐ ๋ณ์
- ์๋์ฐ์ฆ
๋ง์ง๋ง ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ณ ์ ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํ์ค LTSC ํจํค์ง์๋ ๋ค๋ฅธ ๋ฒ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ๋ฐํํ๋ฉด ํ์ผ์ ๋ฐ๋ก๊ฐ๊ธฐ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด์ ์์ ๋ฉ๋ด์์ ํ์ผ์ ์ง์ ์ด๋ํ์ฌ ๊ณ ์ ๋ ํ์ผ์ ๋ ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฆฌํ๊ฒ ์ต๋๋ค. ์ ํ์ผ ๊ทธ๋ฃน์ ๋ง๋ค๋ ค๋ฉด ํ์ผ์ ๋ค๋ฅธ ํ์ผ๋ณด๋ค ํจ์ฌ ๋๊ฑฐ๋ ๋ฎ๊ฒ ๋๋๊ทธํ๋ฉด ์ง๊ด์ ์ธ ๊ตฌ๋ถ์ ์ด ๊ฐ์กฐ ํ์๋ฉ๋๋ค. ์ฌ๋์ ๋ฐ๋ผ ๊ทธ๋ฃน ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๊ทธ๋ฃน ์์ ๋ง์ฐ์ค ์ปค์๋ฅผ ๋๊ณ "๊ทธ๋ฃน ์ด๋ฆ ์ง์ "์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ํ๋๋ฉด ๋ง์ฐ์ค ์ผ์ชฝ ๋ฒํผ์ ํด๋ฆญํ์ธ์. ์ฒซ ๋ฒ์งธ ๊ทธ๋ฃน์ "์ค์ "์ด๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์๋ "์ค์ " ๋ฐ "Windows ๋ณด์" ํ์ผ์ด ํฌํจ๋ฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ํ์ผ์ ํฌํจํ๋ ๋ ๋ฒ์งธ ๊ทธ๋ฃน์ "Office ์์ฉ ํ๋ก๊ทธ๋จ"์ด๋ผ๊ณ ๋ถ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ทธ๋ฃน ์ด๋ฆ ์ค๋ฅธ์ชฝ ์๋จ์ ์๋ ๋ ๊ฐ์ ์ค๋ฌด๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ๊ทธ๋ฃน ์ ์ฒด๋ฅผ ๋๋๊ทธํ์ฌ ์ด๋ํ ์ ์์ต๋๋ค.
์๋ํ๋ฉด "Windows ๋ณด์" ํ์ผ์ ์ด๋ฆ์ด ์์ ํ ๋ง์ง ์์ผ๋ฉด ํฌ๊ธฐ๋ฅผ "์์ด๋"๋ก ๋ณ๊ฒฝํ๊ฒ ์ต๋๋ค. ํ์ผ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ํ์ผ์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ๊ณ "ํฌ๊ธฐ ์กฐ์ "์ ์ ํํ์ธ์.
๊ตฌ์ฑ ํ ํ์ฌ ์ํ๋ฅผ ๋ด๋ณด๋ด๊ณ PowerShell ํ๊ฒฝ์์ "Export-StartLayout โ ๊ฒฝ๋ก C:SysprepStartLayout.xml" ๋ช ๋ น์ ์คํํฉ๋๋ค.
๋ค์์ผ๋ก ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ค์ ํ์ผ์ ์ง์ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ,
ํด๋์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ์ง ์์ผ๋ฏ๋ก 'FileExplorerNamespaceRestrictions' ์น์ ์ ์ญ์ ํฉ๋๋ค.
์์ ํ์์ค์ ํ์ํด๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ผ๋ฏ๋ก "์์ ํ์์ค" ์น์ ์ ์๋ ๋ชจ๋ ํญ๋ชฉ์ ๊ทธ๋๋ก ๋ก๋๋ค.
์์ ์์๋ ๋ ๊ฐ์ ํ๋กํ์ด ์ง์ ๋์ด ์์ง๋ง ํ๋กํ์ ํ๋๋ง ์์ผ๋ฏ๋ก ๋ ๋ฒ์งธ ํ๋กํ์ด ์๋ ์น์ ์ ์ญ์ ํ ์ ์์ต๋๋ค. ์ ๊ฑฐํ๊ธฐ ์ ์ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋์ผ๋ก ์์ํ๋ ์์ ์ฃผ์ํ์ธ์.
'๊ตฌ์ฑ' ์น์ ์์๋ ๊ณ์ ์ด ํ๋กํ์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ์ฌ๋ฌ ๊ณ์ ์ ํ๋์ ํ๋กํ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ํ์ง๋ง ์๋ํ๋ฉด ํ๋์ ๊ณ์ ์๋ง ๊ด์ฌ์ด ์์ผ๋ฏ๋ก ์ฒซ ๋ฒ์งธ ๊ณ์ ์ธ "๊ตฌ์ฑ" ๋ธ๋ก์ ์ ์ธํ ๋ชจ๋ ๋ฐ์ธ๋ฉ์ ์ญ์ ํ๊ฒ ์ต๋๋ค. ๋๋จธ์ง ๋ฐ์ธ๋ฉ์์๋ ์ฌ์ฉ์ ์ด๋ฆ "User"๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค.
๋งค๊ฐ๋ณ์๊ฐ ํฌํจ๋ ํ์ผ์ ์ป์์ต๋๋ค.
MultiAppKiosk.xml
<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
>
<Profiles>
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
<AllAppsList>
<AllowedApps>
<App AppUserModelId="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<App AppUserModelId="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
<App DesktopAppPath="%windir%system32notepad.exe" />
<App DesktopAppPath="C:Program FilesInternet Exploreriexplore.exe" />
<App DesktopAppPath="%windir%system32win32calc.exe" />
<App DesktopAppPath="%windir%system32mspaint.exe" />
<App DesktopAppPath="%ProgramFiles%Windows NTAccessorieswordpad.exe" />
</AllowedApps>
</AllAppsList>
<StartLayout>
<![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6">
<start:Group Name="ะะฐัััะพะนะบะธ">
<start:Tile Size="2x2" Column="0" Row="0" AppUserModelID="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<start:Tile Size="4x2" Column="2" Row="0" AppUserModelID="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
</start:Group>
<start:Group Name="ะัะธัะฝัะต ะฟัะธะปะพะถะตะฝะธั">
<start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesWordpad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesNotepad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesCalculator.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesPaint.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesInternet Explorer.lnk" />
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
]]>
</StartLayout>
<Taskbar ShowTaskbar="true"/>
</Profile>
</Profiles>
<Configs>
<Config>
<Account>User</Account>
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
</Config>
</Configs>
</AssignedAccessConfiguration>
XML ๊ตฌ์ฑ ํ์ผ์ ๋ง๋ค ๋ ๊ฐ ํ๋กํ์๋ ํ๋์ XML ํ์ผ๋ฟ๋ง ์๋๋ผ ํ๋์ OS ๋ด์์ ๊ณ ์ ํ ID๊ฐ ์์ด์ผ ํ๋ค๋ ์ ์ ์์ง ๋ง์ญ์์ค. ์ ๊ฒ๋ค. ์ด์์ ์ผ๋ก๋ ํผ๋์ ํผํ๊ธฐ ์ํด ๋งค๋ฒ ์ ์๋ณ์๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ด๋ PowerShell ํ๊ฒฝ์์ "[guid]::NewGuid()" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ผ์ "UTF-8" ์ธ์ฝ๋ฉ์ผ๋ก ์ ์ฅํด์ผ ํฉ๋๋ค. ํ์ผ์ด "ANSI" ์ธ์ฝ๋ฉ์ผ๋ก ์ ์ฅ๋ ๊ฒฝ์ฐ ์ค๋น ํจํค์ง๋ฅผ ๋น๋ํ ๋ XML ํ์ผ์ ํค๋ฆด ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
6๋จ๊ณ - ๋ฉํฐํค์ค์คํฌ ์ค์ ์ ์ฉ
๊ตฌ์ฑ ํ์ผ์ ์ค๋ช ๋ ์ค์ ์ ์ ์ฉํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ICD์์ ์์ฑ๋์ด์ผ ํ๋ ํ๋ก๋น์ ๋ ํจํค์ง๋ฅผ ํตํ ๊ฒ์ ๋๋ค. ์ด๋ค ์ฌ๋๋ค์๊ฒ๋ ์๋ง๋ ์ด ๋ฐฉ๋ฒ์ด ๋ ์ต์ํ ๊ฒ์ ๋๋ค. ๋ ๋ฒ์งธ๋ "MDM Bridge WMI Provider"๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ ์ด ๋ฐฉ๋ฒ์ด ๋ ํธ๋ฆฌํด ๋ณด์์ต๋๋ค.
๋ฐฉ๋ฒ # 1
ICD๊ฐ ์๋ ์ฌ๋์ ๋๊ตฌ์
๋๊น?
ICD๋ฅผ ์คํํ๊ณ "๊ณ ๊ธ ์ค๋น" ํ์ผ์ ํด๋ฆญํ ํ ํ๋ก์ ํธ ์ด๋ฆ๊ณผ ํด๋๋ฅผ ์ง์ ํ๊ณ "๋ค์"์ ํด๋ฆญํฉ๋๋ค. ๋ค์ ์ฐฝ์์ "Windows ๋ฐ์คํฌํฑ์ ๋ชจ๋ ๋ฒ์ "์ ์ ํํ๊ณ "๋ค์"์ ํด๋ฆญํฉ๋๋ค. ์ค๋น ํจํค์ง ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. "๋ง์นจ"์ ํด๋ฆญํ์ธ์.
"๋ฐํ์ ์ค์ " ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ํ์ฅํ ๋ค์ "AssignedAccess" ํ์ ๋ฉ๋ด๋ฅผ ํ์ฅํ๊ณ "MultiAppAssignedAccessSettings"๋ฅผ ์ ํํฉ๋๋ค. ICD ์ฐฝ ์ค๊ฐ ์น์ ์๋จ์์ "์ฐพ์๋ณด๊ธฐ" ๋ฒํผ์ ํด๋ฆญํ๊ณ ์ค์ ์ด ํฌํจ๋ XML ํ์ผ์ ์์น๋ฅผ โโ์ง์ ํฉ๋๋ค. ํน์๋ผ๋ "Ctrl+s"๋ฅผ ๋๋ฌ ํ๋ก์ ํธ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ICD ์ผ์ชฝ ์๋จ์์ "๋ด๋ณด๋ด๊ธฐ"๋ฅผ ์ ํํ๊ณ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ "ํ๋ก๋น์ ๋ ํจํค์ง"๋ฅผ ์ ํํฉ๋๋ค. ์์ ์๋ก์ "IT ๊ด๋ฆฌ์"๋ฅผ ์ ํํ๊ณ "๋ค์"์ ํด๋ฆญํ์ฌ ๋ค๋ฅธ ๋ชจ๋ ์ง๋ฌธ์ ๊ฑด๋๋ฐ๊ณ ๋ง์ง๋ง์ "๋น๋" ๋ฐ "๋ง์นจ"์ ํด๋ฆญํฉ๋๋ค.
์ค์น๋ ์์คํ ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ์ด ์ฌ์ฉ์๋ "๊ด๋ฆฌ์" ๊ทธ๋ฃน์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค. ๋ง๋ฃ๋์ง ์๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํจํฐ ๊ด๋ฆฌ์์ ์ฌ์ฉ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
์ด์ ์ด์ ์ ์ค์น๋ ์์คํ ์์ ์ค๋น ํจํค์ง๋ฅผ ์คํํฉ๋๋ค. ์ค๋น ํจํค์ง ์ ์ฉ ํ ์์ ๋ฉ๋ด์ ๊ด๋ฆฌ์ ๋ฉ๋ด๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ผ์ชฝ ์์ ์ด์์ "๋ฌธ์", "์ด๋ฏธ์ง", "์ต์ " ๋ฒํผ์ด ์ฌ๋ผ์ ธ์ผ ํฉ๋๋ค. ์์ ๋ฉ๋ด๊ฐ ๋ณ๊ฒฝ๋์ง ์์๋ค๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ ๋๋ค. ์ค์น๋ ํจํค์ง๋ ์ค์ > ๊ณ์ > ํ์ฌ ๋๋ ํ๊ต ๊ณ์ ์ก์ธ์ค > ํ๋ก๋น์ ๋ ํจํค์ง ์ถ๊ฐ ๋๋ ์ ๊ฑฐ ์ฐฝ์ ์ด์ด ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์์ ๋ฉ๋ด๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ค์ ์ด ์์คํ ์ ์ ์ฉ๋๊ณ ๋ฉํฐ ํค์ค์คํฌ๊ฐ ๊ตฌ์ฑ๋ ์ฌ์ฉ์๋ก ๋ก๊ทธ์ธํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐฉ๋ฒ # 2
"MDM Bridge WMI Provider"๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ์ ์ฉ
MiltiKiosk.bat โ ์คํ ์คํฌ๋ฆฝํธ
@echo off
chcp 1251>nul
if not exist "%~dp0psexec.exe" call :ShowMessage "โกโกโกโกโกโกโกโกโกโกโกโกโกะะปั ัะฐะฑะพัั ัะบัะธะฟัะฐ ะฝะตะพะฑั
ะพะดะธะผ ัะฐะนะป psexec.exeโกโกะะปั ะทะฐะฒะตััะตะฝะธั ัะฐะฑะพัั ัะบัะธะฟัะฐ ะฝะฐะถะผะธัะต ะปัะฑัั ะบะปะฐะฒะธัั"&pause>nul&exit
net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)
for /f "tokens=2 delims==" %%i in ('wmic useraccount where "Name='%UserName%'" get SID /value^|find "SID"') do set SID=%%i
reg add HKU%SID%SoftwareSysinternalsPsExec /v EulaAccepted /t REG_DWORD /d 1 /f
for /f %%i in ('dir "%~dp0%~n0*.ps1" /b /o:n') do set PSFilePath=%~dp0%%i
if not defined PSFilePath (echo ะะต ะฝะฐะนะดะตะฝะพ PS ัะฐะนะปะพะฒ ั ะฝะฐัะฐะปะพะผ ะฝะฐะทะฒะฐะฝะธั - "%~n0"&pause&exit)
set PSFilePath=%PSFilePath: =` %
"%~dp0psexec.exe" -i -s powershell -command "Start-Process powershell.exe -ArgumentList '-ExecutionPolicy Unrestricted -Command %PSFilePath%'"
exit
:ShowMessage
setlocal enabledelayedexpansion
set String=%~1
if not defined String (echo.&setlocal disabledelayedexpansion&goto :eof)
set /a ConCols=120 & set /a Num=1
set "String[!Num!].str=%String:โก=" & set /a Num+=1 & set "String[!Num!].str=%"
for /l %%a in (1,1,%Num%) do (
for /l %%b in (0,1,%ConCols%) do if "!String[%%a].str:~%%b!" == "" (set "String[%%a].str= !String[%%a].str! "&set /a String[%%a].len-=1) else (set /a String[%%a].len+=0||set /a String[%%a].len=0)
if not defined String[%%a].str (set String[%%a].str= )
if not !String[%%a].len! equ 0 (call set String[%%a].str=%%String[%%a].str:~,!String[%%a].len!%%)
if "!String[%%a].str: =!"=="" (echo.) else (echo !String[%%a].str!))
setlocal disabledelayedexpansion
goto :eof
MiltiKiosk_Ver.12.ps1 โ ๋ฉ์ธ ์คํฌ๋ฆฝํธ
Function ConvertEncoding ([string]$From, [string]$To) {
Begin{$encFrom = [System.Text.Encoding]::GetEncoding($From);$encTo = [System.Text.Encoding]::GetEncoding($To)}
Process{$bytes = $encTo.GetBytes($_);$bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes);$encTo.GetString($bytes) -replace [char]0, ''}
}
Function ShowMessage ($Message='', $Align=0) {
Try {$Align = [decimal]$Align} Catch {Return 'ะะปั ะฟะฐัะฐะผะตััะฐ Align ะผะพะถะตั ะฑััั ัะบะฐะทะฐะฝะพ ัะพะปัะบะพ ัะธัะปะพ' | ConvertEncoding 'windows-1251' -To 'UTF-16'}
if ($Message -is [int]) {for ($i=1; $i -le $Message; $i++) {Write-Host}; Return}
if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$Message = $Message | ConvertEncoding 'windows-1251' -To 'UTF-16'}
if ($Message -is [string]) {[array] $Message = $Message}
foreach ($String in $Message) {
Try {$String = [int]$String} Catch {}
if ($String -is [int]) {for ($i=1; $i -le $String; $i++) {Write-Host}; continue}
if ($Host.UI.RawUI.BufferSize.Width -gt $String.Length) {
if ($Align -eq 0) {Write-Host $String
} else {Write-Host ("{0}{1}" -f (' ' * (([Math]::Max(0, $Host.UI.RawUI.BufferSize.Width / $Align) - [Math]::Floor($String.Length / $Align)))), $String)}
} else {Write-Host $String}
}
}
$script:NameSpace="rootcimv2mdmdmmap"
$script:ClassName="MDM_AssignedAccess"
$script:MultiAppKiosk = Get-CimInstance -Namespace $NameSpace -ClassName $ClassName
if (-not $MultiAppKiosk) {ShowMessage -Message (3, 'ะัะธะฑะบะฐ ะฟะพะปััะตะฝะธั ะพะฑัะตะบัะฐ ะฝะฐัััะพะตะบ', 2, 'ะะฐะถะผะธัะต "Enter" ะดะปั ะทะฐะฒะตััะตะฝะธั ัะฐะฑัั ัะบัะธะฟัะฐ') -Align 2; Read-Host; Exit}
Function MainMenu() {
ShowMessage (13, ' 0 - ะัั
ะพะด', ' 1 - ะัะฑัะฐัั XML-ัะฐะนะป ะดะปั ัััะฐะฝะพะฒะบะธ', ' 2 - ะะพะบะฐะทะฐัั ัะตะบัััั ะบะพะฝัะธะณััะฐัะธั ะผัะปััะธะบะธะพัะบะฐ', ' 3 - ะฃะดะฐะปะธัั ะฝะฐัััะพะนะบะธ ะผัะปััะธะบะธะพัะบะฐ', 1)
$local:PromptText = 'ะัะฑะตัะธัะต ะดะตะนััะฒะธะต'
if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}
$local:Selections = 1..2
While ($true) {
$Select = Read-Host -Prompt $PromptText
Switch ($Select) {
0 {exit}
1 {XMLSelection}
2 {ShowMessage -Message (1, 'ะะฐัะฐะปะพ ะบะพะฝัะธะณััะฐัะธะธ') -Align 2; Write-Host $MultiAppKiosk.Configuration; ShowMessage -Message ('ะะพะฝะตั ะบะพะฝัะธะณััะฐัะธะธ', 1, 'ะะปั ะฒะพะทะฒัะฐัะฐ ะฒ ะผะตะฝั ะฝะฐะถะผะธัะต "Enter"', 1) -Align 2; Read-Host}
3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ShowMessage -Message (1, 'ะัะฟะพะปะฝะตะฝะฐ ะบะพะผะฐะฝะดะฐ ัะดะฐะปะตะฝะธั ะฝะฐัััะพะตะบ', 1) -Align 2}
DEFAULT {ShowMessage 'ะัะฑัะฐะฝะพ ะฝะตะดะพะฟัััะธะผะพะต ะทะฝะฐัะตะฝะธะต'}
}
if ($Selections -contains $Select) {Clear-Host; ShowMessage (15, ' 0 - ะัั
ะพะด', ' 1 - ะัะฑัะฐัั XML-ัะฐะนะป ะดะปั ัััะฐะฝะพะฒะบะธ', ' 2 - ะะพะบะฐะทะฐัั ัะตะบัััั ะบะพะฝัะธะณััะฐัะธั ะผัะปััะธะบะธะพัะบะฐ', ' 3 - ะฃะดะฐะปะธัั ะฝะฐัััะพะนะบะธ ะผัะปััะธะบะธะพัะบะฐ', 1)}
}
}
Function XMLSelection() {
Clear-Host
if (!(Test-Path -Path $PSScriptRoot'XML')) {ShowMessage -Message (13, 'ะะต ะฝะฐะนะดะตะฝ ะบะฐัะฐะปะพะณ', $('"'+$PSScriptRoot+'XML"'), 1, 'ะะฐะถะผะธัะต "Enter" ะดะปั ะฒะพะทะฒัะฒัะฐ ะฒ ะฟัะตะดัะดััะตะต ะผะตะฝั') -Align 2; Read-Host; Return}
$local:XMLList = @()
$XMLList += Get-ChildItem -Path $PSScriptRoot'XML' -name -filter '*.xml'
if ($XMLList.Count -eq 0) {ShowMessage -Message (13, 'ะะต ะฝะฐะนะดะตะฝะพ XML-ัะฐะนะปะพะฒ ะฒ ะบะฐัะฐะปะพะณะต', $('"'+$PSScriptRoot+'XML"'), 1, 'ะะฐะถะผะธัะต "Enter" ะดะปั ะฒะพะทะฒัะฒัะฐ ะฒ ะฟัะตะดัะดััะตะต ะผะตะฝั') -Align 2; Read-Host; Return}
[int]$local:Indent = 13 - $XMLList.Count / 2; if ($Indent -lt 1) {$Indent = 1}
ShowMessage ($Indent, ' 0 - ะะตัะฝััััั ะฒ ะฟัะตะดัะดััะตะต ะผะตะฝั')
for ($i=0; $i -le $XMLList.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLList[$i])}
Write-Host
$local:PromptText = 'ะัะฑะตัะธัะต ัะฐะนะป ะดะปั ัััะฐะฝะพะฒะบะธ'
if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}
$local:Selections = 1..$XMLList.Count
$local:BackToPrevMenu = 0
While ($BackToPrevMenu -eq 0) {
$Select = Read-Host -Prompt $PromptText
Switch ($Select) {
0 {$BackToPrevMenu = 1}
{$Selections -contains $Select} {ShowMessage $('ะะฐะฝะฐ ะบะพะผะฐะฝะดะฐ ะฝะฐ ะฟัะธะผะตะฝะตะฝะธะต ะฝะฐัััะพะตะบ ะธะท ัะฐะนะปะฐ '+$XMLList[$Select-1]);
$local:Config = (Get-Content -encoding UTF8 -path $($PSScriptRoot+'XML'+$XMLList[$Select-1]) -Raw).Trim()
$local:GUIDs = [regex]::matches($Config, '{.+?}') | select -ExpandProperty Value | Get-Unique
foreach ($GUID in $GUIDs) {$Config = $Config -replace $(''+$GUID),$('{'+[guid]::NewGuid()+'}')}
$Config = $Config -replace '&','&' -replace '<','<' -replace '>','>' -replace "'",''' -replace '"','"'
$MultiAppKiosk.Configuration = $Config
Set-CimInstance -CimInstance $MultiAppKiosk
}
DEFAULT {ShowMessage ('ะัะฑัะฐะฝะพ ะฝะตะดะพะฟัััะธะผะพะต ะทะฝะฐัะตะฝะธะต')}
}
}
}
MainMenu
๋ด ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ค๋ฉด ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ ์ด๋ฆ์ผ๋ก ํ ํด๋์ ์ ์ฅํ๊ณ "PsExec.exe" ํ์ผ์ ๊ฐ์ ํด๋์ ๋ฃ์ผ์ธ์. ๋์ผํ ํด๋์ "XML" ํด๋๋ฅผ ์์ฑํ๊ณ XML ํ์ผ์ ๋ณต์ฌํ์ฌ ๋ฉํฐํค์ค์คํฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ ํ์ผ์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
MultiAppKiosk.xml
<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
>
<Profiles>
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
<AllAppsList>
<AllowedApps>
<App AppUserModelId="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<App AppUserModelId="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
<App DesktopAppPath="%windir%system32notepad.exe" />
<App DesktopAppPath="C:Program FilesInternet Exploreriexplore.exe" />
<App DesktopAppPath="%windir%system32win32calc.exe" />
<App DesktopAppPath="%windir%system32mspaint.exe" />
<App DesktopAppPath="%ProgramFiles%Windows NTAccessorieswordpad.exe" />
</AllowedApps>
</AllAppsList>
<StartLayout>
<![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6">
<start:Group Name="ะะฐัััะพะนะบะธ">
<start:Tile Size="2x2" Column="0" Row="0" AppUserModelID="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<start:Tile Size="4x2" Column="2" Row="0" AppUserModelID="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
</start:Group>
<start:Group Name="ะัะธัะฝัะต ะฟัะธะปะพะถะตะฝะธั">
<start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesWordpad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesNotepad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesCalculator.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesPaint.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesInternet Explorer.lnk" />
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
]]>
</StartLayout>
<Taskbar ShowTaskbar="true"/>
</Profile>
</Profiles>
<Configs>
<Config>
<Account>User</Account>
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
</Config>
</Configs>
</AssignedAccessConfiguration>
์คํฌ๋ฆฝํธ์ ๊ธฐ๋ฅ์ ๋ํด ์กฐ๊ธ. ์ด ์คํฌ๋ฆฝํธ๋ "UTF8" ์ธ์ฝ๋ฉ์ด ํฌํจ๋ XML ํ์ผ์ ์ฌ์ฉํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. "ANSI" ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ ค๋ฉด ํ์ผ ์ฝ๊ธฐ ์ต์ ์์ "encoding UTF8" ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ฑฐํ์ธ์. ๋ฌธ์๋ฅผ ๋ฐ๊พธ์ง ์๊ณ "XML" ํด๋์ XML ํ์ผ์ ๋ฐฐ์นํด์ผ ํฉ๋๋ค. ์คํฌ๋ฆฝํธ ์์ฒด๊ฐ ํน์ ๋ฌธ์๋ฅผ ์ ์ ํ ์ง์ ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ฌ์ฉ์๋ฅผ ํ๋กํ์ ์ฐ๊ฒฐํ๋ GUID์์ ํผ๋๋์ง ์๋๋ก ์ฌ์ฉ์ ๋ฒํธ๋ ์ด๋ฆ์ ์ค๊ดํธ ์์ ํ์ํ๋ฉด ๋ฉ๋๋ค. ์ค๊ดํธ ์์ ๋ชจ๋ ๋ด์ฉ์ GUID๋ก ๋์ฒด๋ฉ๋๋ค.
์คํฌ๋ฆฝํธ ์ฌ์ฉ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ํ์ํ ํญ๋ชฉ์ ์ ํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ํ์ฌ ๊ตฌ์ฑ์ ์ ๊ตฌ์ฑ์ผ๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด ํ์ฌ ๊ตฌ์ฑ์ ์ญ์ ํ ํ์๊ฐ ์์ผ๋ฉฐ ๋ฎ์ด์ฐ๊ฒ ๋ฉ๋๋ค. ๊ตฌ์ฑ ํ์ผ์ ์ง์ ๋ ์ฌ์ฉ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค.
์ ์ฉ๋ ๋์ผํ ์ธ์ ์์ ํ์ฌ ๋ฉํฐํค์ค์คํฌ ๊ตฌ์ฑ์ ๋ณผ ๋ ํน์ ๋ฌธ์ ๋์ ๋์ฒด ๋ฌธ์์ ์กฐํฉ์ด ํ์๋ฉ๋๋ค. ์ธ์ ์ ๋ณ๊ฒฝํ ํ(์คํฌ๋ฆฝํธ ๋ค์ ์์) ๋ชจ๋ ํน์ ๋ฌธ์๊ฐ ์๋ ํ์์ผ๋ก ํ์๋ฉ๋๋ค.
7๋จ๊ณ - ์์คํ ๋ด์ธ
๋ฉํฐํค์ค์คํฌ๋ ์๋ํฉ๋๋ค. ๊ทธ๊ฒ ์ ๋ถ์ธ ๊ฒ ๊ฐ์ต๋๋ค...
๋ชจ๋ ๊ฒ์ด ๊ณํ๋๋ก ์งํ๋๋ค๋ฉด ์๋ฌด๊ฒ๋ ๋์น ์ฑ์ง ๋ชปํ ๊ฒ์ ๋๋ค.
์์คํ ์ ๊ฐ์ฌ ๋ชจ๋์์ ์์ ๋ชจ๋๋ก ์ ํํด์ผ ํ๋ค๋ ์ ์ ์์ง ๋ง์ธ์. ์ด์ ์ค๋น๊ฐ ๋์์ต๋๋ค. "Sysprep.bat"๋ฅผ ์คํํ๊ณ ํฌ์ธํธ 2๋ฅผ ์ ํํ๋ฉด ์์คํ ์ด ๋ด์ธ๋ฉ๋๋ค. ์ฅ์น๋ฅผ ์ผ๊ณ ์์คํ ์ ๋ถํ ํ๊ณ ๋ฉํฐ ํค์ค์คํฌ๊ฐ ๊ตฌ์ฑ๋ ์ฌ์ฉ์ ๊ณ์ ์ ๋ก๊ทธ์ธํ์ง๋ง ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค. โํ์ํฉ๋๋คโ ๋ฉ์์ง ๋ค์์ โ๋ก๊ทธ์์โ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
์ฒ์์๋ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ๋ง ์ค๋ช ํ๊ณ ์ถ์์ง๋ง ๋์ค์๋ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ์ฑ ์ ์ฐพ๋ ๋จ๊ณ๋ฅผ ์ค๋ช ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ถ๋ช ๋ง์ ๋ ์๋ค์ '์ด๋ ๋ค๋ฉด...'์ด๋ผ๋ ๋ง์ฐํ ์์ฌ์ ์๋ฌ๋ฆด ๊ฒ์ด๋ค. ๋ค๋ฅธ ํด๊ฒฐ์ฑ ์ ์ฐพ๊ณ ์ ํ ๋ ๋ค์ํ ์คํ์ ์ค๋ช ํ๋ฉด ์๋นํ ์๊ฐ์ ์ ์ฝํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ณด๋ฅผ ์ต๋ํ ์ ํํ๊ฒ ์์ฑํ๊ณ ์ค๋ฅ๊ฐ ์๋์ง ๋ค์ ํ ๋ฒ ํ์ธํ๊ธฐ ์ํด ์คํ์ "์๋ฃ ๋ฐ ๊ธฐ๋ก" ํ์์ผ๋ก ์ค๋ช ํ๊ฒ ์ต๋๋ค. ์ ๊ฒ๋ค. ์ค๋ช ๋ ์คํ์ ๋ค์ ์ํํ๊ฒ ์ต๋๋ค.
์คํ
์ฐ๋ฆฌ๋ ๋ฌด์์ ํ๋์? ์์คํ ์๋ ๋ ๊ฐ์ ๊ณ์ ์ด ์์ต๋๋ค:
"๊ด๋ฆฌ์" - "๊ด๋ฆฌ์" ๊ทธ๋ฃน์ ์์
"์ฌ์ฉ์" โ "์ฌ์ฉ์" ๊ทธ๋ฃน
๊ฐ์ฌ ๋ชจ๋์์๋ ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํ์ง๋ง ๋ด์ธ๋๋ฉด ์๋ํ์ง ์์์ต๋๋ค.
์คํ 1
์ค์น๋ ์ค๋น ํจํค์ง๋ฅผ ์ญ์ ํ๊ณ "์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์ญ์ ํ๊ณ "์ฌ์ฉ์"๋ผ๋ ์ด๋ฆ์ ์ ์ฌ์ฉ์๋ฅผ ๋ง๋ค๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ ์ฉํ ๋ค์ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ์ด๋ํฉ๋๋ค. ์๋ํ์ง. "Admin"์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ด๋ํ์ฌ "Users" ๊ทธ๋ฃน์์ "User" ์ฌ์ฉ์๋ฅผ ์ ๊ฑฐํ๊ณ "Administrators" ๊ทธ๋ฃน์ ์ถ๊ฐํ ๋ค์ "User"๋ผ๋ ์ด๋ฆ์ผ๋ก ์ด๋ํ๋ฉด ์๋ํ์ง ์์ต๋๋ค. "Admin"์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ก๊ทธ์ธํ๊ณ , ๋ฉํฐํค์ค์คํฌ์์ ์ค๋น ํจํค์ง๋ฅผ ์ญ์ ํ๊ณ , "User"๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ก๊ทธ์ธํฉ๋๋ค. ๋ก๊ทธ์ธํ์ง๋ง ๋ฌผ๋ก ๋ฉํฐํค์ค์คํฌ ๋ชจ๋๊ฐ ์๋ํ์ง ์์ต๋๋ค. ํ๋ก๋น์ ๋ ํจํค์ง๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค.
์คํ 2
๊ฐ์ฌ ๋ชจ๋์์ Russified ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
OS๊ฐ ๋ก๋๋์์ต๋๋ค. "Win+r"์ ๋๋ฅด์ธ์. sysprep ์ฐฝ์ด ์๋์ผ๋ก ๋ซํ์ต๋๋ค. "sysprep" ๋ช ๋ น์ ์คํํ๊ณ ์ด๋ฆฌ๋ ์ฐฝ์์ "sysprep"์ ์คํํ์ญ์์ค. ์ฐฝ์ Sysprep ์ค์ : "์์คํ ์์ ์ฐฝ(OOBE)์ผ๋ก ์ด๋", "์ฌ์ฉ ์ค๋น ์ค", "์ฌ๋ถํ ". โํ์ธโ์ ํด๋ฆญํ๊ณ OS ์ธ์ฌ๋ง์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์์คํ ์ด ์ฒ์ ๋ถํ ๋ ๋ "์ ํํ ์ธ์ด๋ก ๊ณ์ํ์๊ฒ ์ต๋๊น?"๋ผ๋ ์ง๋ฌธ์ ๋๋ตํฉ๋๋ค. - "๋ฌ์์์ด"; ์ง์ญ โ ๋ฌ์์; ํค๋ณด๋ ๋ ์ด์์ โ ๋ฌ์์์ด; ๋ ๋ฒ์งธ ํค๋ณด๋ ๋ ์ด์์ ์ถ๊ฐ - ๊ฑด๋๋ฐ๊ธฐ; โ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ๊ฒ ์ต๋๋คโ โ โ์ง๊ธ์ ๊ฑด๋๋ฐ๊ธฐโ; ์ธํฐ๋ท์ ์ฐ๊ฒฐ - ์๋์ค; ๋ผ์ด์ผ์ค ๊ณ์ฝ - ๋์ํฉ๋๋ค. โ์ด ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ ์ฌ๋โ โ โํ ์คํธโ; ๋น๋ฐ๋ฒํธ ์์ฑ - ํ๋๋ฅผ ๋น์ ๋์ธ์. ๋ค์ํ ์ฅ์น์์ ํธ๋ฆฌํ ์๋ โ ์๋์; ๊ฐ์ธ์ ๋ณด ์ค์ - ๋์ํฉ๋๋ค. OS๊ฐ ๋ก๋๋์์ต๋๋ค. "์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์"๋ผ๋ ์ด๋ฆ์ ์ฌ์ฉ์๋ฅผ ๋ง๋ค๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
์คํ 3
๊ฐ์ฌ ๋ชจ๋์์ Russified ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
OS๊ฐ ๋ก๋๋์์ผ๋ฉฐ ์์คํ ์ ์ธํฐ๋ท์ ์ฐ๊ฒฐํ๊ณ "gpedit.msc" ๋ช ๋ น์ ์คํํ ๋ค์ "Windows ์ ๋ฐ์ดํธ" ์น์ ์์ "์๋ ์ ๋ฐ์ดํธ๋ฅผ ํตํด ๊ถ์ฅ ์ ๋ฐ์ดํธ ํ์ฑํ" ์ต์ ์ ํ์ฑํํ๊ณ ๋ง์ฝ์ ๋๋นํด ์ฌ๋ถํ ํฉ๋๋ค. ์ ๋ฐ์ดํธ ์ผํฐ์์ โ์ ๋ฐ์ดํธ ํ์ธโ์ ํด๋ฆญํ๊ณ ๋ชจ๋ ์ ๋ฐ์ดํธ๊ฐ ์ค์น๋ ๋๊น์ง ์ฌ๋ถํ ํ์ธ์. ์ธํฐ๋ท์์ ์์คํ ์ฐ๊ฒฐ์ ๋์ต๋๋ค. ๊ทธ๋ํฝ ๋ชจ๋์์ "sysprep"์ ์คํํ๊ณ "sysprep" ์ ํธ๋ฆฌํฐ ์คํ๋ถํฐ ์ค๋น ํจํค์ง ์ถ๊ฐ๊น์ง ์ด์ ๋จ๊ณ์์ ์ค๋ช ํ ๋ชจ๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
์คํ 4
๊ฐ์ฌ ๋ชจ๋์์๋ ์์คํ ์ด๋ฏธ์ง(์์ด)๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
๊ทธ๋ํฝ ๋ชจ๋์์ "sysprep"์ ์คํํ๊ณ ์คํ 2์ ๋์ผํ ๋งค๊ฐ๋ณ์๋ก OS๋ฅผ ๋ด์ธํฉ๋๋ค. ์์คํ ์ด ์ฒ์ ๋ถํ ๋๋ฉด ์ง์ญ ๋ฐ ์ธ์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์คํ 2์ ๋์ผํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ํํฉ๋๋ค. ๋ฌ์์์ด๋ ์์ต๋๋ค. ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก "User"๋ผ๋ ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ํ๋ก๋น์ ๋ ํจํค์ง๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์๋ํฉ๋๋ค. ์ ๊ฒ๋ค. ๋ฌธ์ ๋ ํ์งํ์ ๊ด๋ จ์ด ์์ต๋๋ค.
์คํ 5
๊ฐ์ฌ ๋ชจ๋์์ Russified ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
"์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ถ๊ฐํ ํ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ์ด๋ํ๋ฉด ๋ฉํฐ ํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค.
๊ณ์ ์์ ๋ก๊ทธ์์ํ๊ณ "๊ด๋ฆฌ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ์ธ์. ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก PowerShell์ ์์ํ๊ณ "Dism /online /Get-Intl" ๋ช ๋ น์ ์คํํ๊ณ "๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ธ์ด: en-US"๋ฅผ ํ์ธํฉ๋๋ค.
ํ๋์ ๋๋ผ์ด๋ธ์์ WinPE๋ก ๋ถํ ํ๊ณ ๋ฐฐํฌ๋ OS๋ ๋ด E ๋๋ผ์ด๋ธ์ ์์ต๋๋ค. "Dism /image:E: /Set-UILang:ru-ru" ๋ช ๋ น์ ์คํํฉ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ โDism /image:E: /Get-Intlโ์ ์คํํ์ฌ โ๊ธฐ๋ณธ ์์คํ UI ์ธ์ด: ru-RUโ๋ฅผ ํ์ธํฉ๋๋ค.
์์คํ ์ ๋ถํ ํ๊ณ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
๋ฌธ์ ์ ์์ธ๊ณผ ๊ฒฐ๊ณผ ๊ด๊ณ๋ฅผ ๋ช ํํ ๊ท๋ช ํ๊ธฐ ์ํด ๋ฉํฐ ํค์ค์คํฌ๊ฐ ์๋ํ๊ณ ์๋ํ์ง ์๊ฒ ๋ค์ ์๋ํด ๋ณด๊ฒ ์ต๋๋ค.
ํ๋์ ๋๋ผ์ด๋ธ์์ WinPE๋ก ๋ถํ ํ๊ณ ๋ฐฐํฌ๋ OS๋ ๋ด E ๋๋ผ์ด๋ธ์ ์์ต๋๋ค. "Dism /image:E: /Set-UILang:en-us" ๋ช ๋ น์ ์คํํฉ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ โDism /image:E: /Get-Intlโ์ ์คํํ์ฌ โ๊ธฐ๋ณธ ์์คํ UI ์ธ์ด: en-USโ๋ฅผ ํ์ธํฉ๋๋ค.
์์คํ ์ผ๋ก ๋ถํ ํ๊ณ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค.
ํ๋์ ๋๋ผ์ด๋ธ์์ WinPE๋ก ๋ถํ ํ๊ณ ๋ฐฐํฌ๋ OS๋ ๋ด E ๋๋ผ์ด๋ธ์ ์์ต๋๋ค. "Dism /image:E: /Set-UILang:ru-ru" ๋ช ๋ น์ ์คํํฉ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ โDism /image:E: /Get-Intlโ์ ์คํํ์ฌ โ๊ธฐ๋ณธ ์์คํ UI ์ธ์ด: ru-RUโ๋ฅผ ํ์ธํฉ๋๋ค.
์์คํ ์ ๋ถํ ํ๊ณ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
์ ๊ฒ๋ค. ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ธ์ด์ ๋ํ ํค์ค์คํฌ ์ฑ๋ฅ์ ๋ช ํํ ์์กด์ฑ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฉํฐํค์ค์คํฌ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ๋ค๋ฅธ ์์ธ์ด ์์๊น์?
์คํ 6
์คํ์ ์์์ฑ์ ์ํด ์์คํ ์ ๋ค์ ์ฑ์๋๋ค. ๊ฐ์ฌ ๋ชจ๋์์ Russified ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
๊ทธ๋ํฝ ๋ชจ๋์์ "sysprep"์ ์คํํ๊ณ ์คํ 2์์์ ๋์ผํ ๋งค๊ฐ๋ณ์๋ก OS๋ฅผ ๋ด์ธํฉ๋๋ค. OS๊ฐ ์ฐ๋ฆฌ๋ฅผ ๋ง์ดํ๊ณ "์ ํํ ์ธ์ด๋ก ๊ณ์ํ์๊ฒ ์ต๋๊น?"๋ผ๋ ์ง๋ฌธ์ ๋ตํ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. โ โ์์ด(๋ฏธ๊ตญ)โ; ์ง์ญ โ ๋ฌ์์; ํค๋ณด๋ ๋ ์ด์์ โ ๋ฌ์์์ด. ๋ํ ๋ชจ๋ ๋งค๊ฐ ๋ณ์๋ ์คํ 2์ ๊ฐ์ด ์ ํ๋์์ต๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ธ์ด ์ค์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. โDism /online /Get-Intlโ ๋ช ๋ น์ ์คํํ๋ฉด โ๊ธฐ๋ณธ ์์คํ UI ์ธ์ด: en-USโ๊ฐ ํ์๋ฉ๋๋ค. "์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ถ๊ฐํ ํ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ์ด๋ํ๋ฉด ๋ฉํฐ ํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ์ฌ ํค์ค์คํฌ๋ฅผ ์ค๋จ์ํค๋ ค๊ณ ํฉ๋๋ค. ์์คํ ์ด ์ฒ์ ๋ถํ ๋ ๋ ์์ฑ๋ "Test" ์ฌ์ฉ์๋ก ์ด๋ํ์ฌ ์์คํ ์ด ๋ฐ๋ก "User" ๊ณ์ ์ผ๋ก ๋ถํ ๋์ง ์๋๋ก ์๋ ๋ก๊ทธ์ธ์ ํ์ฑํํฉ๋๋ค. "netplwiz"๋ฅผ ์คํํ๊ณ "Test" ์ฌ์ฉ์๋ฅผ ์ ํํ ํ "์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ๋น๋ฐ๋ฒํธ ํ์" ํ์ธ๋์ ์ ํ ์ทจ์ํ๊ณ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ฉํฉ๋๋ค.
ํ๋์ ๋๋ผ์ด๋ธ์์ WinPE๋ก ๋ถํ ํฉ๋๋ค. โDism /image:E: /Set-UILang:ru-ruโ ๋ช ๋ น์ ์คํํฉ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ โDism /image:E: /Get-Intlโ์ ์คํํ์ฌ โ๊ธฐ๋ณธ ์์คํ UI ์ธ์ด: ru-RUโ๋ฅผ ํ์ธํฉ๋๋ค.
์์คํ ์ผ๋ก ๋ถํ ํ๊ณ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ์๋ํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค. ์ ๊ฒ๋ค. ๊ทธ๊ฒ์ ๊นจ์ง ์ ์์ต๋๋ค. ์ด๋ฐ ์์ผ๋ก ์๋ํ๊ฒ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
์คํ 7
๊ฐ์ฌ ๋ชจ๋์์ Russified ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
"Sysprep.bat"๋ฅผ ์คํํ๊ณ ํฌ์ธํธ 2๋ฅผ ์ ํํฉ๋๋ค. ์์คํ ์ผ๋ก ๋ถํ ํ๊ณ "์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ถ๊ฐํ ๋ค์ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ์ด๋ํฉ๋๋ค. ํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
ํ๋์ ๋๋ผ์ด๋ธ์์ WinPE๋ก ๋ถํ ํฉ๋๋ค. โDism /image:E: /Set-UILang:en-usโ ๋ช ๋ น์ ์คํํฉ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ โDism /image:E: /Get-Intlโ์ ์คํํ์ฌ โ๊ธฐ๋ณธ ์์คํ UI ์ธ์ด: en-USโ๋ฅผ ํ์ธํฉ๋๋ค.
์์คํ ์ผ๋ก ๋ถํ ํ๊ณ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ ค๊ณ ํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ธ์ด ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ์์คํ ์ด ๊ฐ์ฌ ๋ชจ๋์ ์๊ฑฐ๋ ์์คํ ์ ๋ด์ธํ ํ ์ฒ์ ๋ถํ ํ ๋๋ง ๋ฉํฐํค์ค์คํฌ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด๋ ์์คํ ์ธ์ด๊ฐ ์์ด๋ก ์ ํ๋๋ ์๋ต ํ์ผ๋ก ์์คํ ์ ๋ด์ธํ ๋ค์ ์ธํฐํ์ด์ค๊ฐ ๋ฌ์์์ด๊ฐ ๋๋๋ก ์์คํ ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋ณ๋ก ์ข์ ํด๊ฒฐ์ฑ ์ ์๋๋๋ค. ์ธ์ดํฉ์ ์ค์นํ๊ฑฐ๋ ์ถ๊ฐ ์ธ์ดํฉ์ ์ค์นํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ์๋ ์๊ฒ ์ฃ ?
์คํ 8
๊ฐ์ฌ ๋ชจ๋์์๋ ์์คํ ์ด๋ฏธ์ง(์์ด)๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
์ธํฐ๋ท์ ์ฐ๊ฒฐํ๊ณ ์์คํ ๋งค๊ฐ๋ณ์์์ "์ธ์ด" ์น์ ์ผ๋ก ์ด๋ํ์ฌ "์ธ์ด ์ถ๊ฐ"๋ฅผ ์ ํํ๊ณ "๋ฌ์์์ด" ์ธ์ด๋ฅผ ์ ํํ ํ "๋ค์"์ ํด๋ฆญํ๊ณ ์ค์น ๋งค๊ฐ๋ณ์๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋๊ณ ์ค์น ํ "์ค์น"๋ฅผ ํด๋ฆญํฉ๋๋ค. ์ธ์ด ํฉ์ ์ด์ Russified์์ ์์คํ ์ ์ฌ๋ถํ ํฉ๋๋ค. ์ธํฐ๋ท์์ ์์คํ ์ฐ๊ฒฐ์ ๋๊ณ "Sysprep.bat"๋ฅผ ์คํํ ํ ํฌ์ธํธ 2๋ฅผ ์ ํํฉ๋๋ค.
์์คํ ์ ๋ก๋ํ ํ "์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ถ๊ฐํ ํ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ์ด๋ํ๋ฉด ๋ฉํฐ ํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
์คํ 9
์ค์นํ๊ธฐ ์ ์ ์คํ๋ผ์ธ ๋ชจ๋์์ ์์คํ ์ Russifyํด ๋ณด๊ฒ ์ต๋๋ค. ๋์์ ์ ํต ํ์งํ์ ๋ํ ๊ฐ๋จํ ๊ต์ก ํ๋ก๊ทธ๋จ๋ ์์ ์์ ์ ๋๋ค.
์ ๋ ๊นจ๋ํ ์๋ณธ ๋ฐฐํฌํ(X21-96381)์ด ํฌํจ๋ ํ๋์ ๋๋ผ์ด๋ธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋๋ผ์ด๋ธ "E"๊ฐ ๋ฉ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ๋ง์ดํธํ๊ธฐ ์ํด "c:MountInstall", "c:MountWinre", "c:MountBoot" ํด๋๋ฅผ ๋ง๋ญ๋๋ค. ์ ๋ ํ์งํ ํจํค์ง ์ธํธ(X21-87814)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ "c:Mount" ํด๋์ "Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab" ํจํค์ง๋ฅผ ๋ณต์ฌํฉ๋๋ค. ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์ฝ์์ ์์ํฉ๋๋ค. ์ถ๊ฐ ๋ช ๋ น์ ์ค๋ช ์์ด ๋ช ํํด์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ์งํ ๋ช ๋ น
cd c:mount
dism /Mount-Wim /WimFile:e:sourcesinstall.wim /index:1 /MountDir:Installcode
dism /Image:Install /Add-Package /PackagePath:Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cabcode
dism /Image:Installcode /Set-AllIntl:ru-ru
dism /Image:Install /Set-TimeZone:"Russian Standard Time"code
dism /Mount-Wim /WimFile:InstallWindowsSystem32RecoveryWinre.wim /index:1 /MountDir:Winrecode
dism /Image:Winre /Add-Package /PackagePath:lp.cabcode
dism /Image:Winrecode /Set-AllIntl:ru-ru
dism /Image:Winre /Set-TimeZone:"Russian Standard Time"code
dism /Unmount-Image /MountDir:Winre /Commitcode
dism /Image:Install /Gen-LangINI /distribution:E: /Set-AllIntl:ru-RUcode
dism /image:Install /Set-SetupUILang:RU-ru /distribution:E:code
dism /Unmount-Image /MountDir:Install /Commitcode
dism /mount-wim /wimfile:e:sourcesboot.wim /index:1 /mountdir:Bootcode
dism /Image:Boot /Add-Package /PackagePath:lp.cabcode
dism /Image:Bootcode /Set-AllIntl:ru-ru
copy e:sourceslang.ini Bootsourceslang.inicode
dism /Unmount-Image /MountDir:Boot /Commitcode
dism /mount-wim /wimfile:e:sourcesboot.wim /index:2 /mountdir:Bootcode
dism /Image:Boot /Add-Package /PackagePath:lp.cabcode
dism /Image:Boot /Add-Package /PackagePath:WinPE-Setup_ru-ru.cabcode
dism /Image:Bootcode /Set-AllIntl:ru-ru
copy e:sourceslang.ini Bootsourceslang.ini /ycode
dism /Unmount-Image /MountDir:Boot /Commit
ํ๋์ ๋๋ผ์ด๋ธ์์ ๋ถํ ํ๊ณ ๋ฌ์์์ด๋ฅผ ์ ํํ ๋ค์ ๋น ๋์คํฌ์ ์์คํ ์ ์ค์นํฉ๋๋ค. ์์คํ ์์ ์ง์ญ์ ์ ํํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด โCtrl+Shift+F3โ์ ๋๋ฅด์ธ์. "์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ถ๊ฐํ ํ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ์ด๋ํ๋ฉด ๋ฉํฐ ํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
ํ๋์ ๋๋ผ์ด๋ธ์์ WinPE๋ก ๋ถํ ํฉ๋๋ค. โDism /image:E: /Set-UILang:en-usโ ๋ช ๋ น์ ์คํํฉ๋๋ค.
์์คํ ์ผ๋ก ๋ถํ ํ๊ณ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ์๋ํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค.
ํจํค์ง๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ผ๋ ํจํค์ง๋ฅผ ์ถ๊ฐํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์คํ 10
์ด์ ๋จ๊ณ์์ ์ค๋นํ ํ๋์ ๋๋ผ์ด๋ธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ฐ๋ฆฌ๋ "Feat on Demand" ํจํค์ง(X21-87815)๋ฅผ ์ ํํฉ๋๋ค. ํจํค์ง๋ฅผ "c:Mount" ํด๋์ ๋ณต์ฌํฉ๋๋ค. ยซMicrosoft-Windows-LanguageFeatures-Basic-ru-ru-Package~31bf3856ad364e35~x86~~.cabยป, ยซMicrosoft-Windows-LanguageFeatures-OCR-ru-ru-Package~31bf3856ad364e35~x86~~.cabยป, ยซMicrosoft-Windows-LanguageFeatures-Handwriting-ru-ru-Package~31bf3856ad364e35~x86~ ~.cabยป, ยซMicrosoft-Windows-LanguageFeatures-TextToSpeech-ru-ru-Package~31bf3856ad364e35~x86~~.cabยป.
ะะตัะตะผ ะฟะฐะบะตั ยซFeat on Demand RDX Updtยป โ X21-99781. ะ ะฟะฐะฟะบั ยซc:Mountยป ะบะพะฟะธััั ะธะท ะฝะตะณะพ ะฟะฐะบะตัั: ยซMicrosoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cabยป, ยซ Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cabยป.
๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์ฝ์์ ์์ํ๊ณ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.
ํ
cd c:mount
dism /Mount-Wim /WimFile:e:sourcesinstall.wim /index:1 /MountDir:Install
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Basic-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-OCR-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Handwriting-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-TextToSpeech-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Unmount-Image /MountDir:Install /Commit
ํ๋์ ๋๋ผ์ด๋ธ์์ ๋ถํ ํ๊ณ ๋ฌ์์์ด๋ฅผ ์ ํํ ๋ค์ ๋น ๋์คํฌ์ ์์คํ ์ ์ค์นํฉ๋๋ค. ์์คํ ์์ ์ง์ญ์ ์ ํํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด โCtrl+Shift+F3โ์ ๋๋ฅด์ธ์. "์ปดํจํฐ ๊ด๋ฆฌ" ์ค๋ ์ธ์์ "์ฌ์ฉ์" ์ฌ์ฉ์๋ฅผ ์์ฑํ๊ณ ํ๋ก๋น์ ๋ ํจํค์ง๋ฅผ ์ถ๊ฐํ ๋ค์ "์ฌ์ฉ์" ๊ณ์ ์ ๋ก๊ทธ์ธํฉ๋๋ค. ์ค๋ซ๋์ ๊ฒ์์ ํ๋ฉด์ด ๋ํ๋์ ์์คํ ์ ํซ ๋ถํ ํ์ต๋๋ค.
์ค๋น ํจํค์ง๋ฅผ ์ญ์ ํ๊ณ "์ฌ์ฉ์"๋ก ๋ก๊ทธ์ธํ๊ณ ์์คํ ์ ์ฌ๋ถํ ํ๊ณ ์ค๋น ํจํค์ง๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
ํ๋์ ๋๋ผ์ด๋ธ์์ WinPE๋ก ๋ถํ ํฉ๋๋ค. โDism /image:E: /Set-UILang:en-usโ ๋ช ๋ น์ ์คํํฉ๋๋ค.
์์คํ ์ผ๋ก ๋ถํ ํ๊ณ "์ฌ์ฉ์" ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ์๋ํ๋ฉด ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
ํ๋ฒํ ์์ ๋ค. ๊ทธ๋ค์ ํญ์ ์ฐํํฉ๋๋ค!
๋ค์ํ ํ์งํ ํฉ ์ค์น ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ์ฆ, ๋ด์ธ ํ ์ฒซ ๋ฒ์งธ ๋ถํ ์ "en-us" ์ธ์ด๋ฅผ ์ค์นํด์ผ ํ๊ณ , ์ฒซ ๋ฒ์งธ ๋ถํ ํ ์ธ์ด ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
๊ฐ์ฌ ๋ชจ๋์์ Russified ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
"Unattend.xml" ํ์ผ์์ ๋งค๊ฐ๋ณ์์ "en-US"๋ฅผ ์ ๋ ฅํ๊ณ "Sysprep.bat"๋ฅผ ์คํํ ํ ํฌ์ธํธ 2๋ฅผ ์ ํํ๊ณ ์ป์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค. ํ์ ํ๋ฉด์ ์์ด๋ก ๋์ด ์์ผ๋ฉฐ ๋ฉํฐ ํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค. ์ด๋ ์ธ์ฌ๋ง ์ธ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด "Unattend.xml"์ ๋ช ๋ น์ ์ถ๊ฐํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํ์ฌ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํ๋ฉด์ ๋ณต์ฌํ๋๋ก ์ง์ ํ๋ ๊ตฌ์ฑ ํ์ผ์ ๋ํ๋ด๋ "control intl.cpl,, /f:" ๋ช ๋ น์ ์คํํด์ผ ํฉ๋๋ค. ๊ตฌ์ฑ ํ์ผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<gs:UserList>
<gs:User UserID="Current" CopySettingsToSystemAcct="true"/>
</gs:UserList>
</gs:GlobalizationServices>
์๋ํ๋ฉด ํ์ฌ ์ฌ์ฉ์์ ์ค์ ์ ๋ณต์ฌํ ๋ค์ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ ํ์ ๋ช ๋ น์ ์คํํด์ผ ํฉ๋๋ค. ์ฆ, ํ์ํฉ๋๋ค. ์์ "๊ทธ๋ฌ๋"๊ฐ ํ๋ ์๋๋ฐ, ๊ด๋ฆฌ์ ๊ถํ์ด ์๋ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ ํ์ ์คํ์ด ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ช ๋ น์ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๋ ๋ฐ ํ์ํ ์ถ๊ฐ ํ์ผ์ ๋ง๋ค๊ณ ์ถ์ง ์์ต๋๋ค. ๋จ์ผ ํ์ผ("Unattend.xml")์ ์ ์ฒด ์๋ฃจ์ ์ ๊ตฌํํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ๋ ๋ช ๋ น์ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. "cmd" ํ๊ฒฝ์์ "echo" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ ์์ ์ด์ง๋ง ๊ณก์ ๋ถํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊บพ์ ๊ดํธ๋ฅผ ์ด์ค์ผ์ดํํด์ผ ํฉ๋๋ค. ์ ๊ฒ๋ค. ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ป์ต๋๋ค.
echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>Config.xml
ํ์ง๋ง ์ด ๋ช ๋ น์ ํน์ ๋ฌธ์ ์ฌ์ฉ์ ๋ํ ๊ณ ์ ํ ์๊ตฌ ์ฌํญ์ด ์๋ XML์ ๋ฐฐ์นํด์ผ ํฉ๋๋ค.
ํน์๋ฌธ์
๋์ฒด ๊ฐ์น
>
>
<
<
&
&
'
'
"
"
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ๊ธฐ ์ํด "FirstLogonCommands"์ ๋ํด ๋ค์ ๋ช ๋ น์ ์ป์์ต๋๋ค.
cmd.exe /c echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>"%TMP%Config.xml"
๋ค์์ผ๋ก ๊ตฌ์ฑ ํ์ผ์ ์ฌ์ฉํ์ฌ ๋ช ๋ น์ ์คํํฉ๋๋ค.
control intl.cpl,,/f:"%TMP%Config.xml"
๊ทธ๋ฐ ๋ค์, ์ด์ ์ ์์ฑ๋ ํ์ผ์ ์ญ์ ํ๊ณ ์์คํ ์ ์ฌ๋ถํ ํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ๋ถํ ํ์ ์ ์ฉ๋ฉ๋๋ค.
cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00
๊ฒฐ๊ณผ์ ์ผ๋ก sysprep์ ๋ํ ๋ค์ ์๋ต ํ์ผ์ด ์์ฑ๋์์ต๋๋ค.
๋ฌด์ธ.xml
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f</Path>
<Order>1</Order>
<Description>Dont show key page</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f</Path>
<Order>2</Order>
<Description>Dont make account</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>cmd.exe /c rd %systemdrive%Sysprep /s /q</Path>
<Order>3</Order>
<Description>Del Folder</Description>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoLogon>
<Enabled>true</Enabled>
<Username>Admin</Username>
</AutoLogon>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-US; ru-RU</InputLocale>
<SystemLocale>ru-RU</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback></UILanguageFallback>
<UserLocale>ru-RU</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<CommandLine>cmd.exe /c echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>"%TMP%Config.xml"</CommandLine>
<Description>CreateConfig</Description>
<Order>1</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>control intl.cpl,,/f:"%TMP%Config.xml"</CommandLine>
<Description>UseConfig</Description>
<Order>2</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00</CommandLine>
<Description>DelConfig</Description>
<Order>3</Order>
</SynchronousCommand>
</FirstLogonCommands>
</component>
</settings>
์ ๊ฒ ํด๋ณด์...
๊ฐ์ฌ ๋ชจ๋์์ Russified ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
Unattend.xml ํ์ผ์ ์ ํ์ผ๋ก ๋ณ๊ฒฝํ๊ณ "Sysprep.bat"๋ฅผ ์คํํ ํ ํฌ์ธํธ 2๋ฅผ ์ ํํ๊ณ ์ป์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค. ์ฒ์ ๋ถํ ํ๋ฉด ์์ ํ๋ฉด์ด ์์ด๋ก ํ์๋๊ณ ์์คํ ์ด ์ฌ๋ถํ ๋ฉ๋๋ค. ์์ ํ๋ฉด์ ๋ฌ์์์ด๋ก ๋์ด ์์ผ๋ฉฐ ๋ฉํฐํค์ค์คํฌ๊ฐ ์๋ํฉ๋๋ค.
Windows 10 IoT Enterprise ์ค์ ๋ฐ ๋ผ์ด์ ์ค์ ๋ํ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ๋ค์ ์ฐ๋ฝ์ฒ๋ก ๋ฌธ์ํ์ธ์.
๋ค์์์ ๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ธฐ์ฌ ์์ฑ์: Vladimir Borisenkov, Quarta Technologies์ ๊ธฐ์ ์ ๋ฌธ๊ฐ.
์ถ์ฒ : habr.com