반응형

기존 DrvAutoLauncher.bat 드라이버 런처에 EDrv8_25v3 자동 설치 실행 조건을 추가해 보았습니다.

 - 드라이브 루트 경로의 :\EDrv8*\EDrv8_x64.exe를 찾아서 있으면 실행

 - 없을 경우 EasyDrv7를 찾아서 실행

 

https://noways.tistory.com/2152

 

EasyDrv7, K-Driver 런처 배치 (드라이버 자동 설치 런처)

외부 경로에서 .bat 파일을 호출하여 실행할 경우, 구성 파일(EasyDrv7(WIN10x64).ini)의 경로를 제대로 찾지 못해 오류가 발생하는 문제가 있었습니다.이에 따라 .exe 파일의 실제 경로로 작업 디렉터리

noways.tistory.com

 

EDrv8_25v3(2025-05-26)

https://www.itsk.com/thread/434026
EDrv8_25v3.iso [9.33GB]
https://124.222.121.65/cu/IT天空资源分流/万能驱动/万能驱动8/万能驱动25v3

EasyDrv7 마지막 버전(2023.12.28)
https://124.222.121.65/cu/IT天空资源分流/万能驱动/万能驱动7/万能驱动2023.12.28
EasyDrv7 마지막 버전 - 윈도우7 업데이트(2024.12.11)
https://124.222.121.65/cu/IT天空资源分流/万能驱动/万能驱动7/万能驱动2024.12.11

 

EDrv8_25v3자동 설치 - 움짤 GIF

 

반응형
반응형

📋 스크립트 주요 기능

이 배치 스크립트는 윈도우에서 IP 주소 구성 자동화를 지원합니다.

제공 기능

  1. 현재 IP 구성 백업 (→ IPAddress.txt 저장)
  2. 백업된 IP 구성 자동 복원
  3. 자동 IP(DHCP) 적용
  4. 고정 IP 수동 입력 (전체 IP 직접 입력)
  5. 사무실 지정 IP 입력(편의 기능 제공)
  6. 프로그램 종료

 

🏗️ 스크립트 구조 및 상세 설명

1️⃣ 관리자 권한 확인 및 자동 상승

batch
복사편집
:Admin_Check fsutil dirty query %systemdrive%
  • UAC(사용자 계정 컨트롤)를 우회하여 관리자 권한으로 재실행
  • 배치파일을 실행할 때 관리자 권한이 아니면 자동으로 관리자 권한으로 다시 실행

2️⃣ 기본 UI 설정

batch
복사편집
chcp 65001 color 1f title Auto_IP_Setting mode con cols=100 lines=50 powershell -Command "&{$host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size(100, 5000)}"
  • 콘솔 인코딩: UTF-8 적용
  • 콘솔 창 색상 및 크기 지정
  • 콘솔 버퍼 크기 증가 (스크롤 영역 확대)

3️⃣ 날짜별 백업 폴더 구성

batch
복사편집
for /f %%a in ('powershell -NoProfile -Command "Get-Date -Format \"yyyyMMdd\""') do set datetime=%%a set driverRoot=%~dp0Backup%datetime%
  • 현재 날짜(YYYYMMDD)를 가져와서 백업 폴더명에 반영

4️⃣ 메뉴 출력 및 선택 기능

batch
복사편집
:menu netsh interface ipv4 show interface
  • 현재 네트워크 인터페이스 목록 출력
  • 사용자로부터 IP 설정할 인터페이스 색인(Idx) 값 입력받기

메뉴 항목:

markdown
복사편집
1. IP 구성 백업 2. IP 구성 복원 3. DHCP 자동 IP 받기 4. 고정 IP 직접 입력 5. 사무실 지정 IP 입력1 6. 사무실 지정 IP 입력2 7. 종료

5️⃣ IP 구성 백업

batch
복사편집
:ipbackup powershell -NoProfile -ExecutionPolicy Bypass -Command ...
  • 현재 네트워크 설정 정보를 Powershell로 읽어 IPAddress.txt로 저장
  • 저장 항목:
    • 어댑터 이름
    • 설명
    • IPv4 주소
    • 서브넷 마스크
    • 기본 게이트웨이
    • DNS 서버

※ VMware 가상 어댑터 제외


6️⃣ DHCP 자동 IP 설정

