노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.


AIK7에서 설치 응답 파일을 만들려면 각각의 구성 요소와 구성 단계가 어떠한 역할을 하는지를 잘 알아야 합니다. 구성 단계에 대해서는 AIK와 자동 응답 파일에서 충분히 다루었다고 생각하여, 구성 요소를 자동 응답 파일에 적용하는 레퍼런스를 소개하고자 합니다.

무인 설치 레퍼런스(Unattended Installation Settings Reference)는 "자동 설치 레퍼런스"라고도 부르며, 현재 AIK7에 포함된 윈도 도움말 파일(Unattend.chm) 또는 인터넷에서 테크넷 라이브러리로 제공하고 있습니다. 다만 인터넷에서 제공하는 무인 설치 레퍼런스는 윈도7용은 아직 없고, 윈도 비스타용만 있으나, 이것으로도 충분히 활용할 수 있습니다. 하지만 정확히 윈도7에 적용되지 않으므로 앞으로는 테크넷 라이브러리 대신에 도움말 파일을 기준으로 라이브러리를 소개하겠습니다.

무인 설치 레퍼런스

AIK와 용어 설명에서 기본적인 AIK 사용법에 대해 다루고 있습니다. 따라서 이미 AIK를 설치하였으며, 또한 이미 다루어 보았다고 가정하고 글을 쓰겠습니다. 물론 이 글에서 설명하는 바와 중복되는 부분도 있습니다.

Unattended Windows Setup Reference 항목을 클릭한다.

Unattended Windows Setup Reference 항목을 클릭한다.

시작 단추를 클릭한 뒤 프로그램 >> Microsoft Windows AIK >> Documentation >> Unattended Windows Setup Reference를 연다.

무인 설치 레퍼런스 도움말 파일

무인 설치 레퍼런스 도움말 파일

위와 같이 도움말 파일을 열어서 참조할 수 있으며, 테크넷 라이브러리에서도 찾을 수 있다.

테크넷 라이브러리에서 찾은 무인 설치 레퍼런스

테크넷 라이브러리에서 찾은 무인 설치 레퍼런스

위 두 그림은 거의 비슷하나 도움말 파일에서 About This User's Guide 라는 부분이 더 있다. 이것은 도움말 파일을 설명할 때 사용하는 용어나 글자 모양에 따른 지시 사항 등을 정의하고 있다. About This User's Guide 부분을 읽어 보면 도움말 파일의 구성이나 응용 프로그램의 단축키 등을 알 수 있다.

자동 설치 도구와 무인 설치 레퍼런스

먼저 자동 설치 도구에서 윈도 시스템 이미지 관리자를 실행한다.

자동 설치 도구에서 윈도 시스템 이미지 관리자를 실행한다.

자동 설치 도구에서 윈도 시스템 이미지 관리자를 실행한다.

윈도 시스템 이미지 관리자의 내부 창 구분

윈도 시스템 이미지 관리자의 내부 창 구분

위와 같이 윈도 시스템 이미지 관리자는 구성되어 있으며, 이 가운데 배포 공유 창은 따로 배포 공유를 만들지 않는다면 거의 쓰이지 않는다.

새 응답 파일을 윈도 이미지와 연결하는지를 묻는 대화상자

새 응답 파일을 윈도 이미지와 연결하는지를 묻는 대화상자

이미 존재하는 응답 파일을 불러올 때는 응답 파일만을 불러오지만, 새로 응답 파일을 작성하면 위와 같이 묻게 된다. 이때 대부분의 경우 를 클릭해야 한다. 이것은 매우 중요한데, 위의 대화상자에서 아니요를 클릭할 경우 어떠한 구성요소도 추가할 수 없고, 이는 곧 설치 응답 파일을 구성할 수 없다는 뜻이다. 반대로 설명하면 반드시 자신이 사용할 윈도 시스템 이미지와 응답 파일을 함께 열어야만 구성 요소를 추가할 수 있다는 뜻이다. 다만 이때 응답 파일과 윈도 이미지를 연결할 필요는 없다. 윈도 이미지 파일과 응답 파일을 함께 연다는 말과 서로 연결한다는 말은 다르므로 주의해야 한다.

그러나 윈도 이미지를 열지 않아도 패키지 추가는 가능하다.

패키지 추가 메뉴가 활성화된 화면

패키지 추가 메뉴가 활성화된 화면

우선 윈도 이미지 창속성 창을 살펴보자.

윈도 창에서 선택한 구성 요소

윈도 창에서 선택한 구성 요소

속성 창에 나타난 구성 요소의 속성

속성 창에 나타난 구성 요소의 속성

위 두 그림을 보면 구성 요소의 이름은 Microsoft-Windows-Shell-Setup임을 알 수 있다. 윈도 이미지 창에는 x86 또는 6.1.7100.0과 같은 군더더기가 있으나 속성 창에는 순수한 구성 요소 이름만 보여준다. 언뜻 보기에는 그러한 군더더기도 구성요소의 이름으로 보이지만, 응답 파일(AutoUnattend.xml)의 소스코드를 살펴보면 Microsoft-Windows-Shell-Setup만 이름임이 확실히 드러난다.

AutoUnattend.xml 파일의 소스코드

AutoUnattend.xml 파일의 소스코드

위에서 component name 태그의 값이 Microsoft-Windows-Shell-Setup으로 되어 있고, x86 등은 추가적인 내용임을 알 수 있다.

한편 도움말 파일의 목차에서 Microsoft-Windows-Shell-Setup 구성요소를 살펴보면 다음과 같다.

도움말 파일의 목차

도움말 파일의 목차

위에서 펼쳐진 책은 해당 구성 요소를 현재 접근하고 있다는 뜻이며, 덮인 책은 접근하지 않은 구성요소이다. 또한 물음표 표시가 있는 것은 구성 요소가 아닌 키 이름이다. 그런데 키 이름에 값을 넣은 뒤 저장하였다가 나중에 다시 불러오면 하위 구성 요소처럼 바뀌어 나타나기도 하므로 당황하지 않기를 바랍니다. 또한 위의 BluetoothTaskbarIconEnabled는 키 이름이기 때문에 윈도 이미지 창에서는 찾을 수 없지만, 속성 창에서는 나타나 있다. 물론 이 구성요소를 응답 파일에 추가하기 전에는 수정할 수 없다.

윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창에 추가

윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창에 추가

위와 같은 구성 요소 추가에서 어떤 구성 단계에 넣을 수 있느냐는 미리 정해져 있다. 위의 경우에는 구성 단계 4 specialize구성 단계 7 oobeSystem에 넣을 수 있다.

한편 레퍼런스를 보면 구성 요소가 어떤 구성 단계에 적용되는지를 알 수 있다. 간혹 구성 요소의 설명에서 나타나지 않기도 하지만, 대부분 구성 요소의 설명에서 Valid Passes라는 항목이 존재한다. 그 항목을 참조하면 추가하려는 구성 요소가 어느 구성 단계에 들어가야 하는지를 알 수 있다.

Microsoft-Windows-International-Core \ InputLocale 키의 도움말

Microsoft-Windows-International-Core \ InputLocale 키의 도움말

Microsoft-Windows-International-Core \ InputLocale 키가 적용될 구성 단계는 위 그림에서는 oobeSystem 구성 단계 또는 specialize 구성 단계이다. 이것은 테크넷 라이브러리에서도 마찬가지로 나타난다.

게다가 도움말 파일에서는 XML을 작성할 때 유용한 XML 예제도 소개하고 있으며, 이 구성요소가 적용될 아키텍처도 알 수 있다.

Microsoft-Windows-International-Core와 적용될 아키텍처

Microsoft-Windows-International-Core와 적용될 아키텍처

위의 경우 Microsoft-Windows-International-Core 구성 요소는 윈도7 Enterprise 에디션에서는 x86 기반 컴퓨터와, x64 기반 컴퓨터에서는 적용할 수 있지만, 아이태니움 기반 컴퓨터에서는 적용할 수 없음을 알 수 있다. 윈도 시스템 이미지 관리자(Windows SIM)을 이용할 경우 윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창에 추가 그림에서 보듯이 윈도 이미지 창에 나타난 구성요소는 모두 x86과 같은 군더더기가 붙어 있다. 그것은 아키텍처 이름으로 SIM을 이용할 경우에는 쉽게 알 수 있으므로 도움이 된다. 그러나 응답 파일을 직접 제작하거나 나중에 텍스트 편집기를 이용하여 편집할 때에는 아키텍처 이름 추가를 잊지 않도록 주의해야 한다.

이러한 과정을 통해 항목을 추가하면 다른 부분과는 다르게 표시된다.

새로 추가한 Microsoft-Windows-International-Core 등록 정보

새로 추가한 Microsoft-Windows-International-Core 등록 정보

이러한 구성 요소에 대한 설명을 레퍼런스에서 찾아 보고 알맞은 값을 속성 창에 입력해 주면된다.

마지막으로 유효성 검사를 하면 된다. Tool 메뉴에서 Validate Answer file 항목이 있다.

다음 할 일

무인 설치 설정 레퍼런스(Unattended Installation Settings Reference)에서 구성 요소를 하나하나 짚어볼 생각이다.

관련 문서

파일

  • Unattend.chm : AIK7에 포함된 무인 설치 레퍼런스 도움말 파일

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

AIK7에서 설치 응답 파일을 만들어 한국어 언어팩이 적용된 윈도7에 적용해 보았다. 그런데 설치 메시지가 모조리 영어로 나와서 응답 파일에 한국어를 적용한 의미를 갖지 못했다. 그래서 이번에는 무인 설치 설정 레퍼런스(Unattended Installation Settings Reference)를 살펴보기에 앞서 한국어를 적용한 설치본에서 한국어를 한글로 설치 과정에서 출력할 수 있게 응답 파일을 고쳐보기로 했다.

윈도 설정과 언어 및 국가

윈도 비스타 및 윈도7(이하 '윈도')의 설정과 언어 문제는 약간 미묘하다. 전적으로 특정 언어에 국한하는 문제도 있고, 특정 국가에 국한하는 문제도 있다. 아무튼 설치 과정에서 한국어를 한글로 나타내려면 boot.wim에 한국어를 적용하면 되지만, 응답 파일에서 영어로 표기하도록 했다면 애써 한국어를 적용한 작업이 무효로 되고 만다. 이것은 설치한 뒤에 시스템과 사용자가 영어를 쓰도록 했다면 역시 마찬가지 결과를 보이게 된다.

