Microsoft MVP성태의 닷넷 이야기
Windows: 140. unattended.xml/autounattend.xml 파일을 마련하는 방법 [링크 복사], [링크+제목 복사],
조회: 23470
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

unattended.xml/autounattend.xml 파일을 마련하는 방법

우선, 간단하게 다음의 사이트를 이용하는 방법이 있습니다.

Windows 10 Answer File Generator for x86 and x64 processors
; http://windowsafg.no-ip.org/win10x86_x64.html

Windows 8.1 Answer File Generator for x86 and x64 processors
; http://windowsafg.no-ip.org/win8.1x86_x64.html

URL에서 윈도우 버전 부분만 적절하게 바꿔주면 여러분이 원하는 윈도우 운영체제의 autounattend.xml 파일을 구성할 수 있습니다. 이게 가장 쉬운 방법입니다. ^^




다른 방법이 또 하나 있는데요. 이것은 마이크로소프트가 제공하는 ADK 도구를 이용하는 것입니다. ADK 도구는 윈도우 버전 별로 제공되는데, 예를 들어 "Windows 8.1 with Update" ISO 설치 파일이 있다면 다음의 ADK 도구를 다운로드해야 합니다.

Windows Assessment and Deployment Kit (Windows ADK) for Windows 8.1 Update 
; https://www.microsoft.com/en-US/download/details.aspx?id=39982

실제로 한번 해볼까요? ^^

"Unattended.xml" 응답 파일을 생성하려면, 우선 "윈도우 설치 ISO 이미지"에 포함된 install.wim 파일이 필요합니다. 이를 위해 .iso 파일을 마운팅하고 /sources/install.wim 파일을 로컬 폴더로 복사합니다. (이 글에서는 d:\adk 폴더로 복사합니다.)

이제 ADK 도구를 설치한 경우 다음의 폴더에 위치한 "Windows System Image Manager"를 관리자 권한으로 실행시킵니다.

C:\Program Files\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\WSIM\imgmgr.exe

실행 후 "File" / "Select Windows Image..." 메뉴를 선택해 d:\adk\install.wim 파일을 선택합니다. 제 경우에 해당 ISO 이미지에 2개의 버전(Pro, Home)이 있어 어떤 것을 선택할지 묻는 창이 떴습니다. 저는 "Windows 8.1 Pro"를 선택했습니다. 그럼 다시 다음의 창이 뜨고,

win81_unattended_1.png

"Yes"를 선택해 주면 됩니다.

그다음, "File" / "New Answer File..."을 선택해 "unattended.xml" 파일을 하나 생성하고 세세한 설정을 하면 됩니다. 아래는 그 한 예를 보여줍니다.

// 참고: https://jacobsalmela.com/2016/03/30/how-to-image-a-computer-with-windows-10-using-dism/

- Windows 8.1 Pro / x86_Microsoft_Windows_Deployment_[...]_neutral
    - "Add Setting to Pass 4 specialize"

        * unattended / x86_Microsoft_Windows_Deployment_[...]_neutral / ExtendOSPartition
            - Settings / Extend = true

- Windows 8.1 Pro / x86_Microsoft-Windows-Shell-Setup_[...]_neutral
    - "Add Setting to Pass 4 specialize"

        * unattended / x86_Microsoft-Windows-Shell-Setup_[...]_neutral
            - Settings / "Computer Name" = %COMPUTERNAME%
            - Settings / ProductKey = ...제품 키...
            - Settings / ProductKey = Korea Standard Time

    - "Add Setting to Pass 7 oobeSystem…"

- Windows 8.1 Pro / x86_Microsoft-Windows-Shell-Setup_[...]_neutral / OOBE

    - "Add Setting to Pass 7 oobeSystem…"

        * unattended / x86_Microsoft-Windows-Shell-Setup_[...]_neutral / OOBE
            - Settings / HideEULAPage = true
            - Settings / HideLocalAccountScreen = true
            - Settings / HideOEMRegistrationScreen = true
            - Settings / HideOnlineAccountScreens = true
            - Settings / HideWirelessSetupInOOBE = true
            - Settings / NetworkLocation = Home
            - Settings / ProtectYourPC = 1
            - Settings / SkipMachineOOBE = true
            - Settings / SkipUserOOBE = true

        * unattended / x86_Microsoft-Windows-Shell-Setup_[...]_neutral / UserAccounts / LocalAccounts
            - "Insert New Local Account"

        * unattended / x86_Microsoft-Windows-Shell-Setup_[...]_neutral / UserAccounts / LocalAccounts / LocalAccount
            - Settings / Description = Local admin account
            - Settings / DisplayName = tester
            - Settings / Group = Administrators
            - Settings / Name = tester

        * unattended / x86_Microsoft-Windows-Shell-Setup_[...]_neutral / UserAccounts / LocalAccounts / LocalAccount / Password
            - Settings / Value = tester_pass

- Windows 8.1 Pro / x86_Microsoft-Windows-International-Core_[...]_neutral
    - Add Setting to Pass 7 oobeSystem…

        * unattended / x86_Microsoft-Windows-International-Core_[...]_neutral
            - Settings / "InputLocale" = en-US
            - Settings / "SystemLocale" = en-US
            - Settings / "UILanguage" = en-US
            - Settings / "UserLocale" = en-US