batch
복사편집
:dhcp netsh interface ipv4 set address "%RAN_NAME%" source=dhcp netsh interface ipv4 set dnsservers "%RAN_NAME%" source=dhcp
  • 자동 IP 받기(DHCP) 설정 적용
  • 네트워크 설정 후 ncpa.cpl (네트워크 어댑터 설정창) 실행

7️⃣ 고정 IP 수동 입력

batch
복사편집
:static1
  • 사용자가 직접 IP, 서브넷 마스크, 게이트웨이 입력
  • DNS 서버는 기본값 사용
batch
복사편집
DNS1=168.126.63.1 DNS2=168.126.63.2

8️⃣ 사무실 지정 IP 입력 1 / 2

batch
복사편집
:static2 :static3
  • 사무실에서 고정 IP 사용 시, 패턴화된 입력 방식 제공
    • 예) 192.168.0.xxx, 192.168.xxx.xxx
  • 반복적인 입력 편의성 제공

9️⃣ IP 구성 복원

batch
복사편집
:iprestore
  • 백업된 IPAddress.txt 를 파싱해서
    • IP 주소
    • 서브넷 마스크
    • 게이트웨이
    • DNS 서버1, 서버2
      설정값을 자동으로 읽어 적용
  • 입력 오류 방지: 각 필드 누락 시 오류 메시지 출력 후 메뉴로 복귀

🔍 기술 포인트

Powershell 연동

  • 고급 IP 정보 파싱 및 텍스트 저장에 PowerShell 사용

네트워크 설정 자동화

  • netsh interface ipv4 set ... 명령 활용

UI 구성

  • 컬러/크기/스크롤 최적화로 콘솔 가독성 향상

에러 처리

  • 백업 파일 유무 확인
  • 필수 값 누락 시 오류 메시지 출력

가상 네트워크 제외

  • VMware 가상 어댑터 제외 기능 포함

💡 활용 예시

  • 사무실에서 PC 포맷 후 고정 IP 적용 자동화
  • 임대용 노트북/PC 회수 시 IP 초기화 자동화
  • 다중 지점에서 공통 IP 구성을 빠르게 적용
  • IP 변경이 빈번한 개발/테스트 환경에서 활용
:main
cls
echo %LINE%
echo. ▶ 이더넷 어댑터 목록 출력
echo %LINE%
netsh interface ipv4 show interface
echo %LINE%
set /p startupqueryinterval=IP를 변경 할 '색인' 값(Idx)을 입력해주세요 :
set "RAN_NAME=%startupqueryinterval%"

 

:menu
cls
echo %LINE%
echo. ▶ 도구 사용 안내
echo %LINE%
echo. ① 현재 IP 구성을 실행 경로의 IPAddress.txt 파일로 저장합니다.
echo. ② 저장된 IPAddress.txt 파일을 이용해 IP 자동 재구성이 가능합니다.
echo. ③ 사무실 지정 IP(static2, static3)는 필요 시 해당 항목을 직접 수정하여 사용하세요.
echo. ④ IP 변경 시 사용할 고정 DNS 값은 static1, static2, static3 항목을 수정하여 사용하세요.
echo %LINE%
echo. ▶ 백업된 IPAddress.txt의 내용을 출력 합니다.
echo %LINE%

:: 다시 IPAddress.txt 출력
if exist "%~dp0IPAddress.txt" (
    for /f "usebackq delims=" %%A in ("%~dp0IPAddress.txt") do (
        echo %%A
    )
) else (
    echo [경고] IPAddress.txt 파일이 없습니다.
)
echo %LINE%
echo.
echo  1. IP 구성 백업 - IPAddress.txt
echo.
echo  2. IP 구성 복원 - IPAddress.txt
echo.
echo  3. 자동으로 IP 주소 받기(DHCP)
echo.
echo  4. 고정 IP Full 입력(ex 192.168.0.1)
echo.
echo  5. 사무실 지정 IP 입력1(ex 192.168.0.xxx)
echo.
echo  6. 사무실 지정 IP 입력2(ex 192.168.xxx.xxx)
echo.
echo  7. 색인 값 변경 (Idx 재입력)
echo.
echo  8. 종료(exit)
echo.
echo %LINE%
set /p num=번호를 입력해주세요 :

if "%num%"=="1" goto ipbackup
if "%num%"=="2" goto iprestore
if "%num%"=="3" goto dhcp
if "%num%"=="4" goto static1
if "%num%"=="5" goto static2
if "%num%"=="6" goto static3
if "%num%"=="7" goto main  :: 색인 값 재입력
if "%num%"=="8" goto exitif not %ERRORLEVEL% == 0 goto exit

 

