Windows 무인 설치(Unattended Setup) 작업을 하다 보면, Autounattend.xml 안에 <File> 태그로 포함된 여러 VBS, CMD, REG 등의 스크립트를 직접 꺼내야 하는 경우가 많습니다. 이 프로그램은 그 과정을 완전히 자동화해주는 AutoIt 기반 유틸리티입니다. XML에서 <File path="...">...</File> 구조를 찾아 실제 파일로 복원하고, 줄간격 및 특수문자까지 그대로 보존하여 저장합니다.
autounattend.xmlWindows 11/10용 파일 생성
https://schneegans.de/windows/unattend-generator/
Generate autounattend.xml files for Windows 10/11
Region and language settings: Install Windows using these language settings: Windows display language: Arabic Brazilian Portuguese Bulgarian Chinese Simplified Chinese Traditional Croatian Czech Danish Dutch English English International Estonian Finnish F
schneegans.de
🔧 주요 기능 요약
| XML 파일 선택 | Autounattend.xml 파일을 선택하여 내용 분석 |
| 저장 경로 지정 | 추출된 파일이 저장될 대상 폴더 지정 |
| 자동 파일 추출 | XML 내부 <File> 태그 내 포함된 스크립트를 원래 파일 형태로 복원 |
| 로그 출력 | 추출 진행 상황 및 결과를 콘솔 스타일 로그로 표시 |
| 폴더 목록 표시 | 생성된 각 폴더 경로를 리스트 형태로 확인 가능 |
| 선택 폴더 열기 | 리스트에서 폴더를 선택 후 탐색기로 바로 열기 가능 |
🖥️ GUI 구성
프로그램 이름: AutoUnattend Extractor v1.0
개발 환경: AutoIt
실행 파일: 단일 EXE 형태로 빌드 가능
GUI는 단일 탭 형태로 구성되어 있으며 다음과 같은 항목을 제공합니다.
- Autounattend.xml 파일:
추출 대상 XML 파일을 지정하는 입력창과 파일 선택 버튼(...) - 저장 대상 경로:
복원된 스크립트 파일이 저장될 폴더 지정 - 작업 로그 출력:
진행 상태를 실시간으로 표시하는 콘솔형 로그 창 - 생성된 폴더 경로 선택:
실제로 생성된 폴더 목록을 확인하고 더블클릭 시 탐색기로 열 수 있음 - [파일 추출 실행] 버튼:
추출 프로세스를 시작 - [선택 폴더 열기] 버튼:
리스트에서 선택한 폴더를 바로 탐색기로 열기
⚙️ 작동 원리
- 사용자가 Autounattend.xml을 지정하면 내부 전체 텍스트를 읽습니다.
- 정규식을 사용해 <File path="...">...</File> 구조를 모두 탐색합니다.
-
StringRegExp($xml, '(?is)<File\s+path="([^"]+)">(.*?)</File>', 3)
- 각 <File> 블록마다 실제 경로를 계산해 폴더를 자동 생성합니다.
- 내부 내용은 줄바꿈(CRLF)과 특수문자(<, > 등) 을 복원하며,
VBS·REG는 유니코드(UTF-16) 로, 기타 스크립트는 UTF-8로 저장됩니다. - 모든 파일이 정상 생성되면 로그창에 결과를 표시하고 완료 메시지를 띄웁니다.
StringRegExp($xml, '(?is)<File\s+path="([^"]+)">(.*?)</File>', 3)
🧾 특수문자 및 줄간격 복원 처리
AutoIt 기본 문자열 처리 특성상 XML 내 &, <, … 등의 문자가 그대로 저장되면 원본 스크립트가 깨질 수 있습니다.
이를 방지하기 위해 다음과 같은 문자 변환 로직이 적용됩니다.
$sContent = StringReplace($sContent, "&", "&")
$sContent = StringReplace($sContent, "<", "<")
$sContent = StringReplace($sContent, ">", ">")
$sContent = StringReplace($sContent, "…", "…")
- 시작과 끝의 불필요한 공백 줄 제거
- <![CDATA[ ... ]]> 태그 자동 제거
를 통해 순수한 스크립트 코드만 복원합니다.
📂 예시
예를 들어, XML에 다음과 같은 내용이 포함되어 있다면:
<File path="C:\Setup\Scripts\AddUser.vbs">
<![CDATA[
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "net user test /add"
]]>
</File>
🪟 주요 함수 설명
| _SelectXML() | XML 파일 선택 다이얼로그 |
| _SelectFolder() | 저장 대상 폴더 선택 |
| _RunExtract() | XML 파싱 및 파일 추출 핵심 처리 |
| _SaveFilePreserve() | 줄간격, 특수문자, 인코딩을 유지하여 파일 저장 |
| _Log() | 로그 창에 텍스트 출력 |
| _OpenSelectedPath() | 선택한 폴더를 탐색기에서 열기 |
| _MsgBoxTop() | 항상 위에 표시되는 메시지박스 출력 |
🚫 안전장치
중복 실행을 방지하기 위해 _Singleton() 함수를 사용합니다. 이미 프로그램이 실행 중이면 다음과 같은 경고창이 표시됩니다.
✅ 사용 예시 요약
1️⃣ Autounattend.xml 파일 선택
2️⃣ 저장 폴더 지정
3️⃣ [파일 추출 실행] 클릭
4️⃣ 추출 완료 후, 생성 폴더 리스트에서 폴더 선택 → [선택 폴더 열기] 클릭 모든 스크립트가 자동으로 복원되어 배포 폴더 구조를 그대로 재현합니다.
💡 활용 포인트
- Sysprep이나 무인 설치 도구 제작 시, XML에 포함된 스크립트를 빠르게 분리하여 디버깅 가능
- 백업용 Autounattend.xml에서 포함된 파일만 추출 가능
- 다른 PC에서 XML 기반 배포 구성을 손쉽게 재현 가능
🏁 결론
AutoUnattend Extractor v1.0은
XML에 내장된 스크립트를 한 번에 추출하고 원본 구조·인코딩·문자까지 그대로 복원하는 가볍고 실용적인 AutoIt 기반 도구입니다.
무인 설치나 커스텀 배포 작업을 자주 하는 사용자라면 이 유틸리티 하나로 XML 정리 작업 시간을 크게 줄일 수 있습니다.




■ AutoUnattend Extractor v1.0 — XML 스크립트 추출 움짤(GIF)

'자작 프로그램 > Unattend.xml 생성기' 카테고리의 다른 글
| Unattend.xml Generator v3.0 - 우클릭 메뉴 추가 (0) | 2025.10.12 |
|---|---|
| Unattend.xml Generator v2.0 - 자동화 설치 가이드 (0) | 2025.10.09 |
| Unattend.xml Generator v2.0 - 탭 분류 및 기능 세분화 (21) | 2025.10.03 |
| Unattend.xml Generator v1.0 - 무인설치 응답파일 생성기 초안 (2) | 2025.09.29 |
| 무인설치 옵션 선택 응답파일(Unattend.xml) 생성기 개선 (74) | 2024.05.30 |