무인설치 응답파일 윈도우 최초로그인시 명령어 사용하는 방법

개요

프로그램을 설치하고 만능윈도우를 만든 다음 여러가지 방법으로 배치파일등이 설치되도록 해야 할 필요성이 있습니다. 그 중에서 무인설치 응답파일로 계정을 만들고 최조 로그인시에 명령어를 줘서 프로그램을 실행해야 할 필요가 있습니다.

메신저를 예를 든다면 CoolMessenger는 생성된 해당 계정에 대화내용을 저장 합니다. 그래서 감사모드에서 쿨메신저를 인스톨 하면 감사모드는 Administrator 최고 관리자 계정으로 설치가 되므로 users > administartor > document 폴더에 쿨메신저 데이터가 저장 되도록 설정이 되며 폴더도 생성이 됩니다.

하지만 최고 관리자 계정을 활성화해서 설치 하지 않고 user 계정을 만들어서 설정을 한다고 하면 쿨메신져는 살아 있어도 데이터는 users > administrator > document 폴더에 저장 하려고 합니다. 이부분이 맞질 않아서 쿨메신져 같은 프로그램은 감사모드에서 미리 설치하는것이 아닌 계정이 생성된 다음에 설치를 해야 하는게 맞습니다.

WSIM 으로 응답파일 작성

기본인 Windows SIM(System Image Manager)로 하는 방법을 알아보고 그 코드를 숙지 하면 굳이 WSIM으로 할 필요는 없습니다. 하지만 버전이 크게 바뀌면 이를테면 1903 에서 2004르 바뀐다면 그땐 새로운 ADK로 해봐야 합니다. 바뀐 부분이 있을수 있으니까요.

왼쪽 하단의 Windows 이미지란의 항목에서 amd_Microsoft-Windows-Shell-Setup_neutral을 오른쪽 마우스로 선택후 7 oobesystem에 설정 추가(7)를 클릭해서 응답파일에 추가 해줍니다.

wsim firstlogon 01

응답파일 설정 하위 항목에서 FirstLogonCommand 항목에 있습니다. 이 항목에 계정 생성후 처음으로 로그인시에 명령어를 실행하게 하는 것입니다. FirstLogonCommand 항목을 오른쪽 마우스로 선택하고 새 SynchronousCommand 삽입(N) 을 클립해줍니다.

wsim firstlogon 02

맨 오른쪽 속성항목에 보면 설정란이 있습니다. 이곳의 입력 값은 총 4가지 인데요. 간단하게 작성하면 됩니다. 저의 경우는 설치 사용했던 스크립트들을 자동으로 삭제하는 편입니다. 키값이 들어 가는 경우가 많아서 입니다.

CommandLine %windir%\del.cmd
Description delete command
Order 1
RequiresUserInput 입력값 변수 (잘 사용하지 않음)
wsim firstlogon 03

실제 생성된 코드값입니다. 명령어를 여러개 넣을 경우 order(순서)를 2번 3번으로 넣어서 명령어를 계속 추가하면 됩니다.

    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <Description>del script</Description>
                    <Order>1</Order>
                    <CommandLine>%windir%\del.cmd</CommandLine>
                </SynchronousCommand>
            </FirstLogonCommands>
        </component>
    </settings>Code language: DOS .bat (dos)

위에서 사용한 del.cmd 예제입니다.

@echo off
pushd %~dp0
timeout /t 2 /nobreak > nul
rmdir /s /q c:\Windows\Setup\Scripts > nul
del /s /q c:\Windows\Panther\unattend.xml > nul
DEL /F /Q %0% >nulCode language: DOS .bat (dos)

이상으로 계정생성 후 최초 로그인시에 명령어를 자동으로 입력하는 방법에 대해서 알아봤습니다. 이 구문은 응용하기에 따라 무궁 무진 합니다. 예를 들어 두번째 로그인에서 명령어를 작동하게 해야 할 필요가 있을때 레지스트리에 값을 입력 하거나, 스케줄러로 작동하게끔 명령어를 줄 수도 있습니다.

참고:

2 thoughts on “무인설치 응답파일 윈도우 최초로그인시 명령어 사용하는 방법”

  1. 응답 파일로 계정 생성 후 첫 로그인 시 스크립터 파일과 응답 파일을 삭제시키는 내용이 맞는지요??
    order를 반복적으로 더 사용하고 싶을 땐 아래처럼 반복해서 사용하면 되는 건가요?
    수현 님의 예시처럼 order1은 설치 order2는 파일 삭제 이런 식으로 사용하려고 합니다

    setup script
    1
    %windir%\setup.cmd
    del script
    2
    %windir%\del.cmd

    응답
    • 주의 하실 점은 프로그램 설치를 하실때는 프로그램이 다 실행되고 난 뒤에 다음 프로그램이 실행되고 모든 프로그램이 다 설치가 된다음에 두번째 del 스크립트로 지워주시고 자기자신 파일도 지우게끔 스크립트를 짜시면 됩니다. 배치 파일 작성 하실적에 timeout 또는 ping 명령어로 간격을 주시는것도 필요할수 있습니다. 아니면 프로그램을 이용하는 방법도 있는데 쉽게는 오토잇이나 오토핫키가 가장 쉽고 vbs로도 가능합니다.

      응답

Leave a Comment