:ipbackup
echo.
echo %LINE%
echo. ▶ IP 주소 정보 저장(IPAddress.txt)
echo %LINE%
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  "$output = ''; " ^
  "$adapters = Get-NetIPConfiguration | Where-Object { $_.NetAdapter.InterfaceDescription -notmatch 'VMware Virtual Ethernet Adapter' }; " ^
  "foreach ($adapter in $adapters) { " ^
    "$nic = $adapter.NetAdapter; " ^
    "$prefix = $adapter.IPv4Address.PrefixLength; " ^
    "$maskValue = ([math]::Pow(2,32) - [math]::Pow(2,32-$prefix)); " ^
    "$bytes = @(); " ^
    "for ($i = 3; $i -ge 0; $i--) { $bytes += (($maskValue -shr ($i * 8)) -band 0xFF) } " ^
    "$subnet = ($bytes -join '.'); " ^
    "$dns = (Get-DnsClientServerAddress -InterfaceIndex $nic.ifIndex -AddressFamily IPv4).ServerAddresses -join ', '; " ^
    "$ipconfigInfo = '어댑터 이름: ' + $nic.Name + \"`n\" + " ^
                   "'설명: ' + $nic.InterfaceDescription + \"`n\" + " ^
                   "'IPv4 주소: ' + $adapter.IPv4Address.IPAddress + \"`n\" + " ^
                   "'서브넷 마스크: ' + $subnet + \"`n\" + " ^
                   "'기본 게이트웨이: ' + $adapter.IPv4DefaultGateway.NextHop + \"`n\" + " ^
                   "'DNS 서버: ' + $dns + \"`n\"; " ^
    "$output += $ipconfigInfo + \"`n\"; " ^
  "} " ^
  "[System.IO.File]::WriteAllText('%~dp0IPAddress.txt', $output, [System.Text.UTF8Encoding]::new($false))"

REM "'물리적 주소: ' + $nic.MacAddress + \"`n\" + " ^

pause
goto menu

 

:: IPAddress.txt 출력
if exist "%~dp0IPAddress.txt" (
    for /f "usebackq delims=" %%A in ("%~dp0IPAddress.txt") do (
        echo %%A
    )
) else (
    echo [경고] IPAddress.txt 파일이 없습니다.
)

 

:iprestore
cls
setlocal enabledelayedexpansion
echo %LINE%
echo. ▶ 백업된 IPAddress.txt를 읽어 자동으로 IP 구성 중입니다.
echo %LINE%

:: IPAddress.txt 파일 확인
if not exist "%~dp0IPAddress.txt" (
    echo [경고] IPAddress.txt 파일이 없습니다.
    pause
    endlocal
    goto menu
)

:: 변수 초기화
set "IPAddr="
set "Subnet="
set "Gateway="
set "DNS1="
set "DNS2="

:: IPAddress.txt에서 값 파싱
for /f "usebackq tokens=1* delims=:" %%A in ("%~dp0IPAddress.txt") do (
    set "line=%%A"
    set "value=%%B"
    set "line=!line: =!"
    set "value=!value!"

    :: 앞뒤 공백 제거
    for /f "tokens=* delims= " %%X in ("!value!") do set "value=%%X"

    if /i "!line!"=="IPv4주소" set "IPAddr=!value!"
    if /i "!line!"=="서브넷마스크" set "Subnet=!value!"
    if /i "!line!"=="서브넷마스크:" set "Subnet=!value!"
    if /i "!line!"=="서브넷마스크" set "Subnet=!value!"
    if /i "!line!"=="기본게이트웨이" set "Gateway=!value!"
    if /i "!line!"=="DNS서버" (
        for /f "tokens=1,2 delims=, " %%D in ("!value!") do (
            set "DNS1=%%D"
            set "DNS2=%%E"
        )
    )
)

:: 읽어온 값 출력
echo.
echo IP 주소         : %IPAddr%
echo 서브넷 마스크   : %Subnet%
echo 기본 게이트웨이 : %Gateway%
echo DNS 서버1      : %DNS1%
echo DNS 서버2      : %DNS2%
echo.

:: 값 확인 후 적용
if "%IPAddr%"=="" (
    echo [오류] IP 주소를 읽어올 수 없습니다.
    pause
    endlocal
    goto menu
)

if "%Subnet%"=="" (
    echo [오류] 서브넷 마스크를 읽어올 수 없습니다.
    pause
    endlocal
    goto menu
)