이러한 일을 당하지 않으려면 응답 파일에서 언어 설정과 국가 설정을 반드시 한국(한국어)로 설정해야 하며, 이 글에서는 그 설정 방법을 다루기로 한다.

기본 환경

지금까지 실험해 왔던 환경을 그대로 사용할 예정이다. 앞의 다른 글을 읽지 않은 이들을 위해 다시 적는다.

기본적으로 윈도7의 최소 요구사항 가운데 다음 두 가지를 만족한다고 가정하고 실험하였다.

  • RAM 1G(32비트), RAM 2G(64비트)
  • HDD 40G(32/64비트)[각주:1]

자동 설치 도구는 Windows Automated Installation Kit for Windows 7를 사용하였다. 정확하게는 Windows System Image Manager(흔히 Windows SIM; 시스템 이미지 관리자)을 사용하였다. AIK7을 위해 추가 공간이 필요하며, 또한 작업을 위해 9GB 정도가 더 필요하다.

실험 목표

일단 이것도 실험이니 목표가 있어야겠다.

  1. 설치 과정에서 한글로 나오게 한다.

    위와 같이 영어(로마자)로 나오는 화면을 한국어(한글)로 나오도록 바꾼다.
  2. 설치한 뒤에 한글로 나오게 한다. : 다만 이것은 설정하지 않아도 한글로 나온다. 이미 한국어 언어팩을 적용할 때 화면 표시 언어도 한글(한국어)로 설정했기 때문이다.
  3. 키보드 종류를 한국어 키보드 (103/106키)로 설정한다. 위 그림에서 보면 Korean Keyboard (103/106 Key)라는 부분은 내가 수정한 것이다. 이게 처음부터 103/106키였다면 아예 이 화면이 나오지 않아야 한다. 아울러 위 화면에서 선택하는 것을 모두 자동 선택하게 설정한다.
  4. 오픈캡처의 메뉴가 알아볼 수 있는 문자로 나타나는지를 확인한다. : 이상하게 메뉴가 자꾸 깨지고 있다.
    이상하게 나타나는 오픈 캡처의 메뉴

    이상하게 나타나는 오픈 캡처의 메뉴

언어 설정

설치 과정과 설치한 뒤 화면에 나타날 언어 설정하는 것은 로케일(Locale; 지역)이나 랭귀지(Language; 언어)와 관련이 있습니다. 이와 관련한 구성 요소는 Microsoft-Windows-International-CoreMicrosoft-Windows-International-Core-WinPE 입니다.

이 작업을 위해 이미 윈도 시스템 이미지 관리자를 실행했다고 가정하고 설명하겠습니다.

윈도 설치 프로그램과 언어 설정

윈도 설치 프로그램과 관련한 언어 및 지역화 구성 요소는 Microsoft-Windows-International-Core-WinPE 입니다. 테크넷 문서에서는 다음과 같이 설명하였습니다.

The Microsoft-Windows-International-Core-WinPE component specifies the default language, locale, and other international settings to use during Windows Setup or Windows Deployment Services installations.

위의 내용을 한국어로 옮기면, "Microsoft-Windows-International-Core-WinPE 구성 요소는 윈도 설정 또는 윈도 배포 서비스 설치를 하는 동안 사용할 기본 언어, 지역화 및 다른 국제화 설정을 지정합니다."라는 뜻이다.

지난번 작업에서 만든 AutoUnattend.xml 응답 파일을 윈도 시스템 이미지 관리자에서 불러옵니다. 여기에는 이미 Microsoft-Windows-International-Core-WinPE 구성 요소가 설정되어 있습니다.

Microsoft-Windows-International-Core-WinPE 등록 정보

Microsoft-Windows-International-Core-WinPE 등록 정보 : 현재는 대부분 영어이다.

설정에 나타난 항목을 살펴보겠다. 이 항목은 크게 세 부분으로 나뉜다. 첫째는 로케일 관련 부분, 둘째는 언어 관련 부분, 셋째는 키보드 드라이버 관련 부분이다.

  • 로케일 관련 : 언어 인식자(language identifier) 또는 로케일 아이디(locale ID)를 지정한다. 이때 언어 인식자는 en-US 또는 ko-KR과 같은 값을 일컫으며, 로케일 아이디는 16진수 및 10진수로 이루어진 0409:00000409 또는 0412:00001042[각주:2]와 같은 값을 일컫는다.
    • InputLocale : 키보드 레이아웃과 입력 로케일 시스템을 지정한다.
    • SystemLocale : 유니코드를 지원하지 않는 프로그램에서 사용할 기본 시스템 로케일을 지정한다.
    • UserLocale : 사용자가 이용할 날짜, 시간, 통화, 숫자 표기 등을 설정한다.
    • 설정 : 위 세 항목은 현재 언어 인식자인 en-US로 되어 있는데, 모두 ko-KR로 바꾼다. 다만 InputLocale 항목에서는 로케일 아이디인 0412:00001042로 바꿀 수도 있다. 또한 InputLocale 항목에서는 여러 로케일을 지정할 수 있다. 예컨대 ko-KR; en-US; ja-JP 와 같은 꼴로 모두 표기할 수 있다.
  • 언어 관련
    • SetupUILanguage : 윈도 설치 또는 윈도 배포 서비스를 수행하는 동안 화면에 나타낼 기본 언어를 지정한다.
      • UILanguage : SetupUILanguage 항목의 값을 실제로 지정하는 요소이다. ko-KR을 지정한다.
      • WillShowUI : 사용자 인터페이스를 보여준다. 사용자 인터페이스는 위에서 키보드 종류 등을 설정하는 화면을 가리킨다. 무인 설치에서는 기본적으로 OnError 값이 주어져 있으며, 이는 오류가 발생할 때만 사용자 인터페이스를 보여준다는 뜻이다.
    • UILanguage : 사용자 인터페이스에서 사용할 기본 언어를 지정한다. 한국어를 사용해야 하므로 ko-KR을 지정한다.
    • UILanguageFallback : 시스템 기본 사용자 인터페이스 언어에서 부분 버전 언어팩을 사용하고 있을 때 대체할 언어를 지정한다. 현재 한국어의 경우 윈도 비스타에서는 기본 언어가 en-US, 부분 버전 언어팩은 ko-KR로 적용되어 있다. 윈도7의 상황은 알 수 없지만, 윈도 비스타의 경우와 비슷하리라 생각한다. 그러므로 이 값은 en-US를 지정하거나 공백으로 비워두자(→사용 가능 언어팩 참조).
  • 키보드 드라이버 관련
    • LayeredDriver : 한국어 키보드 또는 일본어 키보드에서 사용할 키보드 드라이버를 지정한다. 숫자를 입력하면 되며, 숫자에 따라 다음과 같은 드라이버를 선택하게 되며, 대부분 5를 입력하면 된다.
      • 1 : PC/AT 확장 키보드 (101/102-Key).
      • 2 : 한국어 PC/AT 101키 호환 키보드/MS 내추럴 키보드 (타입 1).
      • 3 : 한국어 PC/AT 101키 호환 키보드/MS 내추럴 키보드 (타입 2).
      • 4 : 한국어 PC/AT 101키 호환 키보드/MS 내추럴 키보드 (타입 3).
      • 5 : 한국어 키보드 (103/106 Key).
      • 6 : 일본어 키보드 (106/109 Key).

지금까지 Microsoft-Windows-International-Core-WinPE 구성 요소에 대한 설정을 하였다. 지금까지 작업한 내용은 아래와 같이 나타나야 한다.

대부분 한국어로 설정된 Microsoft-Windows-International-Core-WinPE 등록 정보

대부분 한국어로 설정된 Microsoft-Windows-International-Core-WinPE 등록 정보

윈도 시스템과 언어 설정

윈도 시스템과 관련한 언어 및 지역화 구성 요소는 Microsoft-Windows-International-Core 입니다. 테크넷 문서에서는 다음과 같이 설명하였습니다.

The Microsoft-Windows-International-Core component includes the language and input locale settings for the system and the user.

위의 내용을 한국어로 옮기면, "Microsoft-Windows-International-Core 구성 요소는 사용자와 시스템을 위한 언어 및 입력 로케일 설정을 포함하고 있습니다."라는 뜻이다.

윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창에 추가하기

윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창에 추가하기

위 그림에서 윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창의 oobeSystem 구성 단계에 추가한다.

참고로 윈도7을 설치한 다음 sysprep (시스프렙)을 이용하여 어떤 시스템에서도 부팅할 수 있는 만능 윈도7을 구성할 사람은 이 윈도의 언어 및 지역화 설정을 specialize 구성단계에 넣어서는 안 되며, 반드시 oobeSystem 구성 단계에 넣어야 한다. 왜냐하면 sysprep을 이용하여 만능 윈도7을 만들려면 generalize(일반화)를 해야 하는데, 그때 specialize 구성 단계에 해당하는 작업은 모두 제거하기 때문이다.

Microsoft-Windows-International-Core 등록 정보

Microsoft-Windows-International-Core 등록 정보 : 현재는 공백이다.

설정에 나타난 항목은 크게 두 부분으로 나뉜다. 첫째는 로케일 관련 부분, 둘째는 언어 관련 부분이다. 키보드 관련 부분은 없으며, 위 화면에 나타난 부분은 앞의 Microsoft-Windows-International-Core-WinPE 구성 요소를 참조하여 값을 넣기 바랍니다. 이름이 같은 항목에 같은 내용이 들어가게 하면 됩니다.

대부분 한국어로 설정된 Microsoft-Windows-International-Core 등록 정보

대부분 한국어로 설정된 Microsoft-Windows-International-Core 등록 정보

평가 및 실험 결과

4시 53분쯤에 시작하여 5시 20분쯤에 끝난 이번 설치는 설치 시간약 27분으로 종전 40~50분쯤에서 확연히 줄어서 좋았다. 하지만 키보드 설정 등을 제대로 하지 않아 처음에 한글 입력에 애를 먹었다. 결국 한국어 사용자 또는 한국 사용자를 위해서는 키보드, 언어 설정 등이 필요함을 절실하게 느꼈다.

앞서 세운 목표를 다시 새겨보자.

  1. 설치 과정에서 한글로 나오게 한다.
  2. 설치한 뒤에 한글로 나오게 한다.
  3. 키보드 종류를 한국어 키보드 (103/106키)로 설정한다.
  4. 오픈캡처의 메뉴가 알아볼 수 있는 문자로 나타나는지를 확인한다.

설치 과정

설치 과정은 한글로 나타났다(목표 1 달성).

한글로 나타나는 설치 과정

한글로 나타나는 설치 과정

