프로비저닝 패키지(PPKG)를 활용한 조직내 Windows 10 설정 및 배포, USMT내 Scanstate를 활용한 PPKG 생성 및 배포 방안
지난 프로비저닝 패키지(PPKG)를 활용한 조직내 Windows 10 설정 및 배포, 더 이상 포맷만이 답은 아닙니다. 포스팅에서 Windows 10 설치 및 배포 이미지에 대한 기본 철학에 대해서 살펴보았습니다.
결국 PPKG(Provisioning Package)에 대한 생성 및 구성이 Windows 10 배포에 대한 유연성을 도와주는 모양이었는데, 이는 Windows ICD (이미징 및 구성 디자이너)나 USMT(User State Migration Tool)내 Scanstate를 통해서 생성할 수 있다고 이야기드렸습니다. (이 둘은 모두 Windows 10 ADK에 포함되어 있습니다.)
이번 포스팅에서는 Scanstate를 이용하여, 레퍼런스 컴퓨터(비즈니스 조직내에서 대표적으로 사용되는 응용 프로그램에 대한 설치 및 전체 구성, 나아가 운영 체제 설정이 완료된 컴퓨터를 의미합니다.)에서 설치된 응용 프로그램, 다시 말해, Windows 10용 앱이나, 기존 우리가 응용 프로그램이 부르는 데스크톱 앱을 PPKG 형태로 만들어서, 사용하는 방안을 살펴보겠습니다.
일반적으로 비즈니스 조직에서는 Windows를 설치/배포하기 위해, 여러 이미징 프로그램(대표적으로 Ghost도 여기에 해당됩니다.)를 사용하는데요. 이를 위해서는 앞서 언급드린 레퍼런스 컴퓨터를 먼저 구성하고 이를 캡쳐(Capture)하는 형태로, 하나의 파일로 묶게 됩니다. Windows에서는 Windows Vista 이후, WIM(Windows Imaging Format) 형태로 설치 이미지를 제공하는데, 해당 WIM 파일은 단순 섹터 기반 이미징 형태인 Ghost와 달리, 파일 기반 이미징 형태를 지원합니다. (Windows 이미징 포맷에 대한 이야기는 지난 4월 개최된 TechNet 커뮤니티 세미나내 Imaging 101을 참고하시면 좋습니다. 관련 세션 링크)
WIM 기반의 파일 기반 이미징은 추가적인 파일을 집어 넣거나, 업데이트에 대한 배포/제거, 그리고 드라이버에 대한 처리를 해주는 것은 매우 용이합니다. PowerShell이나 파일 탐색기를 이용하여 마치 실제 디스크처럼 탑재(Mount)하여, 구성하면 되죠. 그렇지만 응용 프로그램에 대한 설치를 기본 제공하고자 하는 경우에는, 다시 레퍼런스 컴퓨터를 만들고, 응용 프로그램을 설치한 후, 이를 캡쳐하여 WIM 파일 형태로 만들거나, 설치와 관련된 스크립트를 만들어, 무인 설치 응답 파일(Unattend)에 넣어줘야 하는 추가 작업이 생깁니다.
PPKG 구성은 이러한 번거러움을 줄여줄 수 있는 아주 좋은 해답을 제시합니다. 일반적으로 제공받으시는 Windows 10 설치 미디어를 그대로 사용하면서, Windows 10에 추가적으로 구성된 Windows 자체 구성 요소, 나아가 설치된 응용 프로그램들에 대한 파일 및 구성을 하나의 파일로 만들어 주고, 이를 설치 미디어에 포함시켜, 해당 미디어를 사용하여 설치시 구성이 일괄 처리되게 만들어주는 것이죠. 설치된 응용 프로그램에 대한 PPKG를 만드는 것은 Windows ICD보단 USMT내 Scanstate가 더 편리합니다.
물론, Scanstate를 이용하여 만들어진 PPKG가 다 장점만 있는 것은 아닙니다. 일반 PPKG는 설치된 Windows내에 추가 탑재되어, 환경을 구성해주지만, Scanstate로 만들어진 PPKG는 사후 추가가 불가능하고, Windows 설치시에만 활용할 수 있습니다. (물론 설치에서도 지원하니, 리셋 및 복구 기술에서도 적용할 수 있습니다.)
Scanstate로 만들어진 PPKG를 사후, 탑재하려고 시도할 경우에는 탑재시 에러가 발생함을 유의하셔야 합니다.
자, 그럼 이제 Scanstate를 통해 PPKG를 만드는 방법을 살펴보겠습니다.
Windows 10 ADK를 레퍼런스 컴퓨터에 일일히 설치하여 사용하기가 불편하기에 USMT만을 담은 USB 드라이브를 사용하면 편리합니다. USB 드라이브내 폴더를 하나 생성하고, C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\User State Migration Tool\amd64 폴더(64비트, 32비트는 x86 폴더)의 모든 파일을 복사합니다. 해당 폴더 이외, Windows 10 설치 공통 파일이 필요하므로, C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Setup\amd64\Sources 폴더도 동일한 폴더로 복사합니다. 이렇게 구성된 폴더는 대략 130MB 정도가 됩니다.
이 후, 응용 프로그램을 설치할 레퍼런스 컴퓨터를 준비합니다. Windows 기본 설치 미디어를 이용하여, 설치를 진행하고, 설치 후 환경 구성(OOBE) 단계에서, 계정을 생성하지 않고, Ctrl+Shift+F3을 눌러, 감사(Audit) 모드로 들어갑니다.
감사 모드로 들어가게 되면, 기본 Administrator로 환경이 구성되기에, 특정 사용자 환경에서만 동작하는 형태로 만들어지지 않게 됩니다. Scanstate를 사용하기 위한 필수 조건이며, KOALRA와 같은 형태로 구성된 계정으로 로그온하셔서 Scanstate를 하시게 되면, PPKG가 탑재되지 않을 수도 있습니다. 감사 모드의 Windows 10은 앱 형태를 기본 제공하고 있지 않기에, 앱을 실행할 경우, 에러가 발생할 수 있습니다. 이는 Scanstate를 진행하는데는 아무런 영향을 주지 않게 됩니다.
감사 모드의 Windows 10에서 필요한 응용 프로그램들을 모두 설치합니다. 꼬알라가 테스트한 환경에서는 Adobe Acrobat DC와 Office 365 패키지(Office 2013)을 설치하였습니다. Office 365 패키지의 경우에는 조금 추가 절차가 필요한데, 이는 Office 365 배포 TechNet 사이트를 참고하시면 됩니다. (일반 Office 2013은 그냥 설치하시면 됩니다.) Scanstate는 Windows 10내 모든 폴더에 구성된 환경을 수집하는 것이 아니라, 정상적으로 설치된 응용 프로그램의 폴더와 \Windows, \Program Files, \Program Files (x86), \ProgramData, 그리고 \Users 폴더내 파일들을 수집합니다.
설치가 완료된 후, USMT 관련 파일을 복사해놓은 USB 드라이브를 레퍼런스 컴퓨터에 탑재합니다. 이후, 명령 프롬프트에서 scanstate /apps /ppkg 폴더/파일명을 입력합니다.
약간의 시간이 흐르고, 응용 프로그램이 소모한 공간의 전체 크기 정도의 PPKG 파일이 생성됩니다.
기본 옵션으로 Scanstate를 동작시켰기에, 설치된 모든 프로그램과 Windows의 .NET Framework와 같은 구성 요소 정보가 수집되고, 파일화되었습니다. 만약 PPKG에서 처리하고자 하는 부분을 조절하시려면, 별도의 XML 파일을 만들어서, 이를 수정해야 합니다. Scanstate의 처리 범위를 지정하는 XML 파일은 /genconfig:파일 이름.xml 옵션으로 생성할 수 있습니다. Microsoft에서는 많이 사용하는 응용 프로그램에 대한 정보를 담고 있는 파일을 USMT내 환경 확인 XML 파일로 제공합니다. 이 파일이 USMT내 migapp.xml로 있습니다. 이를 이용하여, 현재 컴퓨터에 설치된 응용 프로그램과 Windows 구성 요소에 대한 확인을 한 후, 포함 여부를 정할 수 있는 XML 파일로 생성시켜 줍니다. 이를 위해 scanstate /i: USMT 폴더\migapp.xml /genconfig: config 파일 이름.xml을 입력합니다.
생성된 config-app.xml 파일을 메모장으로 열면, 아래와 같습니다.
확인된 응용 프로그램 및 Windows 구성 요소에 대한 목록이 나오고, 이를 PPKG에 포함할지를 결정할 수 있는 migrate=”yes” 속성이 있습니다. 이를 migrate=”no”로 구성하면, PPKG에 포함하지 않게 됩니다. 사실 USMT는 PPKG 구성용으로 만들어진 것이 아니라, Windows XP 시절부터, 신규 컴퓨터를 설치한 후, 기존 컴퓨터에서 사용하는 사용자의 환경을 이전하는 용도의 응용 프로그램입니다. 그래서 사용자 상태 마이그레이션 도구라고 부르는 것이죠. migapp.xml은 응용 프로그램에 대한 정보 XML이며, migdoc.xml은 문서나 기타 파일에 대한 위치 정보(이전 시킬)를 가진 XML입니다. 지금 PPKG는 응용 프로그램에 대한 부분이기에, migapp.xml만 사용하는 것입니다. 이렇게 만들어진 사용자 상태 정보를 파일 서버나 USB 드라이브, 아니면 동일 컴퓨터내 다른 드라이브에 저장해놓고, 이를 Loadstate라는 프로그램으로 읽어들이게 됩니다. 이때 역시, 가져갈 것이냐, 말 것이냐에 대한 부분을 migrate 속성으로 지정할 수 있습니다.
이제 만들어진 PPKG를 Windows 설치 미디어 형태로 만들어서, 사용해볼 차례입니다. 이를 위해서는 Windows 10 ADK내 ICD(이미징 및 구성 디자이너)와 기본 Windows 설치 미디어가 필요합니다.
Windows ICD를 실행한 후, 새 Windows 이미지 사용자 지정을 클릭합니다. 적절한 프로젝트 이름을 부여한 후, 다음을 클릭합니다.
이미징 소스 형식 선택에서는 기본 설치 미디어를 사용할 예정이므로, WIM을 사용하는 옵션을 선택합니다.
이미지 선택 페이지에서 install.wim 파일을 지정하고, 여러 Edition이 있는 install.wim인 경우에는 Edition을 선택합니다.
프로비저닝 패키지 가져오기 페이지에서 바로 PPKG 파일을 지정하여, 기본 설치 미디어에 추가하게 됩니다.
아주 쉽게 다 불러올 수 있죠. 이제 이를 설치 미디어 형태로 저장만 하면 바로 사용할 수 있게 됩니다. 만들기를 클릭하고, 새로 설치 미디어를 선택합니다.
이후, WIM 파일 형태를 선택(FFU는 Windows 10 Mobile, 스마트폰용), 그리고 USB 드라이브에 저장하여, 바로 사용할지, 폴더에 저장하고 차후 복사할지를 결정합니다.
저장된 폴더에 가보면, 기본 설치 미디어와 크게 다르지 않은 형태의 구성을 가지고 있음을 느낄 수 있습니다.
다만, Sources 폴더에 들어가보면, ProvisioningPackages 폴더가 있고, 이 안에 PPKG 파일이 있음을 알 수 있습니다.
그리고, 이를 자동화 처리하기 위해, Sources 폴더에 Autounattend.xml 파일이 존재합니다.
PPKG 파일은 WIM과 동일한 포맷이기에, 파일 확장자를 WIM으로 변경하면, Mount-WindowsImage cmdlet을 이용하여 탑재해볼 수 있습니다.
Windows ICD가 만들어준 폴더 내용을 모두 부팅 가능한 USB 드라이브에 복사해서, 설치를 진행하거나, ISO로 만들어서 제공할 수도 있습니다. ISO를 만들기 위해서는 Windows ADK의 배포 도구내 oscdimg 도구를 사용합니다. 간단하게 PowerShell을 이용하여, UEFI를 지원하는 ISO 이미지를 만들려면, 아래와 같은 PowerShell을 실행하시면 됩니다. (관련 스크립트를 포스팅의 하단에 첨부하였습니다.)
이를 이용하여 일반적인 Windows 설치를 진행하듯이, PC 설치를 진행합니다. OOBE 단계 전까지, 사용자의 입력을 요구하지 않는 것이 기본 설정입니다.
설치가 다 완료된 후, 해당 PC의 드라이브를 살펴보면, 설치 관련 미디어 파일이 있는, $Windows.~BT 폴더내에 PPKG 파일이 배치되어 있습니다.
또한, 제가 테스트한 PPKG내 포함되어 있는 Adobe Acrobat과 Office 365 응용 프로그램이 기본 설치되어 있음을 확인할 수 있었습니다.
향후, 추가적인 응용 프로그램이 생겼다면, 레퍼런스 컴퓨터에서 해당 응용 프로그램을 설치한 후, 새롭게 PPKG를 생성하면, 기존 설치된 응용 프로그램들과 함께 추가 응용 프로그램이 포함된 PPKG가 만들어지겠죠? 그것을 설치 미디어의 ProvisioningPackages 폴더내 PPKG 파일만 바꿔주면, 업데이트된 설치 미디어를 가지게 됩니다.
Windows 10의 PPKG는 이번 포스팅에서 살펴본 바와 같이, IT 관리자의 배포 부담을 최소화시키면서, 유연성까지 가질 수 있게 됩니다. PPKG 파일에 대한 업데이트만으로, 비즈니스 조직의 표준 이미지를 관리할 수 있게 되는 것이죠. 다음 포스팅에서는 응용 프로그램 설치에 대한 부분이 아닌, Windows 10 환경 구성시에 사용할 수 있는 PPKG를 Windows ICD로 만들어보겠습니다.