if "%Gateway%"=="" (
    echo [오류] 기본 게이트웨이를 읽어올 수 없습니다.
    pause
    endlocal
    goto menu
)

if "%DNS1%"=="" (
    echo [오류] DNS 서버1 주소를 읽어올 수 없습니다.
    pause
    endlocal
    goto menu
)

echo. 네트워크 설정을 적용 중입니다...

:: 기존 DNS 삭제 후 새로 설정
netsh interface ipv4 set dnsservers "%RAN_NAME%" static %DNS1% primary >nul
if not "%DNS2%"=="" (
    netsh interface ipv4 add dnsservers "%RAN_NAME%" %DNS2% >nul
)

:: IP 설정 적용
netsh interface ipv4 set address "%RAN_NAME%" static %IPAddr% %Subnet% %Gateway%

echo.
echo. [완료] 네트워크 설정이 적용되었습니다.
start ncpa.cpl
:: explorer shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
pause
endlocal
goto menu

 

:dhcp
netsh interface ipv4 set address "%RAN_NAME%" source=dhcp
netsh interface ipv4 set dnsservers "%RAN_NAME%" source=dhcp
echo.. 네트워크 설정이 완료 되었습니다.
start ncpa.cpl
:: explorer shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
pause
goto menu

 

:static1
cls
echo %LINE%
echo. ▶ 백업된 IPAddress.txt의 내용을 출력 합니다.
echo %LINE%

:: 다시 IPAddress.txt 출력
if exist "%~dp0IPAddress.txt" (
    for /f "usebackq delims=" %%A in ("%~dp0IPAddress.txt") do (
        echo %%A
    )
) else (
    echo [경고] IPAddress.txt 파일이 없습니다.
)
echo %LINE%

set DNS1=168.126.63.1
set DNS2=168.126.63.2
set SNNum=255.255.255.0
set GWNUM=
set SN=
echo.
set /p IPNum=. 아이피번호를 입력(ex 192.168.0.1) : 
@echo off
for /f "tokens=1-4 delims=. " %%a in ("%IPNum%") do (
set octetA=%%a
set octetB=%%b
set octetC=%%c
set octetD=%%d
)
echo.
set /p sn=. 서브넷 마스크를 입력(255.255.255.0 아닐 경우에 입력) : 
if "%SN%"=="" goto gw
if not "%SN%"=="" goto sn

:sn
set SNNum=%SN%

:gw
set GWNum=%octetA%.%octetB%.%octetC%.1
echo.
set /p GWNum=. 게이트 웨이를 입력(%GWNum% 아닐 경우에 입력) :  
echo.
echo. 
echo.. 네트워크 설정중 입니다. 잠시만 기다리세요.....
netsh interface ipv4 set dnsservers "%RAN_NAME%" static %DNS1% primary > nul
netsh interface ipv4 add dnsservers "%RAN_NAME%" %DNS2% > nul
netsh interface ipv4 set address "%RAN_NAME%" static %IPNum% %SNNum% %GWNum%
echo.. 네트워크 설정이 완료 되었습니다.
echo.
start ncpa.cpl
:: explorer shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
pause
goto menu

 

:static2
cls
set octetD=
echo %LINE%
echo. ▶ 백업된 IPAddress.txt의 내용을 출력 합니다.
echo %LINE%

:: 다시 IPAddress.txt 출력
if exist "%~dp0IPAddress.txt" (
    for /f "usebackq delims=" %%A in ("%~dp0IPAddress.txt") do (
        echo %%A
    )
) else (
    echo [경고] IPAddress.txt 파일이 없습니다.
)
echo %LINE%

set DNS1=168.126.63.1
set DNS2=168.126.63.2
set SNNum=255.255.255.0
set GWNUM=
set SN=
echo.
set octetA=192
set octetB=168
set octetC=0
set /p octetD=. 아이피 끝자리를 입력 192.168.0.%octetD%xxx :
set IPNum=%octetA%.%octetB%.%octetC%.%octetD%
)
echo.
set /p sn=. 서브넷 마스크를 입력(255.255.255.0 아닐 경우에 입력) : 
if "%SN%"=="" goto gw
if not "%SN%"=="" goto sn

:sn
set SNNum=%SN%