설치 과정에서 맨 처음 나타난 디스크 파티션 설정

설치 과정에서 맨 처음 나타난 디스크 파티션 설정

실제로 설치를 시작하는 Windows 설치 단계

실제로 설치를 시작하는 Windows 설치 단계

설치 완료

설치 완료한 뒤에 바로 한글로 표기되고 있다(목표 2 달성).

한글로 나타나는 시작 메뉴 및 시계

한글로 나타나는 시작 메뉴 및 시계

키보드 종류

키보드 종류를 제어판  한국어 키보드 (103/106키)로 설정하여 윈도가 설치된 뒤에도 그렇게 인식되도록 한다는 목표였다. 그러나 설치를 끝내고 나서 보니 키보드는 한국어 키보드 (103/106키)로 설정되지 않았다.

표준 PS/2 키보드로 설정된 키보드 드라이버

표준 PS/2 키보드로 설정된 키보드 드라이버

목표 3 달성하지 못하였음을 확인하였다. MS테크넷 라이브러리를 검색하고, 나아가 구글링을 하였음에도 키보드를 설치과정에서 설정하는 작업에 대해서는 해답이 없었다.

응용 프로그램의 로케일

오픈캡처의 메뉴가 알아볼 수 있는 문자로 나타나는지를 확인한다는 목표는 달성했다(목표 2 달성). 추가적인 로케일 설정 없이도 오픈캡처에서 한글 메뉴가 잘 나타나고 있다.

추가적인 로케일 설정 없이 한글 메뉴가 잘 나타나는 오픈캡처

추가적인 로케일 설정 없이 한글 메뉴가 잘 나타나는 오픈캡처

다음 할 일

설치 응답 파일에 적용되는 무인 설치 설정 레퍼런스(Unattended Installation Settings Reference)에 대해 알아보자. 이 작업을 통해 키보드 설정에 대해 지속적으로 조사할 생각이다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 버추얼박스 가상머신에서 하드디스크를 C/D 드라이브를 분할하는 작업을 할 예정이다. [본문으로]
  2. 0000:00000000와 같은 꼴이며, 앞의 자주색 4자리는 16진수, 뒤의 빨간색 8자리는 십진수이다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)로 응답 파일을 열려면 우선 이미지를 불러온 뒤에 하는 편이 좋다. 그런데 막상 불러오고 나서 보니 이 응답 파일을 어떻게 만들고 고쳐야 하는지를 알 수 없었다. 결국 사용자 설명서 기능을 겸하고 있는 테크넷에 의존하기로 했다.

  • 참고 1 : 이 글은 AIK7을 설치했다고 가정하고 설명합니다. 그러므로 미리 AIK를 설치해 두는 것이 좋습니다.
  • 참고 2 : 이 문서는 그림이 많으므로 로딩이 늦더라도 참고 기다려 주십시오.
  • 주의 : 이 글은 버추얼박스 등의 가상머신에서 윈도7을 새로 설치한다는 가정 아래 쓰인 글입니다. 윈도7을 하드디스크에 직접 설치할 때에는 아무런 보증을 하지 않습니다.

기본 환경

기본적으로 윈도7의 최소 요구사항 가운데 다음 두 가지를 만족한다고 가정하고 실험하였다.

  • RAM 1G(32비트), RAM 2G(64비트)
  • HDD 40G(32/64비트)

자동 설치 도구는 Windows Automated Installation Kit for Windows 7를 사용하였다. 정확하게는 Windows System Image Manager(흔히 Windows SIM; 시스템 이미지 관리자)을 사용하였다. AIK7을 위해 추가 공간이 필요하며, 또한 작업을 위해 9GB 정도가 더 필요하다.

  • 실험에 쓰일 응답 파일은 %ProgramFiles%\Windows AIK\Samples 폴더에 있는 autounattend_sample.xml의 이름을 바꾸어 사용하였다.
  • 실험에 쓰일 설치본은 앞서 구한 윈도7 RC 7100 디스크 이미지 파일 및 거기에 한글을 덧입힌 것을 이용하였다. 하나는 기본적인 상황을 알기 위해서이고, 다른 하나는 내가 최종적으로 설치할 것이다.
  • 윈도 시스템 이미지 관리자에 대한 설명 등은 테크넷과 AIK7에 포함된 도움말 파일을 참조하였다.

실험 목표

일단 이것도 실험이니 목표가 있어야겠다.

  1. 제품 번호를 자동 입력
  2. 사용자 이름과 컴퓨터 이름을 자동 입력
  3. 프로그램 폴더와 사용자 폴더를 D 드라이브로 옮겨보자.

윈도 시스템 이미지 관리자와 구성 단계 및 구성 요소

파일 읽어오기

윈도 시스템 이미지 관리자를 실행하여 윈도 이미지 파일과 응답 파일을 불러온다. 이미지를 먼저 불러오고, 나중에 응답 파일을 불러온다.

반드시 작업할 에디션을 선택한다.

반드시 작업할 에디션을 선택한다.

윈도 이미지 파일을 읽어올 때는 작업할 에디션을 선택해야 한다.

응답 파일과 윈도 이미지를 연결하겠느냐고 묻는 알림말

응답 파일과 윈도 이미지를 연결하겠느냐고 묻는 알림말

Autounattend.xml 파일을 읽어들이면 위와 같은 안내말이 나타난다. 알림말의 내용은 읽어온 응답 파일을 방금 선택했던 에디션(여기서는 Windows 7 UNTILMATE Windows image)에 연결하겠느냐고 묻고 있다. 연결하지 않으려면 아니오를 클릭하라고 하고 있다.

여기에서 아니오를 눌렀다.

윈도 이미지 파일과 응답 파일을 불러온 화면

윈도 이미지 파일과 응답 파일을 불러온 화면

  • 주의 : 모든 작업이 끝난 뒤에는 반드시 이미지 파일을 닫은 뒤윈도 시스템 이미지 관리자를 종료해야 한다. 그렇지 않으면 임시 폴더에 윈도 이미지 파일을 마운트 한 상태로 남겨두게 된다. 그 용량이 무려 8기가바이트를 넘어가므로 주의하기 바랍니다.
  • 참고 : 윈도 이미지(Windows Image) 파일에 대한 정보가 없어도 응답 파일은 정상 작동한다. 다만 여기에서는 구성 요소를 추가할 때 윈도 이미지에 나타나는 구성 요소(Components)를 참조하여 추가하면 쉽기 때문에 윈도 이미지를 먼저 읽어들였다.

구성 단계 및 구성 요소

구성 단게는 다음과 같으며, 그에 대한 자세한 설명은 테크넷(한국어)을 참조하기 바랍니다.

  • windowsPE
    Windows PE 옵션과 기본 Windows 설치 옵션을 구성합니다.
  • offlineServicing
    Windows 이미지에 업데이트를 적용합니다. 또한 소프트웨어 픽스, 언어 팩, 기타 보안 업데이트 등의 패키지를 적용합니다.
  • specialize
    시스템별 정보를 만들고 적용합니다. 예를 들어 네트워크 설정, 국가별 설정 및 도메인 정보를 구성할 수 있습니다.
  • generalize
    참조 이미지에서 유지해야 하는 다른 Windows 설정을 구성할 수 있을 뿐만 아니라 sysprep /generalize 명령을 최소로 구성할 수 있도록 합니다.
    generalize 단계는 sysprep /generalize 명령을 실행하는 경우에만 실행됩니다.
  • auditSystem
    사용자가 감사 모드로 컴퓨터에 로그온하기 전에 Windows가 시스템 컨텍스트에서 실행되는 동안 무인 설치 설정을 처리합니다. auditSystem 단계는 감사 모드로 부팅하는 경우에만 실행됩니다.
  • auditUser
    사용자가 감사 모드로 컴퓨터에 로그온한 후에 무인 설치 설정을 처리합니다. auditUser 단계는 감사 모드로 부팅하는 경우에만 실행됩니다.
  • oobeSystem
    Windows 시작(흔히 "설치 완료된 뒤 첫 번째 실행"이라고 부른다)이 실행되기 전에 Windows에 설정을 적용합니다.

윈도 시스템 이미지 관리자에서는 위에서 설명하는 구성 단계마다 구성 요소를 설정할 수 있게 되어 있다.

응답 파일을 불러와서 모두 펼친 화면

응답 파일을 불러와서 모두 펼친 화면

위의 그림을 보면 구성 요소 항목(Components)에서 구성 단계가 1부터 7단계까지 있는데, 앞서 설명한 바와 같다. 각각의 구성 단계는 윈도7을 설치할 때 generalize 구성 단계를 제외한 나머지 여섯 단계가 순서대로 이루어지게 되며, 각각 미리 구성한 바를 따르게 된다.

실험 작업

제품 번호 입력 1

제품 번호(Product Key)는 windowsPE 구성 단계에서 작업하게 된다. 마침 응답 파일을 불러와서 모두 펼친 화면은 제품 번호를 입력하려고 선택한 화면이다. windowsPE 구성 단계에서 x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey 항목이다. 이때 x86_Microsoft-Windows-Setup_neutral에서 실제 구성 요소 이름은 자주색으로 표시한 부분이고, 앞의 x86과 뒤의 뉴트럴(neutral)은 일종의 꼬리표(tag)이다. 앞으로는 태그 떼고 표기하겠다.

속성 창 내용

속성 창 내용

그때 속성 창을 보면 위 그림처럼 보인다. 참고로 아랫부분은 하얀 공백이라서 삭제했다.

<--  REPLACE WITH PRODUC라는 부분은 <--  REPLACE WITH PRODUCT KEY  -->라는 메시지가 잘린 것이다. 이것은 메시지 창에서 오류가 있음을 나타내고 있다.

ProductKey 항목에서 유효성 오류가 있다고 알리고 있다.

ProductKey 항목에서 유효성 오류가 있다고 알리고 있다.

위와 같이 ProductKey 항목의 Key 요소에서 오류가 있음을 알려주고 있다. 위 속성 창에 윈도7 RC 버전을 받을 때 얻은 등록 번호를 입력해 준다.

제품 번호 입력 2

그런데 ProductKey라는 이름은 다른 곳에 또 있다. 제품 번호 입력 1에서 넣은 값은 설치 과정에서 필요한 값이고, 여기 제품 번호 입력 2에서 쓰는 값은 액티베이션(Activate Windows)에서 쓰는 값이다. 설치만 하겠다면 이 값을 꼭 넣을 필요는 없다. 어차피 설치 과정에서 필요한 값은 이미 넣었고 액티베이션은 설치한 뒤에야 하게 되니 말이다. 또한 올바른 제품번호을 가지고 있지 않다면 이 항목은 반드시 비워 두기 바란다.