위의 설정으로 저장하면 대충 다음과 같은 식의 unattended.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">
            <ExtendOSPartition>
                <Extend>true</Extend>
            </ExtendOSPartition>
        </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">
            <ComputerName>%COMPUTERNAME%</ComputerName>
            <ProductKey>...[생략]...</ProductKey>
            <TimeZone>Korea Standard Time</TimeZone>
        </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</InputLocale>
            <SystemLocale>en-US</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UserLocale>en-US</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>
                <NetworkLocation>Home</NetworkLocation>
                <ProtectYourPC>1</ProtectYourPC>
                <SkipMachineOOBE>true</SkipMachineOOBE>
                <SkipUserOOBE>true</SkipUserOOBE>
            </OOBE>
            <UserAccounts>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>dABlAHMAdABlAHIAXwBwAGEAcwBzAFAAYQBzAHMAdwBvAHIAZAA=</Value>
                            <PlainText>false</PlainText>
                        </Password>
                        <Description>Local admin account</Description>
                        <DisplayName>tester</DisplayName>
                        <Name>tester</Name>
                        <Group>Administrators</Group>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:d:/adk/install.wim#Windows 8.1 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

세밀하게 제어가 가능하다는 것을 제외하고는 "Windows Answer File Generator" 사이트를 이용하는 것이 더 간편하고 쉽습니다. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 5/2/2017]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 136  137  138  139  140  141  142  143  [144]  145  146  147  148  149  150  ...
NoWriterDateCnt.TitleFile(s)
1486정성태8/27/201330289.NET Framework: 381. SqlCommand를 이용해 Microsoft SQL 서버의 쿼리 실행 계획을 구하는 방법파일 다운로드1
1485정성태8/26/201333771.NET Framework: 380. 프로세스 스스로 풀 덤프 남기는 방법 [3]파일 다운로드1
1484정성태8/23/201328119제니퍼 .NET: 24. 제니퍼 닷넷 적용 사례 (4) - GZIP 인코딩으로 인한 성능 하락
1483정성태8/23/201328186.NET Framework: 379. System.IO.MemoryStream, ArraySegment&lt;T&gt; 의 효율적인 사용법 [1]
1482정성태8/23/201321641.NET Framework: 378. Java / C# - 정수의 부호 유무에 따른 16진수 문자열 변환
1481정성태8/22/201322596오류 유형: 184. PaaS 유형(Cloud Services)의 Azure VM에 연결할 때 계정 만료 에러가 발생하는 경우
1480정성태8/22/201338845개발 환경 구성: 194. 윈도우 서버의 80 포트에 대한 port forwarding 설정 방법파일 다운로드1
1479정성태8/14/201326427오류 유형: 183. IIS - 바인딩 추가 시 Object reference not set to an instance of an object 오류 [5]
1478정성태8/14/201329717오류 유형: 182. 윈도우 정품 활성화 오류 - 0x80070426
1477정성태8/14/201328645VC++: 71. codeplex의 Project Austin - 실감나게 책장 넘기는 표현
1476정성태8/13/201336997디버깅 기술: 55. Windbg - 윈도우 핸들 테이블 (2)
1475정성태8/12/201335524.NET Framework: 377. 프로세스가 종료된 후에도 소켓이 살아있다면?파일 다운로드1
1474정성태8/10/201332366오류 유형: 181. 윈도우 8 - WmiPrvSE.exe 프로세스가 CPU 소비하는 현상
1473정성태8/8/201329114VC++: 70. Win32 socket이 Thread-safe할까? [1]파일 다운로드1
1472정성태8/7/201327536.NET Framework: 376. .NET 2.0의 유니코드 관련 문자열 비교 오류
1471정성태8/7/201331678개발 환경 구성: 193. .aspx 확장자 대신 .html 확장자를 사용하는 방법
1470정성태8/6/201328471오류 유형: 180. DISM.exe 0xc1510111 실행 오류
1469정성태8/6/201325353.NET Framework: 375. System.Net.Sockets.Socket이 Thread-safe할까? [2]파일 다운로드1
1468정성태8/6/201323352오류 유형: 179. IIS - No connection could be made because the target machine actively refused it 127.0.0.1:80
1467정성태8/5/201326803Java: 16. IE에 로드된 Java Applet의 다운로드 위치를 확인하는 방법
1466정성태7/27/201332469.NET Framework: 374. C#과 비교한 C++ STL vector 성능 [7]파일 다운로드1
1465정성태7/18/201335805기타: 33. C:\Windows\Installer 폴더의 용량 줄이기 [3]
1464정성태7/15/201323943오류 유형: 178. Visual Studio 2012 Express - ImportCardinalityMismatchException
1463정성태7/15/201324710오류 유형: 177. [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
1462정성태7/5/201328109VC++: 69. geek스러운 C/C++ 퀴즈 문제 [2]
1461정성태6/27/201344722.NET Framework: 373. C# 문자열의 인코딩이란?
... 136  137  138  139  140  141  142  143  [144]  145  146  147  148  149  150  ...