:gw
set GWNum=%octetA%.%octetB%.%octetC%.1
echo.
set /p GWNum=. 게이트 웨이를 입력(%GWNum% 아닐 경우에 입력) :  
echo.
echo. 
echo.. 네트워크 설정중 입니다. 잠시만 기다리세요.....
netsh interface ipv4 set dnsservers "%RAN_NAME%" static %DNS1% primary > nul
netsh interface ipv4 add dnsservers "%RAN_NAME%" %DNS2% > nul
netsh interface ipv4 set address "%RAN_NAME%" static %IPNum% %SNNum% %GWNum%
echo.. 네트워크 설정이 완료 되었습니다.
echo.
start ncpa.cpl
:: explorer shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
pause
goto menu

 

:static3
cls
set octetC=
set octetD=
echo %LINE%
echo. ▶ 백업된 IPAddress.txt의 내용을 출력 합니다.
echo %LINE%

:: 다시 IPAddress.txt 출력
if exist "%~dp0IPAddress.txt" (
    for /f "usebackq delims=" %%A in ("%~dp0IPAddress.txt") do (
        echo %%A
    )
) else (
    echo [경고] IPAddress.txt 파일이 없습니다.
)
echo %LINE%

set DNS1=168.126.63.1
set DNS2=168.126.63.2
set SNNum=255.255.255.0
set GWNUM=
set SN=
echo.
set octetA=192
set octetB=168
set /p octetC=. 아이피 3번째 자리를 입력 192.168.%octetC%xxx :
set IPNum=%octetA%.%octetB%.%octetC%.%octetD%
set /p octetD=. 아이피 4번째 자리를 입력 192.168.%octetC%.%octetD%xxx :
set IPNum=%octetA%.%octetB%.%octetC%.%octetD%
)
echo.
set /p sn=. 서브넷 마스크를 입력(255.255.255.0 아닐 경우에 입력) : 
if "%SN%"=="" goto gw
if not "%SN%"=="" goto sn

:sn
set SNNum=%SN%

:gw
set GWNum=%octetA%.%octetB%.%octetC%.1
echo.
set /p GWNum=. 게이트 웨이를 입력(%GWNum% 아닐 경우에 입력) :  
echo.
echo. 
echo.. 네트워크 설정중 입니다. 잠시만 기다리세요.....
netsh interface ipv4 set dnsservers "%RAN_NAME%" static %DNS1% primary > nul
netsh interface ipv4 add dnsservers "%RAN_NAME%" %DNS2% > nul
netsh interface ipv4 set address "%RAN_NAME%" static %IPNum% %SNNum% %GWNum%
echo.. 네트워크 설정이 완료 되었습니다.
echo.
start ncpa.cpl
:: explorer shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}
pause
goto menu

반응형
반응형

💻 WIMSetup_FullAutomation을 이용한 Windows 자동 설치 완전 가이드

반복적인 윈도우 설치 작업, 매번 수동으로 설정하기 귀찮으셨죠?
이번 포스팅에서는 WIMSetup_FullAutomation.cmd 배치 스크립트를 활용하여
install.wim에 자동화 설정을 미리 적용하고,
사용자 계정 생성부터 앱 제거, 드라이버 통합까지 한 번에 처리하는 방법을 자세히 소개합니다.

 


🔧 사전 준비

  1. WIMSetup_FullAutomation.zip 파일 다운로드 및 압축 해제
  2. 사용할 Windows ISO 파일 준비
  3. ISO에서 install.wim 또는 install.esd 추출 후 작업 디렉터리에 배치
  4. Defender 실시간 감시 일시 중지 (작업 지연 및 오탐 방지)

🛠️ 자동화 작업 단계

1️⃣ install.wim 준비 및 실행

  • ISO에서 install.wim 추출 (예: Windows 11 24H2 Pro)
  • WIMSetup_FullAutomation.cmd 실행
  • 폴더 내 *.wim 목록 중 install.wim 선택
  • 출력되는 이미지 인덱스 확인 후 선택

2️⃣ 응답 파일 구성 선택

  • 1~4번: 기본 앱 유지 + 다양한 계정 설정
  • 5~8번: 앱 제거(Bloatware 제거) + 계정 설정
  • 원하는 번호 입력하여 구성 선택

3️⃣ 추가 옵션 선택

  • 시작 메뉴 초기화
  • 자동 설치 구성 요소 적용
  • 공용 바탕화면 및 작업 표시줄 바로가기 복사
  • IRST 드라이버 통합
    → 모두 선택 시 A 또는 All 입력