이 ProductKey 값은 specialize 구성 단계에서 Microsoft-Windows-Shell-Setup\ProductKey 키에 넣게 된다. 다만 윈도 이미지 창에서는 찾을 수 없었고, 테크넷 Microsoft-Windows-Shell-Setup▶ProductKey에서 찾을 수 있었다. 윈도 이미지 창에서 찾을 수 없었던 이유는 이것이 항목이 아닌 이기 때문이다. 윈도 이미지 창에는 항목만 나타나고 키는 나타나지 않는다.

응답 파일의 specialize 구성단계와 Microsoft-Windows-Shell-Setup 항목의 속성

응답 파일의 specialize 구성단계와 Microsoft-Windows-Shell-Setup 항목의 속성

Microsoft-Windows-Shell-Setup 항목의 속성을 보면 ProductKey가 존재한다. 여기에 알맞은 값을 넣어 주면 된다. 넣지 않아도 되며, Microsoft-Windows-Setup\UserData\ProductKey 항목의 값과 달라도 된다.

이름과 소속

참고로 이름(FullName)과 소속(Organization)은 UserData 항목에서 따로 하위 항목이 없다. 그렇다면 당연히 그 항목에서 하위 항목이 아닌 키 값으로 존재함을 뜻한다. 이것을 확인하려면 이미지 파일 창을 살펴보아야 한다.

Windows Image 창의 내용

Windows Image 창의 내용

위의 Windows Image 창의 내용에서 확인했듯이 windowsPE 구성 단계에서 Microsoft-Windows-Setup\UserData 항목에는 하위 항목이 ProductKey 항목뿐이다.

속성에는 이름(FullName)과 소속(Organization)을 각자 넣어 주자. 참고로 배포용으로 만들 생각이면 넣지 않는 것이 좋다.

사용자 이름과 컴퓨터 이름을 자동 입력

사용자 이름과 컴퓨터 이름은 설치 과정에서 넣게 되는 사용자 이름과 컴퓨터 이름을 가리킨다.

설치 과정에서 사용자 이름과 컴퓨터 이름을 입력하는 화면

설치 과정에서 사용자 이름과 컴퓨터 이름을 입력하는 화면

컴퓨터 이름은 쉽게 찾을 수 있었다. 응답 파일의 specialize 구성단계와 Microsoft-Windows-Shell-Setup 항목의 속성 그림에서 속성 창에 보면 ComputerName 키가 있다. 여기에 컴퓨터 이름을 넣으면 된다. 자신이 원하는 컴퓨터 이름을 넣으면 된다. 배포용으로 만들 생각이면 평범하게 User-PC라고 하는 것이 좋다.

그런데 UserName이라는 이름은 잘 보이지 않았다. 아니 UserName이라는 이름은 많이 보였으나, 모두 ComputerName 키와 함께 쓰이는 이름이 아니었다. 그러다가 위의 설치 과정에서 사용자 이름과 컴퓨터 이름을 입력하는 화면을 문득 바라보다가 가능성이 있는 이름을 알게 되었다. 그것은 account였다. 위 그림에서 파란 글씨로 나타나 있다.

Microsoft-Windows-Shell-Setup\UserAccounts\LocalAccounts 항목을 응답 파일에 추가해야 한다. 이때 실제로 설치하려면 auditSystem 구성 단계가 아닌 oobeSystem 구성 단계로 해야 한다.

윈도 이미지 창에서 응답 파일 창으로 항목을 추가하는 작업

윈도 이미지 창에서 응답 파일 창으로 항목을 추가하는 작업

윈도 이미지 창에서 응답 파일 창으로 항목을 추가하는 작업 일부

윈도 이미지 창에서 응답 파일 창으로 항목을 추가하는 작업 일부

위의 그림처럼 윈도 이미지 창에서 응답 파일 창에 추가할 항목을 선택하여 오른쪽 클릭한다. 그 뒤 활성화된 항목을 선택(Add Setting to Pass 7 oobeSystem)하면 자동으로 추가해 준다. 그게 아니라면 맨 아래에 있는 Copy를 선택하여 클립보드에 복사하였다가 응답 파일 창에 붙여넣기를 하면 된다.

윈도 이미지 창에서 붙여넣기한 항목과 그 속성

윈도 이미지 창에서 붙여넣기한 항목과 그 속성

이때 붙여넣기를 하면 그 색깔이 위와 같이 옅은색을 띈다. 테크넷 LocalAccount 문서의 설명에 따르면, 윈도 설치 과정에서 만드는 계정이라고 한다. UserAccounts 항목에는 그밖에도 DomainAccounts 항목과 AdministratorPassword 항목이 있으나 둘 다 윈도 설치 과정의 ComputerName 키와는 관련이 없었다. 그 부분에 대해서는 테크넷 Settings to Use for Automating Windows Welcome 문서를 참고하기 바랍니다.

아무튼 LocalAccount 항목의 속성과 에 대해 살펴보자. 아래의 키는 모두 255자까지 기록할 수 있다.

  • Name (이름) : LocalAccount 항목에서 지정할 사용자 이름.
  • Group (그룹) : LocalAccount 항목에서 새로운 사용자가 지정될 때 추가될 그룹의 이름으로, 이미 존재하는 그룹의 이름을 지정해야 한다.
  • DisplayName (보여줄 이름) : LocalAccount 항목에서 지정한 사용자 이름을 감추고 밖으로 보여줄 이름
  • Description (설명) : LocalAccount 항목에서 지정한 계정의 설명을 적는다.
  • Password (암호) 항목 : LocalAccount 항목과 짝이 되는 암호를 지정한다. 암호를 지정하면 설치 과정에서는 암호 입력을 감추게 된다.

값을 지정하지 않으면 위 윈도 이미지 창에서 붙여넣기한 항목과 그 속성 그림과 같이 옅은색으로 있게 된다.

이때 Name은 반드시 지정해야 한다. Group은 다음과 같은 값이 있으므로, 그 가운데 골라서 넣으면 된다.

  • AccountOperators
  • Administrators
  • BackupOperators
  • CryptoOperators
  • DCOMUsers
  • Guests
  • IUsers
  • NetworkConfigurationOperators
  • PerfLoggingUsers
  • PerfMonitoringUsers
  • PowerUsers
  • PrintOperators
  • RemoteDesktopUsers
  • Replicator
  • SystemOperators
  • Users

한편 LocalAccount 항목은 목록 항목이므로 여러 개를 한꺼번에 생성할 수도 있다. 만약 배포용으로 1개 계정만 생성한다면 User와 같은 평범한 이름을 넣는 것이 좋다.

그 다음에 암호도 함께 지정해 두는 것이 보안상 유리하다. 하위키인 PassWord에 암호를 입력하면 된다. 지금 넣지 않으면 어차피 설치 과정에서 물어보므로 미리 지정하는 것이 낫다고 생각한다.

암호 지정 화면

암호 지정 화면

암호 지정 화면에서 속성 창을 살펴보면 윗부분에 PlainText 요소가 true로 지정되어 있다. 이 요소는 아래 Value 값이 평문(암호문이 아닌 문장)으로 지정된다는 뜻이다. 이것이 나중에 저장될 때는 PlainText 요소는 false로 바뀌면 Value 요소의 값은 암호화된 값(암호문)으로 바뀌게 된다. AutoUnattend.xml 파일을 직접 고칠 때에는 PlainText 요소의 값을 반드시 true로 하여 암호를 입력해야 한다.

프로그램 폴더와 사용자 폴더를 위치 바꾸기

프로그램 폴더와 사용자 폴더의 위치는 Microsoft-Windows-Shell-Setup\FolderLocations 항목에서 지정한다. FolderLocations 항목에는 ProfilesDirectory 키ProgramData 키가 존재한다. 이 항목을 응답 파일에 추가하여 두 키에 값을 지정하면 된다.

ProfilesDirectory 키가 지정되지 않으면 %systemdrive%\Users 폴더를 가리키며, ProgramData 키가 지정되지 않으면 %systemdrive%\ProgramData 폴더를 가리키게 된다.

ProfilesDirectory 키와 ProgramData 키를 지정한 화면

ProfilesDirectory 키와 ProgramData 키를 지정한 화면

다만 이 FolderLocations 항목에 대해서는 약간의 문제가 있는 듯이 보인다. 테크넷의 FolderLocations 문서에서 이 값을 바꾸면 업데이트나 핫픽스의 적용에 실패할 수도 있다고 밝히고 있다.

유효성 검사

지금까지 작성한 응답 파일의 유효성을 검사한 뒤 저장합니다. 유효성 검사는 Tools 메뉴에서 Validate Answer File을 선택하면 됩니다.

유효성 검사

유효성 검사

지금까지 제대로 했다면 아래 그림처럼 Messages 창에 No warnings or errors.라는 메시지가 나타나야 합니다.

만약에 오류가 있다고 한다면 위에서부터 차근차근 읽으면서 검토해 보기 바랍니다.

추가 사항

