기능 업데이트 동안 사용자 지정 작업 실행

개요

IT 전문가는 기능 업데이트 동안에 그리고 업데이트 후에 고유한 사용자 지정 작업 스크립트를 실행하여 기능 업데이트를 사용자 지정할 수 있습니다. Windows 10 버전 1803을 시작할 때 사용자 지정 작업이 사용 가능합니다.

사용자 지정 작업 실행

사용자 지정 작업 정보

사용자 지정 작업은 기능 업데이트 프로세스 동안에 실행되는 .cmd 스크립트입니다. 이러한 기능은 다음의 기능 업데이트 4작업 단계 동안에 실행할 수 있습니다.

  1. 사전 설치 작업 단계: 설치 프로그램이 시작되기는 하지만 이전 호환성 검사 작업 단계입니다. 이 작업 단계 동안의 작업은 preinstall.cmd에 지정되어 있습니다. 스크립트가 실패하면 기능 업데이트에 실패합니다.
  2. 사전 커밋 작업 단계: 기능 업데이트와 시스템 재부팅 이전 작업 단계입니다. 이 작업 단계 동안의 작업은 precommit.cmd에 지정되어 있습니다. 스크립트가 실패하면 기능 업데이트에 실패합니다.
  3. 제거 후 작업 단계: 사용자가 기능 업데이트 제거를 시작한 이후의 작업 단계입니다. 이 작업 단계 동안의 작업은 postuninstall.cmd에 지정되어 있습니다. postuninstall.cmd는 Windows 10 버전 2004의 새로운 기능입니다.
  4. 완료: 이 작업 단계는 설치가 완료된 후입니다. 기능 업데이트에 실패하거나 롤백해야 하는 경우, failure.cmd를 사용하여 사용자 지정 작업을 수행하거나 이전 사용자 지정 스크립트의 작업을 실행 취소할 수 있습니다. 기능 업데이트에 성공하면 success.cmd를 사용하여 기능 업데이트 후 작업을 수행할 수 있습니다. success.cmd는 Windows 10 버전 2004의 새로운 기능입니다.

사용자 지정 작업은 Windows 설치 프로그램에서 설치한 기능 업데이트 동안에 실행됩니다. 일부 Windows 기능 업데이트는 월별 품질 업데이트를 통해 설치되며 이후 Windows 기능을 정품 인증하는 “활성화 패키지”, 즉 크기가 작으면서도 빠른 설치가 가능한 “마스터 전환”을 통해 켜집니다. 예를 들면, Windows 10 버전 2004에서 Windows 10 버전 20H2로 업데이트합니다. 사용자 지정 작업은 활성화 패키지로 설치된 기능 업데이트에 대해 지원되지 않습니다.

사용자 지정 작업 폴더 구조

사용자 지정 작업 스크립트는 단일 업그레이드 또는 향후 모든 업그레이드에 대해 스크립트를 실행할지 여부에 따라 %windir%\System32\update\에 있는 하위 폴더에서 실행됩니다. Windows 설치 프로그램은 다음 위치에서 자동으로 이러한 스크립트를 찾으며, 찾으면 해당 스크립트를 실행합니다.

폴더 설명
%windir%\System32\update\run Windows 설치 프로그램은 이러한 폴더에서 스크립트를 마이그레이션하여 향후 해당 스크립트가 업그레이드되도록 합니다.
%windir%\System32\update\runonce 이 폴더의 스크립트는 한 번의 업그레이드에서만 실행되며 향후 업그레이드를 위해 마이그레이션되지 않습니다.
%windir%\System32\update\run\<GUID>

%windir%\System32\update\runonce\<GUID>
고유한 GUID를 만들어 실행하는 각 스크립트를 명확하게 식별합니다. 이 GUID를 사용하여 runrunonce 폴더에서 폴더 이름을 지정합니다.
%windir%\System32\update\run\<GUID>\reflectdrivers

%windir%\System32\update\runonce\<GUID>\reflectdrivers
이 폴더의 부팅 필수 드라이버가 리플렉션됩니다. reflectdrivers 폴더에 필요한 암호화 드라이버 집합만 포함되어 있는지 확인합니다. 필요 이상으로 많은 드라이버가 있으면 업그레이드 시나리오에 부정적인 영향을 미칠 수 있습니다. 리플렉션된 드라이버에 대한 자세한 내용은 장치 드라이버를 참조하세요.

업데이트가 실패하거나 롤백해야 하는 경우 failure.cmd 스크립트를 사용하여 사용자 지정 작업을 수행하거나 이전 사용자 지정 스크립트의 작업을 실행 취소할 수 있습니다. 스크립트가 실패하면 업데이트에 실패합니다.

사용자 지정 작업 스크립트 위치 및 예제

스크립트 위치

다음 표에 사용자 지정 작업을 실행하기 위한 파일의 폴더 경로 구조가 나와 있습니다.

실행(스크립트를 마이그레이션함) 한 번 실행(스크립트가 마이그레이션되지 않음)
%windir%\System32\update\run\<GUID>\preinstall.cmd %windir%\System32\update\runonce\<GUID>\preinstall.cmd
%windir%\System32\update\run\<GUID>\precommit.cmd %windir%\System32\update\runonce\<GUID>\precommit.cmd
%windir%\System32\update\run\<GUID>\postuninstall.cmd %windir%\System32\update\runonce\<GUID>\postuninstall.cmd
%windir%\System32\update\run\<GUID>\success.cmd %windir%\System32\update\runonce\<GUID>\success.cmd
%windir%\System32\update\run\<GUID>\failure.cmd %windir%\System32\update\runonce\<GUID>\failure.cmd
%windir%\System32\update\run\<GUID>\reflectdrivers\example1.inf %windir%\System32\update\runonce\<GUID>\reflectdrivers\example2.inf
%windir%\System32\update\run\<GUID>\reflectdrivers\example1.sys %windir%\System32\update\run\<GUID>\reflectdrivers\example2.sys

예제 파일 경로 및 이름

시나리오 파일 위치 예제
배포 데이터 스크립트 %windir%\system32\update\
마이그레이션 디렉터리
마이그레이션할 스크립트 %windir%\system32\update\run\
마이그레이션되지 않는 스크립트 %windir%\system32\update\runonce\
GUID가 있는 폴더 경로 %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\
GUID가 있는 스크립트 이름
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\preinstall.cmd
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\precommit.cmd
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\postuninstall.cmd
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\failure.cmd
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\success.cmd
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\preinstall.cmd
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\precommit.cmd
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\postuninstall.cmd
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\failure.cmd
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\success.cmd
리플렉션된 드라이버 폴더 %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\reflectdrivers\