4️⃣ 자동화 구성 적용

  • 선택한 인덱스를 mount 폴더에 마운트
  • 선택한 작업을 순차적으로 자동 적용
  • 마운트 해제 및 변경 사항 저장
  • install.wim 최적화 진행

📦 결과물 생성 및 ISO 교체

  • 생성된 Install_New.wim을 install.wim으로 이름 변경
  • 기존 ISO 내 sources 폴더의 install.wim 파일과 교체
  • 새로운 ISO 이미지로 설치 테스트 준비 완료

🖥️ VMware로 설치 테스트

  1. VMware에서 새 가상 머신 생성
  2. 변경된 ISO 파일로 부팅
  3. 부팅 시 Setup Launcher 실행 확인
  4. 자동으로 설치 진행 (3초 후 자동 시작)
  5. 선택한 응답 파일에 따라 사용자 계정 자동 생성
  6. 앱 제거 여부 및 구성 확인
  7. 바탕화면까지 진입 → 설치 완료

✅ 설치 결과 및 활용 팁

  • 응답 파일에 따라 OOBE 사용자 생성 구간이 자동 처리됨
  • 1, 2, 5, 6번 구성은 바탕화면까지 완전 자동 설치 가능
  • 반복 테스트, 드라이버/앱 사전 구성, 배포용 이미지 제작 등에 유용

📌 마무리

WIMSetup_FullAutomation.cmd를 활용하면 복잡한 설정 없이도
윈도우 설치 이미지를 완전히 자동화된 형태로 커스터마이징할 수 있습니다.
한 번 만들어두면 반복 작업이 획기적으로 줄어들기 때문에
IT 관리자, 개인 유저 모두에게 매우 유용한 도구입니다.


🙏 감사합니다!

이 포스트가 도움이 되셨다면 댓글, 공감, 공유 부탁드립니다!
궁금한 점은 언제든지 댓글로 문의 주세요. 😊

 

 

install.wim 단일 or 다중 인덱스(all) 반복 작업 지원

 

install.wim 단일 or 다중 인덱스 반복 작업 지원


───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 인덱스 1번 이미지 작업 시작
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지를 탑재하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

▶ 응답파일 복사 중
  - 원본 경로: Panther\B.unattend_1Administrator_앱(Bloatware)제거.xml
  - 대상 경로: mount\Windows\Panther
  → 파일 복사 완료: unattend.xml

▶ StartMenuLayout 복사 작업
  - 원본 경로: StartMenuLayout
  - 대상 경로: mount\Users\Default\AppData\Local\Microsoft\Windows\Shell
  → 폴더 복사 완료 (총 파일: 3개)

▶ Scripts 복사 작업
  - 원본 경로: Scripts
  - 대상 경로: mount\Windows\Setup\Scripts
  → 폴더 복사 완료 (총 파일: 6개)

▶ Desktop 복사 작업
  - 원본 경로: Desktop
  - 대상 경로: mount\Users\Public\Desktop
  → 폴더 복사 완료 (총 파일: 186개)

▶ Taskbar 복사 작업
  - 원본 경로: Programs
  - 대상 경로: mount\ProgramData\Microsoft\Windows\Start Menu\Programs
  → 폴더 복사 완료 (총 파일: 3개)


───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 드라이버(IRST) 통합 작업
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지 버전: 10.0.26100.4202

설치할 드라이버 패키지를 검색하는 중...
설치할 드라이버 패키지 3개를 찾았습니다.
1/3개 설치 중 - oem0.inf: 드라이버 패키지를 설치했습니다.
2/3개 설치 중 - oem1.inf: 드라이버 패키지를 설치했습니다.
3/3개 설치 중 - oem2.inf: 드라이버 패키지를 설치했습니다.
작업을 완료했습니다.
  → 드라이버 통합 성공

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 이미지 저장 및 마운트 해제
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지 파일: H:\WIMSetup_FullAutomation\install.wim
이미지 색인: 1
이미지를 저장하는 중
[==========================100.0%==========================]
이미지를 탑재 해제하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 이미지 내보내기 : Index 1
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지를 내보내는 중
[==========================100.0%==========================]
작업을 완료했습니다.

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 인덱스 2번 이미지 작업 시작
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지를 탑재하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

▶ 응답파일 복사 중
  - 원본 경로: Panther\B.unattend_1Administrator_앱(Bloatware)제거.xml
  - 대상 경로: mount\Windows\Panther
  → 파일 복사 완료: unattend.xml