테크넷의 Windows Vista 배포 단계별 가이드를 참조할 때 응답 파일에 넣을 추가 항목은 다음과 같다고 여겨진다. 참고로 윈도7용은 아직 없었다.

  • Windows PE 구성 단계

    • Microsoft-Windows-Setup\DiskConfiguration : 아래 두 항목은 단순히 설치할 디스크를 설정하는 항목으로 여겨진다. 아래 두 항목을 모두 설정하는 대신 설치 과정에서 파티션 설정 부분을 반드시 보이도록 고쳤다.

      • Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition
      • Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition

        위 그림처럼 응답 파일에서는 DiskConfiguration의 하위 요소를 모두 삭제했고, 속성 창에서는 WillShowUI 요소의 값을 Always로 고쳤다. 이것은 자동 응답 파일은 일반적으로 사용자에게 묻지 않는데, 반드시 묻게 하라(WillShowUI가 Always하라)는 뜻이다. 이 부분을 안 건드리면 숨김 파티션은 200 MB이고, 나머지를 윈도 파티션으로 설정해 준다.
    • Microsoft-Windows-Setup\ImageInstall\OSImage\InstallTo : 샘플 AutoUnattend.xml 파일의 설정을 그대로 둔다.
    • Microsoft-Windows-Setup\UserData : 위에서 이미 설정했다.
    • Microsoft-Windows-International-Core-WinPE : 샘플 AutoUnattend.xml 파일의 설정을 그대로 둔다.
  • oobeSystem 구성 단계

    • Microsoft-Windows-Shell-Setup\OOBE : 샘플 AutoUnattend.xml 파일의 설정을 그대로 둔다.
    • Microsoft-Windows-Deployment\Reseal : 약간 고쳐야 한다. 이때 Reseal은 재봉인이라는 뜻이다.

      • Mode : Audit 값을 가지고 있으며, OOBE로 고쳐야 한다. 이 설정대로라면 감사 모드로 시작한다. 이것은 OOBE를 생략하고 바탕화면을 보여주게 된다. 이때 FolderLocations 요소와 UserAcounts 요소가 적용되지 않는다. 다시 말해 감사 모드로 시작하면 설치 마지막 과정에서 OOBE(Out-Of-Box Experience)를 거치지 않고 바로 바탕화면을 보여주게 된다는 뜻이다. 우리는 앞서 설정한 FolderLocations 요소와 UserAcounts 요소의 적용을 확인해야 하므로 반드시 이 값을 고쳐야 한다. 참고로 실제 설치 단계는 OOBE의 앞단계에서 끝나고, OOBE는 사용자를 위한 환경 설정 단계이다. 그러므로 시험용이 아니라 배포용은 반드시 OOBE로 설정되어야 한다.
      • ForceShutdownNow 요소 : false 값을 가지고 있다. 이것을 true로 설정하면 설치한 뒤에 윈도7을 사용할 수 없게 된다.
  • auditSystem 구성 단계

    • Microsoft-Windows-Shell-Setup\Autologon : 자동로그인. 참고로 이것은 oobeSystem 구성 단계에 설정할 수도 있다. 이때 앞서 만든 계정 가운데 하나를 골라야 한다.

그밖에도 oobeSystem 구성 단계에서 TimeZone을 설정할 필요가 있습니다.

  • Microsoft-Windows-Shell-Setup\TimeZone : 넣을 값은 Korea Standard Time 이다. 이 값이 공백이면 설치 과정에서 물어 본다.

타임존 설정에 필요한 값은 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 레지스트리를 참조하면 됩니다.

설치 및 확인

이미지 만들기 및 가상머신 시동

먼저 이미지 파일을 만들어서 버추얼박스에 그 이미지를 등록합니다. 이미지를 만들 때에는 윈도7 CD나 ISO 이미지에서 윈도 7의 파일을 복사한 뒤 CD의 루트 디렉터리가 될 곳에 응답 파일(AutoUnattend.xml 파일)을 복사한 뒤에 작업합니다.

응답 파일(AutoUnattend.xml 파일)을 윈도7 작업 폴더에 복사한 화면

응답 파일(AutoUnattend.xml 파일)을 윈도7 작업 폴더에 복사한 화면

그 뒤에 그 이미지를 CD 이미지로서 가상머신에서 불러들여 부팅하면 됩니다.

설치 과정

가상머신에서 CD 부팅을 시작한 뒤 대략 1~2분이 지나자 설치할 곳을 묻는 화면, 곧 곧 설치 파티션을 설정하는 화면이 나타난다.

하드디스크 파티션 설정 및 설치 드라이브 선택 화면

하드디스크 파티션 설정 및 설치 드라이브 선택 화면

위의 그림처럼 40기가 하드 디스크를 20958 MB와 20000 MB로 나누었다. 그러자 시스템/C 드라이브는 각각 100 MB와 20858 MB로 나뉘었다.

그리고 위의 그림처럼 반드시 Patition 2를 선택하여 설치해야 한다. 현재 하늘색으로 선택된 곳이 설치할 드라이브이다.

설치한 직후 OOBE를 거치고 바탕화면이 나타난 뒤의 화면 (1024×768 화면)

설치한 직후 OOBE를 거치고 바탕화면이 나타난 뒤의 화면 (1024×768 화면)

설치가 끝나고 OOBE 작업까지 마치면 바탕화면이 나타난다. 그런데 역시나 업데이트 설치가 가장 먼저 나타난다. ^^a

평가 및 실험 결과

4시 53분쯤에 시작하여 5시 20분쯤에 끝난 이번 설치는 설치 시간약 27분으로 종전 40~50분쯤에서 확연히 줄어서 좋았다. 하지만 키보드 설정 등을 제대로 하지 않아 처음에 한글 입력에 애를 먹었다. 결국 한국어 사용자 또는 한국 사용자를 위해서는 키보드, 언어 설정 등이 필요함을 절실하게 느꼈다.

앞서 세운 목표를 다시 새겨보자.

  1. 제품 번호를 자동 입력
  2. 사용자 이름과 컴퓨터 이름을 자동 입력
  3. 프로그램 폴더와 사용자 폴더를 D 드라이브로 옮기기

설치 과정

설치 과정에서 제품 번호가 자동으로 입력되어 사용자에게 보이지 않았다(목표 1 달성).
또한 사용자 이름과 컴퓨터 이름도 자동으로 입력된 듯이 보인다(목표 2 달성).
그러나 프로그램 폴더와 사용자 폴더를 D 드라이브로 옮기는 작업에 대해서는 알 수 없었다(목표 3 미확인).

시동 과정

일단 윈도7을 종료했다가 다시 시동했다. 시동 과정에서 자동로그인을 설정해 두었기 때문에 암호를 묻는 화면이 나타나지 않았다. 오랫동안 보던 해바라기를 보지 않자 왠지 싱숭생숭했다. ^^a

이번에는 위와 같은 해바라기 그림을 보지 않았다.

이번에는 위와 같은 해바라기 그림을 보지 않았다.

문제는 위와 같은 로그인 화면이 보이지 않자 내가 사용자 이름을 제대로 입력했는지 알기가 힘들었다. ^^;

사용자 계정명(사용자 이름)을 보여주는 화면

사용자 계정명(사용자 이름)을 보여주는 화면

그러다가 시작 단추를 클릭하자 사용자 이름을 보게 되었다. 지금까지 줄기차게 봐 왔음에도 그게 사용자 이름이라고 인식하지 못했던 것이다. 위 그림에서 노랑색 네모 표시된 곳이다(목표 2 달성 확인).

그 뒤 숨김 파일 시스템 폴더 등을 보이게 폴더 설정을 바꾼 다음 탐색기를 열었다.

탐색기에서 보이는 Users 폴더와 ProgramData 폴더

탐색기에서 보이는 Users 폴더와 ProgramData 폴더

탐색기에서 숨김 파일 및 시스템 파일을 볼 수 있게 하면 위처럼 Users 폴더와 ProgramData 폴더가 D드라이브에 존재함을 알 수 있다(목표 3 달성 확인).

명령 프롬프트에서 보이는 Users 디렉터리와 ProgramData 디렉터리

명령 프롬프트에서 보이는 Users 디렉터리와 ProgramData 디렉터리

명령 프롬프트에서 위와 같이 확인할 수 있다(목표 3 달성 확인).

물론 C 드라이브에 존재하는 Program Files 폴더가 거슬리기는 하지만 어디까지나 그 폴더는 하위 호환성을 위해 존재하는 폴더이다.

오늘까지 딱 1주일 걸려 성공한 자동 설치 응답 파일 설정인데, 막상 끝내고 나서 보니 별거 아니었다. 언제나 그렇듯이 끝내고 보면 콜럼버스의 달걀이다.

  • 추가 : 글 쓰고 나서 보니 허전했다. 바로 작업한 AutoUnattend.xml 파일을 올리지 않았던 것이다. 며칠이 지나고야 알게 되어 지금에야 올립니다. 압축을 풀면 xml 파일이 나옵니다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)로 응답 파일을 열려면 우선 이미지를 불러온 뒤에 하는 편이 좋다. 그런데 막상 불러오고 나서 보니 이 응답 파일을 어떻게 만들고 고쳐야 하는지를 알 수 없었다. 결국 사용자 설명서 기능을 겸하고 있는 테크넷에 의존하기로 했다.

먼저 AIK를 이루는 각 구성요소의 이름이나 용어 등에 대해 알아보기로 하자.

  • 참고 : 이 글은 AIK7을 설치했다고 가정하고 설명한다. 그러므로 미리 AIK를 설치해 두는 것이 좋다.

용어

이 용어는 테크넷 라이브러리 및 WAIK.chm 파일을 참조하여 번역/수정하였습니다.

  • 응답 파일 (Answer file) :
    윈도 비스타/윈도 7의 설치 대화 상자에 대한 응답을 스크립팅[각주:1] Windows 설치용 응답 파일은 일반적으로 Unattend.xml 또는 AutoUnattend.xml(대문자/소문자 구별 없음)라는 파일명을 가지며, Windows SIM(Windows 시스템 이미지 관리자) 또는 CPI API(구성요소 플랫폼 인터페이스 API)를 사용하여 응답 파일을 만들고 고칠 수 있다.
  • 카탈로그 파일 (Catalog file) :
    윈도 이미지의 모든 설정과 패키지의 상태를 저장한 이진 파일로서 확장자는 .CLG 이다. 카탈로그를 만들 때 윈도 이미지(.wim)의 모든 설정 목록을 응답 처리합니다. 다시 말해 설치 과정에서 일어날 수 있는 요청에 대한 응답을 처리한다는 뜻입니다. 윈도 이미지가 바뀌면 카탈로그도 바뀌어야 합니다.
  • 구성 요소 (Component) :
    특정 Windows 기능이나 그 기능의 일부에 대한 설정, 리소스 및 파일을 지정하는 윈도 운영 체제의 일부를 구성요소라고 부른다.
  • 구성 단계 (Configuration pass) :
    윈도 설치의 한 단계이다. 윈도 운영체제의 각 부분(구성요소)은 서로 다른 구성 단계를 거쳐 설치합니다. 그러한 하나 이상의 구성 단계에 적용할 무인 설치를 설정할 수 있습니다.
  • 구성 집합 (Configuration set) :
    사전 설치 과정(preinstallation process)을 제어하고 제조업체의 사용자 지정 정보를 정의하는 필수 파일이 들어 있는 파일 및 폴더 구조입니다.
  • 배포 공유 (Distribution share) :
    설치하는 윈도 제품의 원본 파일이 들어 있는 폴더입니다. 이 폴더에 추가 장치 드라이버와 응용 프로그램 파일도 들어 있을 수 있습니다. 이 폴더는 수동으로 또는 Windows SIM(시스템 이미지 관리자)을 사용하여 만들 수 있습니다.
  • 드라이버 경로 (Driver path) : 하드웨어 장치가 제대로 작동할 수 있도록 하는 소프트웨어의 검색 위치를 나타내는 경로이다.
  • 이미지 값 (Image value) : 윈도 이미지에서 구성 설정의 값.
  • 목록 항목 (List item) :
    여러 항목을 포함할 수 있는 구성 설정입니다. 예컨대 인터넷 익스플로러 즐겨찾기 목록은 0개 이상의 즐겨찾기 항목을 포함할 수 있습니다.
  • 패키지 (Package) :
    윈도 기능을 변경할 수 있게 마이크로소프트에서 OEM 고객에게 제공하는 파일 모음입니다. 패키지 종류에는 서비스 팩, 보안 업데이트, 언어 팩, 핫픽스 등이 있습니다. 패키지의 예로는 프로덕트(Product), 윈도 파운데이션(Windows Foundation) 및 기능팩(FeaturePack) 패키지가 있습니다.
  • 설정 (Setting) : 프로그램 또는 운영체제 구성의 매개 변수.
  • 동기 명령 (Synchronous command) :
    윈도를 설치하는 동안 응용 프로그램 또는 그밖에 다른 실행 파일을 실행할 수 있도록 합니다. 명령이 실행되는 단계를 지정할 수 있습니다.
  • 응답 파일 유효성 검사 (Validate answer file) :
    응답 파일을 윈도 SIM에서 저장하기 전에 먼저 그 설정을 검사해야 합니다. 응답 파일의 유효성 검사에 성공하면 응답 파일의 모든 설정값을 윈도 이미지에 적용할 수 있습니다.
  • 윈도 기능 (Windows feature) : 사용하거나 사용할 수 없게 설정할 수 있는 윈도의 선택적 기능.
  • 윈도 이미지 파일 (Windows image file) :
    디스크 볼륨에서 윈도 설치본을 복제하는 폴더 및 파일 모음이 들어 있는 한 개의 압축 파일.

