다음을 통해 공유


WDAC(Windows Defender 애플리케이션 제어) 정책 제거

참고

WDAC(Windows Defender 애플리케이션 제어)의 일부 기능은 특정 Windows 버전에서만 사용할 수 있습니다. Windows Defender 애플리케이션 제어 기능 가용성에 대해 자세히 알아봅니다.

WDAC 정책 제거

하나 이상의 WDAC 정책을 제거하거나 배포한 모든 WDAC 정책을 제거하려는 경우가 있을 수 있습니다. 이 문서에서는 WDAC 정책을 제거하는 다양한 방법을 설명합니다.

중요

서명된 WDAC 정책

제거하려는 정책이 서명된 WDAC 정책인 경우 먼저 옵션 6 사용:서명되지 않은 시스템 무결성 정책을 포함하는 서명된 대체 정책을 배포해야 합니다.

대체 정책에는 대체하는 정책과 동일한 PolicyId 및 기존 정책과 같거나 더 큰 버전이 있어야 합니다. 대체 정책에는 UpdatePolicySigners>도 포함되어<야 합니다.

적용하려면 대체하려는 원래 정책의 UpdatePolicySigners> 섹션에 <포함된 인증서로 이 정책에 서명해야 합니다.

그런 다음, 정책의 UEFI 보호가 비활성화되도록 컴퓨터를 다시 시작해야 합니다. 이렇게 하지 않으면 부팅 시작 실패가 발생합니다.

정책을 제거하기 전에 먼저 배포하는 데 사용되는 메서드(예: 그룹 정책 또는 MDM)를 사용하지 않도록 설정해야 합니다. 그렇지 않으면 정책이 컴퓨터에 다시 배포될 수 있습니다.

정책을 제거하기 전에 정책을 효과적으로 비활성화하려면 먼저 정책을 다음 변경 내용을 포함하는 새 정책으로 바꿀 수 있습니다.

  1. 정책 규칙을 "허용 *" 규칙으로 바꿉니다.
  2. 옵션 3 사용:감사 모드 를 설정하여 정책을 감사 모드로만 변경합니다.
  3. 설정 옵션 11 사용 안 함:스크립트 적용;
  4. 모든 COM 개체를 허용합니다. WDAC 정책에서 COM 개체 등록 허용을 참조하세요.
  5. 해당하는 경우 옵션 0 Enabled:UMCI 를 제거하여 정책을 커널 모드로만 변환합니다.

중요

정책을 제거한 후 적용할 컴퓨터를 다시 시작합니다. 디바이스를 다시 시작하지 않고는 WDAC 정책을 제거할 수 없습니다.

CiTool.exe 사용하여 WDAC 정책 제거

Windows 11 2022 업데이트부터 CiTool.exe 사용하여 WDAC 정책을 제거할 수 있습니다. 관리자 권한 명령 창에서 다음 명령을 실행합니다. PolicyId GUID 텍스트를 제거할 WDAC 정책의 실제 PolicyId로 바꿔야 합니다.

    CiTool.exe -rp "{PolicyId GUID}" -json

그런 다음 컴퓨터를 다시 시작합니다.

Intune과 같은 MDM 솔루션을 사용하여 WDAC 정책 제거

Microsoft Intune과 같은 MDM(모바일 디바이스 관리) 솔루션을 사용하여 ApplicationControl CSP를 사용하여 클라이언트 컴퓨터에서 WDAC 정책을 제거할 수 있습니다.

ApplicationControl CSP 사용에 대한 자세한 내용은 MDM 솔루션 공급자에게 문의하세요.

그런 다음 컴퓨터를 다시 시작합니다.

스크립트를 사용하여 WDAC 정책 제거

스크립트를 사용하여 WDAC 정책을 제거하려면 스크립트가 컴퓨터에서 정책 파일을 삭제해야 합니다. 여러 정책 형식(1903 이상) WDAC 정책의 경우 다음 위치에서 정책 파일을 찾습니다. PolicyId GUID를 제거하려는 WDAC 정책의 실제 PolicyId로 바꿔야 합니다.

  • <EFI 시스템 파티션>\Microsoft\Boot\CiPolicies\Active\{PolicyId GUID}.cip
  • <OS 볼륨>\Windows\System32\CodeIntegrity\CiPolicies\Active\{PolicyId GUID}.cip

위의 두 위치 외에도 단일 정책 형식 WDAC 정책의 경우 다음 위치에서 찾을 수 있는 SiPolicy.p7b라는 파일도 찾습니다.

  • <EFI 시스템 파티션>\Microsoft\Boot\SiPolicy.p7b
  • <OS 볼륨>\Windows\System32\CodeIntegrity\SiPolicy.p7b