▶ StartMenuLayout 복사 작업
  - 원본 경로: StartMenuLayout
  - 대상 경로: mount\Users\Default\AppData\Local\Microsoft\Windows\Shell
  → 폴더 복사 완료 (총 파일: 3개)

▶ Scripts 복사 작업
  - 원본 경로: Scripts
  - 대상 경로: mount\Windows\Setup\Scripts
  → 폴더 복사 완료 (총 파일: 6개)

▶ Desktop 복사 작업
  - 원본 경로: Desktop
  - 대상 경로: mount\Users\Public\Desktop
  → 폴더 복사 완료 (총 파일: 186개)

▶ Taskbar 복사 작업
  - 원본 경로: Programs
  - 대상 경로: mount\ProgramData\Microsoft\Windows\Start Menu\Programs
  → 폴더 복사 완료 (총 파일: 3개)


───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 드라이버(IRST) 통합 작업
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지 버전: 10.0.26100.4202

설치할 드라이버 패키지를 검색하는 중...
설치할 드라이버 패키지 3개를 찾았습니다.
1/3개 설치 중 - oem0.inf: 드라이버 패키지를 설치했습니다.
2/3개 설치 중 - oem1.inf: 드라이버 패키지를 설치했습니다.
3/3개 설치 중 - oem2.inf: 드라이버 패키지를 설치했습니다.
작업을 완료했습니다.
  → 드라이버 통합 성공

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 이미지 저장 및 마운트 해제
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지 파일: H:\WIMSetup_FullAutomation\install.wim
이미지 색인: 2
이미지를 저장하는 중
[==========================100.0%==========================]
이미지를 탑재 해제하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 이미지 내보내기 : Index 2
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지를 내보내는 중
[==========================100.0%==========================]
작업을 완료했습니다.

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 인덱스 3번 이미지 작업 시작
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지를 탑재하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

▶ 응답파일 복사 중
  - 원본 경로: Panther\B.unattend_1Administrator_앱(Bloatware)제거.xml
  - 대상 경로: mount\Windows\Panther
  → 파일 복사 완료: unattend.xml

▶ StartMenuLayout 복사 작업
  - 원본 경로: StartMenuLayout
  - 대상 경로: mount\Users\Default\AppData\Local\Microsoft\Windows\Shell
  → 폴더 복사 완료 (총 파일: 3개)

▶ Scripts 복사 작업
  - 원본 경로: Scripts
  - 대상 경로: mount\Windows\Setup\Scripts
  → 폴더 복사 완료 (총 파일: 6개)

▶ Desktop 복사 작업
  - 원본 경로: Desktop
  - 대상 경로: mount\Users\Public\Desktop
  → 폴더 복사 완료 (총 파일: 186개)

▶ Taskbar 복사 작업
  - 원본 경로: Programs
  - 대상 경로: mount\ProgramData\Microsoft\Windows\Start Menu\Programs
  → 폴더 복사 완료 (총 파일: 3개)


───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 드라이버(IRST) 통합 작업
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지 버전: 10.0.26100.4202

설치할 드라이버 패키지를 검색하는 중...
설치할 드라이버 패키지 3개를 찾았습니다.
1/3개 설치 중 - oem0.inf: 드라이버 패키지를 설치했습니다.
2/3개 설치 중 - oem1.inf: 드라이버 패키지를 설치했습니다.
3/3개 설치 중 - oem2.inf: 드라이버 패키지를 설치했습니다.
작업을 완료했습니다.
  → 드라이버 통합 성공

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 이미지 저장 및 마운트 해제
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지 파일: H:\WIMSetup_FullAutomation\install.wim
이미지 색인: 3
이미지를 저장하는 중
[==========================100.0%==========================]
이미지를 탑재 해제하는 중
[==========================100.0%==========================]
작업을 완료했습니다.

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 이미지 내보내기 : Index 3
───────────────────────────────────────────────────────────────────────────────────────────────────────

배포 이미지 서비스 및 관리 도구
버전: 10.0.19041.3636

이미지를 내보내는 중
[==========================100.0%==========================]
작업을 완료했습니다.

───────────────────────────────────────────────────────────────────────────────────────────────────────
▶ 모든 인덱스 작업 완료
결과 파일: H:\WIMSetup_FullAutomation\install_New.wim
모든 작업 완료. 10초 후 종료
───────────────────────────────────────────────────────────────────────────────────────────────────────
계속하려면 아무 키나 누르십시오 . . .

 

 