Windows SIM 아키텍처 

Windows 시스템 이미지 관리자 아키텍처

윈도 SIM이 동작하는 방식을 보여주는 그림 (저작권은 마이크로소프트에 있습니다.)

윈도 SIM이 동작하는 방식을 보여주는 그림 (저작권은 마이크로소프트에 있습니다.)

Windows 시스템 이미지 관리자의 구성

윈도 SIM 창

다음 섹션에서는 Windows SIM 창을 설명합니다.

창은 위 그림처럼 구성되어 있습니다.

  • 배포 공유 (Distribution Share)
  • 응답 파일 (Answer file)
  • 속성 (Properties)
  • 윈도 이미지 (Windows Image)
  • 메시지 (Messages)

각각 자신의 이름이 맞는 내용이 나타납니다. 배포 공유 창에는 배포에 포함할 내용(설치하는 윈도 제품의 원본 파일의 내용)이 들어 있고, 응답 파일 창에는 읽어온 응답 파일을 구성하는 설정 내용이 들어 있습니다. 윈도 이미지 창에는 읽어온 윈도 이미지에 포함된 설정 내용을 포함하고 있습니다. 속성 창에는 응답 파일 창과 윈도 이미지 창에서 선택한 요소에 대한 속성을 나타내 주며, 메시지는 각각의 상황이나 명령 등에 대한 알림말을 나타내 줍니다.

윈도 이미지 창과 응답 파일 창

윈도 이미지 창에는 구성요소와 패키지가 보이며, 응답 파일 창에도 구성요소와 패키지가 보입니다. 이것은 둘 다 같은 이름을 가지게 됩니다. 다시 말해 응답 파일 창에 x86_Microsoft-Windows-Setup_neutral 구성요소가 있다면 윈도 이미지 창에서 그것을 찾을 수 있어야 합니다. 그것을 찾지 못한다면 나중에 응답 파일 유효성 검사에서 오류가 나타나게 됩니다.

반대로 윈도 이미지 창에서 구성요소 하나를 선택하여 응답 파일 창으로 보낼 수 있습니다.

위의 그림에서는 응답 파일을 새로 만들기하여 아무런 응답도 없는 상태이다.

이때 구성요소는 x86_Microsoft-Windows-Shell-Setup_neutral로 하였고, 하위 항목으로 FirstLogonCommands(첫 실행 때 실행할 프로그램)를 선택했다. 이 항목은 WinNT.sif 파일에서 [GuiRunOnce] 항목과 비슷하다.

이때 이 항목에서 마우스 오른쪽 클릭하면 여러 메뉴 가운데 Add Setting to Pass 7 oobeSystem만 활성화된다. 이것은 곧 구성 단계 7에만 포함될 수 있고 다른 곳에는 포함될 수 없다는 뜻이다. 만약 이것은 구성 단계 6, 곧 Pass 6 auditUser에 포함시키면 나중에 응답 파일 유효성 검사에서 오류가 있다고 알려주게 된다.

위 그림에서는 앞의 그림과 같은 구성요소인데, 하위 항목이 ClientApplications로 하였더니, 메뉴가 3개 활성화된다. 이처럼 각각의 구성요소 또는 그 하위항목에 따라서 활성화되는 응답 파일의 구성요소가 다르다. 이것을 잘 끼워맞춰서 우리가 원하는 답을 구해야 한다.

아울러 이때 알아둘 점은 윈도 이미지 창에서는 아무리 해도 속성을 고칠 수 없다. 다시 말해 윈도 이미지 창에서 구성요소를 선택했을 때 속성 창에 나타나는 내용은 기본값이며, 또한 읽기전용 속성이다. 이것을 고치고 싶으면 응답 파일 항목으로 보낸 다음 그 응답파일 항목에서 고쳐야 한다.

다음 할 일

이제 이것을 이용하여 설치 응답 파일을 만들어 보기로 하자.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 스크립팅은 스크립트를 이용한 작업(스크립트 작업) 또는 스크립트 작업처럼 일괄적으로 처리되는 작업을 가리키며, 그러한 작업 환경(스크립팅 환경)을 가리킬 때도 있다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

Windows Automated Installation Kit for Windows 7(Windows 7용 윈도 자동 설치 도구)는 흔히 AIK로 불리며, 윈도 설치에 필요한 여러 가지를 설정할 수 있게 해 주는 프로그램입니다. 물론 윈도2000이나 윈도XP에도 자동 설치 도구가 있었으나, 그것은 윈도 설치 디스크(흔히 윈도CD)에 있는 DEPLOY.CAB 파일에 포함되어 있었다. 그것은 윈도CD의 <윈도CD>\SUPPORT\TOOLS 폴더에 들어 있다. 정확한 윈도 배포 도구의 파일명은 setupmgr.exe 입니다.

그런데 이러한 자동 설치 도구에서 만들어내는 결과물은 무엇일까? 그것은 바로 응답 파일(answer file)입니다. 그렇게 만들어진 응답 파일에는 설치 과정에서 설치 프로그램이 사용자에게 묻는 바를 미리 지정할 수 있습니다.

지금까지 윈도7의 설치 폴더를 바꾸어 보고자 노력했지만 별 다른 성과가 없었습니다. 기대를 걸었던 vLite에서도 그러한 설정이 존재하지 않았지요. 응답 파일이나 자동 설치, 무인 설치 등을 검색해도 설치한 다음에 사용자 폴더를 바꾸는 방법만 검색될 뿐이었다. 예컨대 ArchVista 님의 사용자 폴더 요소들(문서, 사진, 동영상...)을 옮기기 등이 그것입니다.

그러다가 우연히 환경변수를 검색하게 되었습니다. 그때 나온 검색 결과 가운데 하나가 테크넷의 UserData 문서FolderLocations 문서인데, 응답 파일을 직접 만들면 해결될 수도 있다는 실마리를 얻게 되었습니다.[각주:1]

UserData 문서에 있는 XML 예제

UserData 문서에 있는 XML 예제

FolderLocations 문서에 있는 XML 예제

FolderLocations 문서에 있는 XML 예제

특히 FolderLocations 문서는 나에게 중요한 힌트를 주었다.

  • 참고 : 이 문서에서는 실제 응답 파일을 작성하지는 않습니다. 이 문서는 어디까지나 안내문실험 소개입니다.

AIK7과 응답 파일 실험에 쓰인 하드웨어 환경 및 프로그램

기본적으로 윈도7의 최소 요구사항 가운데 다음 두 가지를 만족한다고 가정하고 실험하였다.

  • RAM 1G(32비트), RAM 2G(64비트)
  • HDD 16G(32비트), HDD 20G(64비트)

자동 설치 도구는 Windows Automated Installation Kit for Windows 7를 사용하였다. 정확하게는 Windows System Image Manager(흔히 Windows SIM)을 사용하였다. AIK7을 위해 추가 공간이 필요하며, 또한 작업을 위해 5GB 정도가 더 필요하다.

마지막으로 설치 환경으로 쓰인 버추얼박스 버전은 2009년 5월 10일 현재 최신 버전인 2.2.2판을 사용하였다.

말뜻

  • 자동 설치 도구 : 응용 프로그램이나 운영체제를 설치하기에 앞서 설치 환경이나 사용자 설정 등을 미리 지정할 수 있게 해주는 프로그램이다. 대표적인 것이 Windows Automated Installation Kit for Windows 7이다.
  • 응답 파일 : 설치 프로그램(Install program)이나 설정 프로그램(Setup program)에서 사용하는 환경설정 파일로서, 설치 프로그램 등에서 사용자에게 묻는 질문에 대한 답을 미리 지정하여 놓아 설치 작업 등의 편의를 도모하는 역할을 한다. 윈도 계열의 WINNT.SIF 파일 또는 Unattend.txt이나 인스톨 쉴드(Install Shield) 계열의 Setup.iss 파일 등이 이에 해당한다.
  • 자동 설치(Automatic Installation) : 일반적으로 사용자는 프로그램이나 운영체제를 설치할 때 컴퓨터 앞에서 작업해야 한다. 이는 설치 프로그램이 사용자에게 응답을 요구하는 대화형이기 때문이다. 그런데 그러한 설치 프로그램에서 사용자에게 요구하는 응답은 일정한 틀을 갖추고 있기 때문에 그에 맞추어 미리 응답 파일을 만들어 두고 그 응답 파일에서 응답을 읽어 들여 처리하도록 만들 수 있다. 이 원리를 이용하여 설치 작업을 하는 것을 자동 설치 또는 무인 설치(Unattend Installation ; 직역하면 지켜보지 않는 설치이다.)라고 부른다.

윈도 SIM