그런 다음 컴퓨터를 다시 시작합니다.

단일 WDAC 정책을 삭제하는 샘플 스크립트

# Set PolicyId GUID to the PolicyId from your WDAC policy XML
$PolicyId = "{PolicyId GUID}"

# Initialize variables
$SinglePolicyFormatPolicyId = "{A244370E-44C9-4C06-B551-F6016E563076}"
$SinglePolicyFormatFileName = "\SiPolicy.p7b"
$MountPoint =  $env:SystemDrive+"\EFIMount"
$SystemCodeIntegrityFolderRoot = $env:windir+"\System32\CodeIntegrity"
$EFICodeIntegrityFolderRoot = $MountPoint+"\EFI\Microsoft\Boot"
$MultiplePolicyFilePath = "\CiPolicies\Active\"+$PolicyId+".cip"

# Mount the EFI partition
$EFIPartition = (Get-Partition | Where-Object IsSystem).AccessPaths[0]
if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force }
mountvol $MountPoint $EFIPartition

# Check if the PolicyId to be removed is the system reserved GUID for single policy format.
# If so, the policy may exist as both SiPolicy.p7b in the policy path root as well as
# {GUID}.cip in the CiPolicies\Active subdirectory
if ($PolicyId -eq $SinglePolicyFormatPolicyId) {$NumFilesToDelete = 4} else {$NumFilesToDelete = 2}

$Count = 1
while ($Count -le $NumFilesToDelete)
{

    # Set the $PolicyPath to the file to be deleted, if exists
    Switch ($Count)
    {
        1 {$PolicyPath = $SystemCodeIntegrityFolderRoot+$MultiplePolicyFilePath}
        2 {$PolicyPath = $EFICodeIntegrityFolderRoot+$MultiplePolicyFilePath}
        3 {$PolicyPath = $SystemCodeIntegrityFolderRoot+$SinglePolicyFormatFileName}
        4 {$PolicyPath = $EFICodeIntegrityFolderRoot+$SinglePolicyFormatFileName}
    }

    # Delete the policy file from the current $PolicyPath
    Write-Host "Attempting to remove $PolicyPath..." -ForegroundColor Cyan
    if (Test-Path $PolicyPath) {Remove-Item -Path $PolicyPath -Force -ErrorAction Continue}

    $Count = $Count + 1
}

# Dismount the EFI partition
mountvol $MountPoint /D

참고

컴퓨터에서 WDAC 정책을 제거하려면 관리자 권한으로 스크립트를 실행해야 합니다.

부팅 중지 실패를 일으키는 WDAC 정책 제거

부팅에 중요한 드라이버를 차단하는 WDAC 정책으로 인해 BSOD(부팅 중지 실패)가 발생할 수 있지만 정책에서 옵션 10 사용:부팅 감사 실패 를 설정하여 완화할 수 있습니다. 또한 서명된 WDAC 정책은 시스템에 대한 관리 수준 액세스 권한을 얻은 관리 조작 및 맬웨어로부터 정책을 보호합니다. 이러한 이유로 서명된 WDAC 정책은 관리자의 경우에도 서명되지 않은 정책보다 의도적으로 제거하기가 더 어렵습니다. 서명된 WDAC 정책을 변조하거나 제거하면 BSOD가 발생합니다.

부팅 중지 실패를 일으키는 정책을 제거하려면 다음을 수행합니다.

  1. 정책이 서명 된 WDAC 정책인 경우 UEFI BIOS 메뉴에서 보안 부팅을 끕니다. BIOS 메뉴에서 보안 부팅을 해제할 위치를 찾는 방법에 대한 도움말은 OEM(원래 장비 제조업체)에 문의하세요.
  2. 컴퓨터의 고급 부팅 옵션 메뉴에 액세스하고 드라이버 서명 적용을 사용하지 않도록 설정하는 옵션을 선택합니다. 시작하는 동안 고급 부팅 옵션 메뉴에 액세스하는 방법에 대한 지침은 OEM에 문의하세요. 이 옵션은 단일 부팅 세션에 대해 WDAC를 포함한 모든 코드 무결성 검사를 일시 중단합니다.
  3. Windows를 정상적으로 시작하고 로그인합니다. 그런 다음 스크립트를 사용하여 WDAC 정책을 제거합니다.
  4. 위의 1단계에서 보안 부팅을 해제하고 드라이브가 BitLocker로 보호되는 경우 BitLocker 보호를 일시 중단한 다음 UEFI BIOS 메뉴에서 보안 부팅을 켭니다.
  5. 컴퓨터를 다시 시작합니다.

참고

드라이브가 Bitlocker로 보호되는 경우 위의 1-2단계를 수행하려면 Bitlocker 복구 키가 필요할 수 있습니다.