Windows 7을 대량 배포하려면 시스템 준비 도구(SYSPREP)를 활용한 이미징 작업이 필수적입니다. 이 가이드에서는 Windows 7에 SYSPREP를 적용하고, 도메인 가입과 함께 배포 가능한 이미지를 만드는 전 과정을 단계별로 안내합니다.
시작 전 준비물
작업을 진행하려면 아래 파일들이 필요합니다. 글을 따라가다 보면 각 파일의 용도가 더욱 명확해질 것입니다.
Windows 자동 설치 키트(WAIK)
WAIK(Windows Automated Installation Kit)은 이미징에 사용할 컴퓨터가 아닌 별도의 PC에 설치해야 합니다. 이 도구로 SYSPREP용 unattend.xml 응답 파일을 생성하고, Windows 7 설치 디스크에 포함된 install.wim 파일의 카탈로그를 만들 수 있습니다.
1단계: Windows 7 설치 및 기본 프로필 구성
먼저 한 대의 컴퓨터에 Windows 7을 새로 설치합니다. 이때 도메인 계정으로 로그인하는데, 해당 계정은 반드시 로컬 관리자 권한이 있어야 하며 Administrators 그룹에 속해 있어야 합니다. 또한 스크립트나 그룹 정책이 강제 적용되지 않은 계정이어야 합니다.
이 가이드에서는 DFS 공유에서 소프트웨어를 설치하기 위해 imageprep이라는 이름의 도메인 계정을 사용했습니다. 이렇게 하면 나중에 프로그램 복구가 필요할 때 설치 파일을 찾아 손쉽게 처리할 수 있습니다. 물론 로컬 계정을 사용해도 무방합니다.
설치가 끝나면 필요한 모든 프로그램을 설치하고, 각종 설정, 시작 메뉴, 로컬 사용자 계정, 사용자 프로필을 구성합니다. 이 프로필이 나중에 이미지 내 컴퓨터의 기본 프로필(Default Profile)이 됩니다.
2단계: Windows SIM으로 unattend.xml 응답 파일 만들기
준비가 완료되면 Windows 시스템 이미지 관리자(Windows SIM)를 사용해 unattend.xml 응답 파일을 생성해야 합니다. 다른 컴퓨터에 WAIK를 설치한 후, 시작 메뉴에서 Windows SIM을 실행하세요.
- 이미지 제작용 컴퓨터에 Windows 7을 설치할 때 사용한 미디어(DVD 또는 USB)를 삽입합니다.
- 시작 메뉴에서 Windows SIM을 실행한 뒤, Tools → Create Catalog 메뉴를 선택합니다.
- 미디어에 있는 "install.wim" 파일 위치를 묻는 창이 나타납니다.
- W7 미디어의 sources 폴더에서 해당 파일을 찾아 선택합니다. 카탈로그 생성이 완료되면 응답 파일 구성을 시작할 수 있습니다.
- 참고용 샘플 unattend.xml 파일을 열어 어떤 설정들이 구성되어 있는지 살펴보세요.
3단계: 컴퓨터 이름 입력 문제와 mysysprep2 해결책
여기서 중요한 과제가 하나 있습니다. SYSPREP가 도메인 가입 전에 컴퓨터 이름을 직접 입력받도록 해야 하는데, 일반 unattend.xml과 sysprep.exe 조합에는 문제가 있습니다. 응답 파일에 컴퓨터 이름이 지정되어 있지 않으면, 임의의(random) 이름으로 컴퓨터가 도메인에 추가되어 버립니다.
응답 파일에서 <ComputerName></ComputerName> 항목을 삭제하면 응답 파일 처리 시점에 이름을 입력받는 창이 뜨지만, 이미 늦은 상태입니다. 컴퓨터는 이미 임의의 이름으로 도메인에 가입된 뒤이며, 이후에 이름을 바꾸면 신뢰 관계 오류(trust relationship error) 같은 문제가 발생하기 쉽습니다.
이 문제의 해결책은 Windows 기본 sysprep.exe 대신 수정판인 mysysprep2(mysysprep.exe)를 사용하는 것입니다. mysysprep2를 사용하면 unattend.xml 처리가 끝난 후 컴퓨터 이름을 지정하고 도메인에 가입시킬 수 있습니다. mysysprep은 반드시 C:\Windows\System32\Sysprep 폴더에 sysprep.exe와 함께 넣어야 하며, 기존 sysprep.exe 파일은 삭제하거나 이름을 바꾸면 안 됩니다.
unattend.xml 파일의 주요 항목 살펴보기
샘플 unattend.xml 파일에는 다음과 같은 항목이 있습니다.
<ComputerName>%Please input a computer name(0,15)%</ComputerName>
<JoinDomain>%Please select a domain to join{your.domain.com}%</JoinDomain>
이 두 항목은 mysysprep2 사용 시에만 유효한 특수 항목입니다. Windows SIM에서 오류가 표시될 수 있지만 무시해도 됩니다. (0,15)는 컴퓨터 이름이 15자를 초과할 경우 잘라내는 옵션입니다.
<CopyProfile>true</CopyProfile>
이 설정은 구성해 둔 프로필을 기본 프로필로 복사하도록 sysprep에 지시합니다.
컴퓨터 개체가 생성될 OU(조직 단위)를 지정하지 않으면 컴퓨터가 도메인 루트에 추가되므로, 반드시 OU를 명시하는 것이 좋습니다.
<MachineObjectOU>OU=Test,DC=Your,DC=Domain,DC=Here</MachineObjectOU>
4단계: TempUser 계정과 SetupComplete.cmd 활용
unattend.xml을 사용하더라도 sysprep 과정에서 로컬 사용자 계정 생성 화면은 여전히 나타납니다. 원래 Windows 7을 설치 디스크로 설치할 때도 로컬 계정 생성을 요구받는데, 이 화면을 숨기려면 응답 파일에 임시 사용자를 정의해야 합니다. 이 가이드의 응답 파일에서는 TempUser라는 계정을 만들며, 이 계정은 컴퓨터가 처음 부팅되어 Windows 로그온 화면에 도달할 때 삭제됩니다.
여기서 유용한 트릭 하나를 소개합니다. C:\Windows\Setup 폴더로 이동해 scripts라는 새 폴더를 만들고, 그 안에 SetupComplete.cmd 파일을 생성하세요. 이 파일에 넣은 명령은 Windows 로그온 화면이 나타나기 전에 실행되며, 바로 여기서 TempUser를 삭제하게 됩니다.
SetupComplete.cmd에 다음 명령들을 추가합니다.
TempUser 삭제:
net user TempUser /delete
관리자 계정 활성화:
net user Administrator /active:yes
Sysprep 실행 시 기본 Administrator 계정이 비활성화되기 때문에 이 작업이 필요합니다.
unattend.xml 파일 삭제:
del C:\Windows\System32\Sysprep\unattend.xml
암호가 암호화되어 있긴 하지만, 보안을 더 확실히 하기 위해 권장되는 절차입니다.
5단계: sysprep 실행 및 이미지 캡처
환경에 맞게 응답 파일을 사용자 지정한 후, 완성된 unattend.xml을 C:\Windows\System32\Sysprep 폴더로 복사합니다. 이제 sysprep을 실행할 준비가 되었습니다.
구성된 프로필 상태에서 명령 프롬프트를 열고 다음 명령을 실행해 sysprep 프로세스를 시작합니다.
mysysprep.exe /generalize /oobe /shutdown /unattend:unattend.xml
sysprep이 완료되면 컴퓨터가 자동으로 종료됩니다.
이제 하드 드라이브의 이미지를 캡처할 차례입니다. 캡처 방식은 선택에 따라 다르지만, 드라이브 전체를 한 번에 담을 수 있는 Ghost를 사용하는 것을 추천합니다. ImageX는 디스크 전체 이미지를 만들 수 없고 파티션마다 개별적으로 캡처·적용해야 해서 번거롭습니다. 반면 Ghost는 통째로 이미지를 만들고 복원할 수 있습니다.
이미지를 대상 컴퓨터에 적용하면 재부팅 후 컴퓨터 이름 입력 창이 뜨고, 다음으로 도메인 이름을 묻는데, 이 값은 응답 파일에 지정된 대로 자동으로 표시됩니다.
<JoinDomain>%Please select a domain to join{your.domain.com}%</JoinDomain>
여러 도메인을 등록하면 드롭다운 메뉴로 선택할 수 있습니다.
<JoinDomain>%Please select a domain to join{domain1;domain2;domain3}%</JoinDomain>
설치 과정이 모두 끝나고 PC가 Windows 로그온 화면까지 부팅되면, 문제없이 진행되었다면 도메인 계정으로 바로 로그인할 수 있습니다.
추가 팁 및 참고 사항
sysprep 실행 후에도 하드웨어 장치 정보 유지하기
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
true로 설정하면 PnP 장치가 대상 컴퓨터에 설치된 상태로 유지되어, specialize 구성 단계에서 장치를 다시 설치할 필요가 없습니다. 이 설정은 generalize 단계의 x86_Microsoft-Windows-PnpSysprep 구성 요소에 추가해야 합니다.
사용자 지정 전원 관리 옵션 만들기
사용자 지정 전원 계획(Power Plan)을 만든 뒤 unattend.xml에 지정할 수 있습니다. 제어판 → 전원 옵션에서 전원 계획을 생성하고 이름을 지정한 후, 명령 프롬프트에서 PowerCfg -List를 실행해 해당 계획의 GUID를 확인하세요. 이 GUID를 unattend.xml에 추가하면 기본 전원 계획으로 적용됩니다. 이 설정은 specialize 단계의 x86_Microsoft-Windows-powercpl__neutral 구성 요소에 추가합니다.
작업 센터 '백업 설정' 알림 비활성화
그룹 정책으로 작업 센터 알림을 끄거나, 구성된 프로필에서 아래 레지스트리를 실행할 수 있습니다.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsBackup] "DisableMonitoring"=dword:00000001
작업 표시줄 고정 해제 및 사용자 지정 바로 가기 추가
ConfigTaskbar.vbs 스크립트를 내려받아 C:\Windows\System32\Sysprep\custom 폴더에 붙여넣습니다. 그런 다음 배치 파일로 이 스크립트를 호출하되, 배치 파일은 구성된 프로필(기본 프로필)의 시작 프로그램 폴더에 넣습니다. 배치 파일은 첫 부팅 시 한 번만 실행되고 난 뒤 자동으로 삭제됩니다.
네트워크 위치 확인 창 문제
unattend.xml에 네트워크 위치를 지정했는데도 처음 로그인할 때 확인 창이 뜬다면, 마이크로소프트 핫픽스(KB2028749)를 설치하면 해결됩니다.
Internet Explorer 설정 초기화 방지
IE 설정을 unattend.xml의 specialize 단계에 추가하세요:
x86_Microsoft-Windows-IE-InternetExplorer__neutral_31bf3856ad364e35_nonSxS