Windows System Image Manager(흔히 Windows SIM)은 이름 그대로 윈도의 시스템 이미지를 관리하는 프로그램입니다. 그럼 윈도의 시스템 이미지는? 바로 WiM 파일을 일컫습니다. 윈도 비스타(또는 Windows Fundamentals for Legacy PCs)에서 채용된 디스크 이미지를 말합니다.

아무튼 이 윈도 SIM은 구이(GUI) 환경이라서 텍스트 위주의 dism, oscdimg, imagex와는 달리 좀 더 사용하기 편합니다. 아무튼 모든 작업을 그래픽 환경에서 할 수 있도록 만들어졌기 때문에 좀 더 편할 수밖에요.

Windows System Image Manager 첫 실행 화면

Windows System Image Manager 첫 실행 화면

위 그림의 중간 부분에 보면 Answer File이라는 부분에 응답 파일의 정보가 나타난다.

응답 파일 불러오기 대화상자

응답 파일 불러오기 대화상자

응답 파일을 불러온 뒤의 Windows SIM 화면

응답 파일을 불러온 뒤의 Windows SIM 화면

오른쪽 아래에 Messages 부분에 오류가 하나 있다. 이것은 이 응답 파일에 윈도 이미지에 대한 정보가 없다는 뜻이다. 이 오류를 보고 싶지 않다면 윈도 이미지 파일을 먼저 불러온 뒤에 응답 파일을 불러오면 된다.

다음 할 일

이제 이것을 이용하여 설치 응답 파일을 만들어 보기로 하자.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 환경변수 가운데 UserData로 검색한 다음 다시 Folder로 검색했다. [본문으로]
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

알리는 말

11월 18일 수정

본문의 내용이 저작권을 침해할 우려가 있다는 모꼬모지 님의 의견이 있었습니다. 처음에는 본문에 해당하는 한국어 번역이 없다고 여겼으나, 모꼬모지 님이 이미 번역한 부분이 있었고, 저는 그것을 모르는 상태에서 본문을 작성하였습니다. 그에 따라 번역문이 낱말은 물론 토씨까지 일치하는 곳을 상당 부분 발견하였고, 그러한 부분을 대부분 삭제하였으며, 꼭 필요한 일부는 남겼습니다(예컨대 PROCESSOR_ 로 시작하는 환경변수).

그로 말미암아 설명이 삭제된 부분이 생겼는데, 일부는 영어 위키백과Environment variable에서 내용을 복사하여 붙였습니다. 제 블로그의 라이선스가 GFDL이고 위키백과도 GFDL이기 때문에 가능했습니다. 영문 그대로 둔 이유는 번역할 경우 그 결과물이 이미 번역된 다른 글과 같을 수 있다는 염려 때문입니다. 한국어 위키백과에 내용이 추가되기 전까지는 본문의 영어 부분을 한국어로 번역하지 않을 생각입니다.

그와 함께 변수 구분을 위해 하위 개요를 두어 표를 두 개로 분리하였습니다.

11월 19일 수정

모꼬모지 님께 먼저 죄송하다는 말을 드려야겠네요.

죄송합니다.

위키백과의 사랑방에서 과거에 있었던 여러 토론을 살펴본 결과 링크만 걸려 있으면 그다지 문제가 없다는 의견을 여럿 보게 되었습니다. 결국 제가 너무 까탈스럽게 굴었다는 말이네요.
너무 원칙만 고수하다 보니 본의 아니게 모꼬모지 님과 논쟁을 벌이게 되어습니다. 앞으로는 좀 더 시야를 넓혀 이번과 같은 일이 다시 일어나지 않도록 하겠습니다.

말뜻

환경 변수(環境 變數)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다.[각주:1] 이때 변수들은 명령줄 위에서, .BAT 확장자를 가지는 일괄 처리 파일, 또는 스크립트 안에서 쓰일 수 있다. 변수 이름 주변이나 앞에 특별한 기호(예 : %)를 놓아서 참조하는 것이 보통이다.

윈도 테크넷의 정의에 따르면,[각주:2] Cmd.exe 명령 셸 환경은 명령 셸 및 운영 체제의 동작을 결정하는 변수에서 정의한다. 시스템과 로컬, 이 두 가지 환경 변수를 사용하여 명령 셸 환경 또는 전체 운영 체제 환경의 동작을 정의할 수 있다. 시스템 환경 변수는 전체 운영 체제 환경의 동작을 정의하며, 로컬 환경 변수는 현재 Cmd.exe 인스턴스의 환경 동작을 정의한다.

시스템 환경 변수는 운영 체제에 미리 설정되어 Windows XP의 모든 프로세스에서 사용할 수 있다. 관리 권한이 있는 사용자만 시스템 변수를 변경할 수 있으며, 이 변수는 로그온 스크립트에서 가장 많이 사용한다. 로컬 환경 변수는 그 변수를 사용하도록 만든 사용자가 컴퓨터에 로그온한 경우에만 사용할 수 있다. 로컬 변수는 HKEY_CURRENT_USER 하이브에서 설정하고 현재 사용자인 경우에만 유효하지만 전체 운영 체제 환경의 동작을 정의합니다.

윈도 환경에서 환경 변수의 유형은 다음과 같습니다.

  1. 기본 제공 시스템 변수
  2. HKEY_LOCAL_MACHINE 하이브에 있는 시스템 변수
  3. HKEY_CURRENT_USER 하이브에 있는 로컬 변수
  4. 모든 환경 변수 및 Autoexec.bat 파일에서 설정된 경로
  5. 모든 환경 변수 및 로그온 스크립트에서 설정된 경로
  6. 스크립트 또는 배치 파일과 상호 작용하는 변수

윈도의 환경 변수

윈도의 기본 환경 변수는 다음과 같다.[각주:3] 변수명에는 퍼센트 기호(%)를 붙이지 않지만, 배치파일에서 사용한다고 가정하여 퍼센트 기호(%)를 붙인 상태로 표시하였다.

시스템 변수

여기에서 말하는 시스템 변수는 기본 제공 시스템 변수와 레지스트리에 저장된 시스템 변수를 편의상 통틀어 이르는 명칭이다.

윈도의 기본 환경 변수는 다음과 같다.[각주:4]

변수 설명
%CMDEXTVERSION%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT4 - 1
  • 윈도2000 및 윈도XP - 2
%COMPUTERNAME% 컴퓨터 이름을 반환합니다. 정확하게는 현재 컴퓨터의 NetBOIS 이름을 반환한다.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
  • 윈도2000 이후 기본값 - 현재 컴퓨터의 컴퓨터 이름
%ComSpec% This variable contains the full path to the command processor; on Windows NT based operating systems this is cmd.exe, while on Windows 9x and ME it is the DOS command processor, COMMAND.COM.
  • 윈도9X 기본값 - C:\WINDOWS\COMMAND.COM
  • 윈도NT 기본값 - %SystemRoot%\system32\cmd.exe
  • 윈도NT 표시값 -
    • NT4 - C:\WINNT\system32\cmd.exe
    • 윈도2000 이후 - C:\WINDOWS\system32\cmd.exe
%DATE%

This variable expands to the current date. The date is displayed according to the current user's date format preferences.

The following is a way of reformatting the date and time for use in file copies. The example assumes UK format of day month year and the time is set for a 24 hour clock.

  • 기본값 - 시스템의 날짜. 한글 윈도에서는 YYYY-MM-DD(윈도ME/2000 이후) 또는 YY-MM-DD(윈도95/98)의 형태로 나타내 준다.
  • 표시값 - (한글 윈도XP) 2009-05-03
%ERRORLEVEL%

This variable points to the current error level. If there was an error in the previous command, this is what you need to check against to find out about that.
이 환경변수는 SET 명령으로는 볼 수 없습니다.

%HOMEDRIVE%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - C:
%HOMEPATH%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - \Documents and Settings\{USERNAME}
  • 비스타 기본값 - \Users\{USERNAME}
%HOMESHARE% 사용자 공유 홈 디렉터리의 네트워크 경로를 반환합니다. 홈 디렉터리의 값에 따라 설정합니다. 사용자 홈 디렉터리는 로컬 사용자와 그룹에서 지정하며, 홈 디렉터리가 로컬 경로에 위치하면, 이 환경변수의 값은 공백(NULL)을 반환합니다. 윈도XP에서만 정의하고 있습니다.
%NUMBER_OF_PROCESSORS% 컴퓨터에 설치된 프로세서의 수를 지정합니다. 이것은 컴퓨터 하드웨어인 CPU 모듈의 갯수 또는 CPU 모듈과 CPU 코어의 곱의 계산값으로 나타납니다. 예컨대 단일 코어의 CPU 모듈이 1개라면 1 x 1 = 1을 반환합니다. 그러나 듀얼 코어 CPU가 4개라면 2 x 4 = 8을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%OS%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - Windows_NT
%Os2LibPath% OS/2 라이브러리의 경로를 반환한다. 윈도NT4 및 윈도2000 에서만 정의되어 있다.
%PATH% This variable contains a semicolon-delimited (do not put spaces in between) list of directories in which the command interpreter will search for an executable file that matches the given command. Equivalent to the Unix $PATH variable.
  • 윈도9X 기본값 - C:\WINDOWS;C:\WINDOWS\COMMAND
  • 윈도NT 기본값 - %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
  • 윈도NT 표시값 - C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
%PATHEXT% 운영 체제에서 실행 가능하다고 간주되는 파일 확장명 목록을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도XP 기본값 - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
  • 비스타 기본값 - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.WSF;.WSH;.MSC
%PROCESSOR_ARCHITECTURE% 프로세서의 칩 아키텍처를 반환합니다. 값은 다음과 같습니다. x86, IA64 등.
  • 윈도9X 기본값 - 정의되지 않음
%PROCESSOR_IDENTIFIER% 프로세서의 설명을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%PROCESSOR_LEVEL% 컴퓨터에 설치된 프로세서의 모델 번호를 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%PROCESSOR_REVISION% 프로세서의 수정 버전 번호를 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
%Public%
  • 비스타 기본값 - C:\Users\Public
%RANDOM% This variable returns a random number between 0 and 32767. Cmd.exe에서 생성합니다.
  • 윈도9X 및 윈도NT4 기본값 - 정의되지 않음.
%SystemDrive% The %SystemDrive% variable is a special system-wide environment variable found on Microsoft Windows NT and its derivatives. Its value is the drive upon which the system folder was placed. Also see next item.

The value of %SystemDrive% is in most cases C:.

  • 윈도9X 계열 - 정의되지 않음
  • 윈도NT 기본값 - C:
%SystemRoot%