■ 동영상 제목 클릭 후 전체화면(1080P)시청 가능합니다.

 

정보가 도움이 되었다면 아래 링크로 커피를 후원 해주세요. ^^

donaricano-btn

반응형
반응형

📝 본문

Windows 설치 이미지(install.wim)에 사용자 지정 자동 응답 파일(unattend.xml)과 설치 후 스크립트, 그리고 드라이버를 통합하는 작업은 수동으로 진행하면 번거롭고 실수가 생기기 쉽습니다. 이를 자동화하기 위해 배치 파일을 활용하면 반복 작업을 손쉽게 처리할 수 있습니다.

이번 포스팅에서는 unattend.xml 파일과 설치 후 자동 실행될 Scripts 폴더, 그리고 드라이버를 WIM 이미지에 자동으로 적용하는 배치 파일 스크립트를 소개하고, 그 구조와 주요 기능을 하나씩 설명해드리겠습니다.


포함된 응답파일(unattend.xml)은 그대로 사용 해도 되고 본인이 사용하는 파일로 교체 하셔도 됩니다.

CopyUnattend_Administrator.zip
1.65MB
CopyUnattend_User.zip
1.65MB
CopyUnattend_임의_사용자계정_생성.zip
1.65MB

 

📁 스크립트 주요 기능 요약

  1. Panther 폴더 생성 확인 및 생성
    • Windows 설치 이미지 내부의 %SystemRoot%\Panther 폴더는 unattend.xml을 참조하기 위한 기본 경로입니다.
    • 해당 경로가 없을 경우 자동으로 생성되도록 처리하였습니다.
  2. unattend.xml 복사
    • 배치 파일이 위치한 경로에 있는 unattend.xml을 Wimmount\Windows\Panther 경로로 복사합니다.
    • 파일이 없거나 경로 오류가 있을 경우 명확한 메시지를 출력합니다.
  3. Scripts 폴더 복사
    • 사용자 정의 설치 후 실행 스크립트가 담긴 Scripts 폴더를 Windows\Setup\Scripts 경로로 복사합니다.
    • 대상 폴더가 없으면 자동으로 생성합니다.
  4. 드라이버 통합 (DISM)
    • Drivers 폴더에 있는 모든 드라이버를 DISM 도구를 사용하여 이미지에 통합합니다.
    • ForceUnsigned 옵션을 통해 서명되지 않은 드라이버도 강제로 통합할 수 있습니다.
  5. WIM 언마운트 및 저장
    • 변경된 내용을 이미지에 저장하고 언마운트합니다.
  6. 임시 마운트 폴더 정리
    • 작업 후 사용된 Wimmount 폴더를 정리하여 깔끔하게 마무리됩니다.

🖥️ 스크립트 실행 흐름 예시

[1단계] Wimmount\Windows\Panther 폴더 확인
 → Panther 폴더가 존재하지 않아 생성합니다.

[2단계] unattend.xml 파일 복사 중...
 → unattend.xml 파일이 성공적으로 복사되었습니다.

[3단계] Setup\Scripts 폴더 생성 및 복사 중...
 → Scripts 폴더가 성공적으로 복사되었습니다.

[4단계] 드라이버 통합 중 (DISM 사용)
 → 드라이버가 성공적으로 통합되었습니다.

[5단계] WIM 언마운트 및 변경사항 저장 중...
 → 언마운트 및 저장 완료.

[6단계] 임시 마운트 폴더 정리 중...
 → 임시 폴더 삭제 완료.

모든 작업이 완료되었습니다.

⏱️ 스크립트 실행 팁

  • timeout 명령어를 통해 각 단계별 흐름을 확인할 수 있도록 약간의 지연 시간을 설정했습니다.
  • echo 메시지를 상세히 구성하여 사용자가 진행 상황을 쉽게 파악할 수 있도록 했습니다.

마무리

이 스크립트는 Windows 이미지를 커스터마이징하는 작업을 보다 체계적이고 안정적으로 수행할 수 있도록 돕습니다. 향후 Windows 설치 자동화나 배포를 자주 수행하는 환경에서는 이러한 배치 파일을 구성해두는 것이 큰 도움이 됩니다.

필요하신 분들을 위해 전체 소스도 함께 공유드릴 예정이니, 다음 포스트도 기대해주세요!


 

install.wim에 응답파일(unattend.xml) 자동 복사 하기 - 움짤GIF

반응형

+ Recent posts