The %SystemRoot% variable is a special system-wide environment variable found on Microsoft Windows NT and its derivatives. Its value is the location of the system folder, including the drive and path.

The drive is the same as %SystemDrive% and the default path on a clean installation depends upon the version of the operating system. By default, on a clean installation:

  • 윈도9X 계열 - 정의되지 않음
  • 윈도NT 계열 기본값 -
    • Windows NT 5.1 (Windows XP) and newer versions use \WINDOWS
    • Windows NT 5.0 (Windows 2000), Windows NT 4.0 and Windows NT 3.1 use \WINNT
    • Windows NT 3.5x uses \WINNT35
%TEMP%
%TMP%
시스템 프로그램이 사용하는 기본 임시 디렉터리를 반환합니다. 어떤 프로그램에는 TEMP가 필요하고 어떤 프로그램은 TMP가 필요합니다.
  • 윈도9X 계열 기본값 - C:\WINDOWS\TEMP
  • 윈도NT 계열 시스템 기본값 - %SystemRoot%\TEMP
  • 윈도NT 계열 시스템 표시값 -
    • NT4 및 윈도2000 - C:\WINNT\TEMP
    • 윈도XP 이후 - C:\WINDOWS\TEMP
%TIME% This variable points to the current time. The time is displayed according to the current user's time format preferences.
  • 기본값 - 시스템의 날짜. 한글 윈도에서는 오전/오후 hh-mm의 형태로 나타내 준다.
  • 표시값 - (한글 윈도XP) 오후 03:36
%windir% This variable points to the Windows directory (on Windows NT-based operating systems it is identical to the %SystemRoot% variable, above). If the System is on drive C: then the default values are:
  • 윈도9X 계열 기본값 - C:\WINDOWS
  • 윈도NT 계열 기본값 - %SystemRoot%
  • 윈도NT 계열 표시값
    • NT4 및 윈도2000 - C:\WINNT
    • NT4 Terminal Server Edition - C:\WTSRV
    • 윈도XP 이후 - C:\WINDOWS
%winbootdir% 윈도9X 계열 운영체제가 설치된 위치를 반환합니다.
  • 윈도9X 및 윈도2000 기본값 - C:\WINDOWS

로컬 변수

변수 설명
%ALLUSERSPROFILE% The %AllUsersProfile% variable expands to the full path to the All Users profile directory. This profile contains resources and settings that are used by all system accounts. Shortcut links copied to the All Users' Start menu or Desktop folders will appear in every user's Start menu or Desktop, respectively.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
  • 윈도 2000 이후 기본값 - C:\Documents and Settings\All Users
  • 비스타 기본값 - C:\ProgramData
%APPDATA% Contains the full path to the Application Data folder of the logged-in user. Does not work on Windows NT 4.0 SP6 UK.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
  • 윈도 2000 이후 기본값 - %USERSPROFILE%\Application Data
  • 윈도 2000 이후 표시값 - C:\Documents and Settings\{USERNAME}\Application Data
  • 비스타 기본값 - C:\Users\{USERNAME}\AppData\Roaming
%CD% This variable points to the current directory. Equivalent to the output of the command cd when called without arguments.
  • 윈도9X 및 NT4 기본값 - 정의되지 않음
%CLIENTNAME% 로그인 환경이 로컬인지 원격인지에 따른 문자열을 반환합니다.
  • 윈도2000 이전 기본값 - 정의되지 않음
  • 윈도XP 이후 기본값 - 로컬이면 Console을 반환
%CMDCMDLINE% 현재 Cmd.exe를 시작하는 데 사용되는 정확한 명령줄을 반환합니다.
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - 일반적으로 %ComSpec% 환경변수의 값을 반환한다.
%LOCALAPPDATA%

로컬 사용자만을 위해 설치된 응용 프로그램이 기본적으로 데이터를 저장하는 위치를 반환합니다.

  • 비스타 기본값 - C:\Users\{USERNAME}\AppData\Local
%LOGONSERVER%
  • 윈도9X 기본값 - 정의되지 않음
  • 윈도NT 기본값 - \\%COMPUTERNAME%
  • 윈도NT 표시값 - \\{사용자가 쓰고 있는 컴퓨터 이름}
%ProgramData%
  • 비스타 기본값 - C:\ProgramData
%PROMPT%
  • 기본값 - $P$G
%TEMP%
%TMP%
현재 로그온한 사용자가 사용할 수 있는 응용 프로그램이 사용하는 기본 임시 디렉터리를 반환합니다. 어떤 프로그램에는 TEMP가 필요하고 어떤 프로그램은 TMP가 필요합니다.
  • 윈도9X 계열 기본값 - C:\WINDOWS\TEMP
  • 윈도NT 계열 로컬 기본값 - %USERPROFILE%\Local Settings\Temp
  • 윈도NT 계열 로컬 표시값 - C:\DOCUME~1\{USERNAME}\LOCALS~1\Temp
  • 비스타 기본값 - C:\Users\{USERNAME}\AppData\Local\Temp (%LOCALAPPDATA%\Temp 라고 추정)
%USERDOMAIN%

사용자 계정을 포함한 도메인 이름을 반환합니다.

The variable holds the name of the Workgroup or Windows Domain to which the current user belongs. The related variable, %LOGONSERVER%, holds the hostname of the server that authenticated the current user's logon credentials (name and password). For Home PCs, and PCs in a Workgroup, the authenticating server is usually the PC itself. For PCs in a Windows Domain, the authenticating server is a domain controller (a primary domain controller, or PDC, in Windows NT 4-based domains).

  • 윈도9X 계열 기본값 - 정의되지 않음
  • 윈도NT 계열 기본값 - %COMPUTERNAME%
  • 윈도NT 계열 표시값 - 현재 사용하는 컴퓨터 이름을 나타내 준다.
%USERNAME% 현재 로그온한 사용자 이름을 반환합니다.
  • 윈도9X 계열 기본값 - 정의되지 않음
  • 윈도NT 계열 기본값 - {USERNAME} (로그인한 사용자 이름)
%USERPROFILE%

The %UserProfile% variable is a special system-wide environment variable found on Microsoft Windows NT and its derivatives. Its value is the location of the current user's profile directory, in which is found that user's HKCU registry hive (NTUSER).

Users can also use the %USERNAME% variable to determine the active users login identification.

  • 윈도9X 계열 기본값 - 정의되지 않음
  • 윈도NT 계열 기본값 - C:\Documents and Settings\{USERNAME}
  • 비스타 기본값 - C:\Users\{USERNAME}
변수 설명

%ProgramFiles%

%ProgramFiles(x86)%

%ProgramW6432%

This variable points to Program Files directory, which stores all the installed program of Windows and others. The default on English-language systems is C:\Program Files. In 64-bit editions of Windows (XP, 2003, Vista), there are also %ProgramFiles(x86)% which defaults to C:\Program Files (x86) and %ProgramW6432% which defaults to C:\Program Files. The %ProgramFiles% itself depends on whether the process requesting the environment variable is itself 32-bit or 64-bit (this is caused by Windows-on-Windows 64-bit redirection).

  • 윈도9X 계열 - 정의되지 않음.
  • 윈도NT 계열 기본값 - C:\Program Files
%CommonProgramFiles%

This variable points to Common Files directory. The default is C:\Program Files\Common Files.

  • 윈도9X 계열 및 NT4 - 정의되지 않음.
  • 윈도2000 이후 기본값 - C:\Program Files\Common Files
%SessionName% 윈도2000 이후 버전에서 터미널 서비스 시스템 구성요소(Terminal Services system component)가 설치된 경우에만 정의된다. 로컬에서 로그인했을 때는 Console을 기본값으로 반환한다.

위의 표 세 가지를 읽을 때 다음과 같은 점에 주의하십시오.

  • 혹시라도 명령줄에서 set 명령으로 찾을 수 없는 환경 변수는 윈도 레지스트리 키(Windows Registry key)인 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 에서 찾을 수 있다. 몇몇 로컬 변수는 HKEY_CURRENT_USER\Environment 에서 찾을 수 있다.
  • 기본값과 표시값은 서로 같지 않다. 기본값은 레지스트리 등에서 정의하는 값이고, 표시값은 명령 프롬프트에서 SET 명령으로 확인할 수 있는 값이다. 윈도NT 계열(윈도NT/2000/XP 등)에서는 서로 다른 값을 가지므로 주의해야 한다(결과적으로 둘 다 같다). 위의 설명에서는 윈도XP를 기준으로 기본값과 표시값을 나누었으며, 두 값이 같다면 기본값만 표시했다.
  • 위의 환경변수 설명에서 {USERNAME}, {사용자가 쓰고 있는 컴퓨터 이름}이라는 부분은 시스템 환경에 따라 달라진다. 각자 자신의 컴퓨터에서 확인하기 바란다. 참고로 {USERNAME}의 값은 환경변수 %USERNAME%의 값에 따라 달라지며, {사용자가 쓰고 있는 컴퓨터 이름}%COMPUTERNAME%에 따라 달라진다.
  • 비스타 기본값은 표시값과 구분하지 않았다. 실제로 비스타를 설치하지 않은 이상 알 수 없기 때문이다.
  • Environment Variables 문서에서는 %SystemDirectory%라는 환경변수를 소개하고 있지만, 어디에서도 찾을 수 없었다.

도스의 환경 변수

MS-DOS v6.22를 설치했을 때의 환경 변수는 그다지 많지 않다. COMPSPEC, PROMPT, PATH, TEMP, 이렇게 네 개가 전부이다(참고 : 환경 변수 1).

참조 문서

내부 문서

외부 문서

다음 예고

GOTO 문과 레이블에 대해서 알아보기로 하자.

  1. 한국어 위키백과 : 환경 변수 [본문으로]
  2. 명령 셸 개요 :: Cmd.exe와 함께 환경 변수 사용 문서를 참조하였다. [본문으로]
  3. 명령 셸 개요 :: Cmd.exe와 함께 환경 변수 사용 문서, Environment Variables 문서, Windows Platform Comparison Environment Variable Reference 문서, Windows Vista- Environment variables 문서 등을 참조하였다. [본문으로]
  4. 변수명에는 퍼센트 기호(%)를 붙이지 않지만, 배치파일에서 사용한다고 가정하여 퍼센트 기호(%)를 붙인 상태로 표시하였다. [본문으로]

'스크립트' 카테고리의 다른 글

환경 변수 1  (0) 2009.05.02
이런저런 이야기  (6) 2009.03.30
스크립트란 무엇인가? 배치파일이란 무엇인가?  (8) 2009.03.21
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

글 보관함