Разрешить сценарии Microsoft Defender для конечных точек с применением политики WDAC для принудительного выполнения сценариев

В этой статье описано, как настроить разрешающие правила в Windows Defender Application Control (WDAC), также известном как App Control for Business, чтобы встроенные скрипты PowerShell Microsoft Defender для конечной точки могли выполняться в режиме FullLanguage. Без соответствующих правил, разрешающих WDAC, функции MDE, использующие скрипты PowerShell, не работают должным образом. Перед началом работы ознакомьтесь с предварительными условиями и рекомендациями по планированию.

Поддерживаемые платформы и требования

Для этой конфигурации требуются следующие платформы и компоненты:

  • Windows 10 или более поздней версии
  • Windows Server 2019 или более поздней версии
  • Устройства, подключённые к Microsoft Defender для конечной точки с включённым принудительным применением сценариев WDAC
  • Минимальная версия датчика Defender для конечных точек: 10.8804 или более поздняя версия

Обзор

Если включена функция ConstrainedLanguageCompatible (параметр датчика Defender for Endpoint, который определяет, как MDE вызывает PowerShell при принудительном выполнении скриптов), Microsoft Defender для конечной точки корректирует свои вызовы PowerShell, чтобы они оставались совместимыми с режимом ограниченного языка PowerShell (CLM), который применяется WDAC.

При наличии соответствующих правил разрешения WDAC доверенные скрипты PowerShell могут выполняться в режиме FullLanguage , а принудительное применение скриптов WDAC остается включенным.

В этой статье объясняется, как:

  • Разрешить встроенные скрипты PowerShell Microsoft Defender для конечной точки.
  • Создайте правила разрешения на основе сертификата (Издатель) (рекомендуется).
  • Создайте разрешающие правила на основе пути (используйте только при необходимости).

Перед началом

Перед обновлением политики WDAC просмотрите следующие предварительные требования и рекомендации по планированию.

  • Используйте правило с наименьшим разрешением, которое соответствует вашим требованиям. Предпочитайте правила издателя (основанные на сертификатах) правилам, основанным на пути.
  • Запланируйте обновление и повторное подписание политики WDAC, если она подписана.
  • Разверните и проверьте все изменения в пилотной группе устройств, прежде чем применять их в широком смысле.

Предупреждение

Широкие правила разрешения на основе пути могут ослабить состояние безопасности. Избегайте папок и каталогов, доступных пользователю на запись, а также слишком широких шаблонов с подстановочными знаками.

Разрешить встроенные сценарии PowerShell для Microsoft Defender for Endpoint

Microsoft Defender для конечной точки использует встроенные скрипты PowerShell для нескольких возможностей, в том числе:

Чтобы разрешить выполнение этих скриптов в режиме FullLanguage при включении принудительного применения скриптов WDAC, добавьте следующую конфигурацию Signer, Publisher и TBS в политику WDAC в <Signers> разделе:

Примечание.

TBS (To Be Signed) — это хэш подписываемой части сертификата подписи кода. WDAC использует это значение, чтобы однозначно идентифицировать выдающие центры сертификации в правилах для подписывающих лиц.

<Signer Name="Microsoft Code Signing PCA 2011" ID="ID_SIGNER_S_0">
  <CertRoot Type="TBS" Value="F6F717A43AD9ABDDC8CEFDDE1C505462535E7D1307E630F9544A2D14FE8BF26E" />
  <CertPublisher Value="Microsoft Windows Defender Advanced Threat Protection" />
</Signer>

Примечание.

Эта конфигурация подписанта предназначена только для встроенного содержимого сценариев Microsoft Defender для конечных точек.

В следующем примере XML-файла показана политика WDAC с включенным подписывателем MDE. Строки, помеченные комментариями <!-- MDE addition --> , — это записи, которые необходимо добавить в существующую политику WDAC:

<?xml version="1.0" encoding="utf-8"?>
<SiPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:sipolicy">
  <VersionEx>10.3.0.0</VersionEx>
  <PolicyTypeID>{A244370E-44C9-4C06-B551-F6016E563076}</PolicyTypeID>
  <PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
  <Rules>
    <Rule>
      <Option>Enabled:Unsigned System Integrity Policy</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Advanced Boot Options Menu</Option>
    </Rule>
    <Rule>
      <Option>Enabled:UMCI</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Inherit Default Policy</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Update Policy No Reboot</Option>
    </Rule>
    <Rule>
      <Option>Enabled:Revoked Expired As Unsigned</Option>
    </Rule>
    <Rule>
      <Option>Required:WHQL</Option>
    </Rule>
  </Rules>
  <EKUs>
    <EKU ID="ID_EKU_WINDOWS" Value="010A2B0601040182370A0306" FriendlyName="Windows EKU - 1.3.6.1.4.1.311.10.3.6" />
    <EKU ID="ID_EKU_WHQL" Value="010A2B0601040182370A0305" FriendlyName="WHQL EKU - 1.3.6.1.4.1.311.10.3.5" />
    <EKU ID="ID_EKU_ELAM" Value="010A2B0601040182373D0401" FriendlyName="Early Launch AntiMalware EKU - 1.3.6.1.4.1.311.61.4.1" />
    <EKU ID="ID_EKU_HAL_EXT" Value="010A2B0601040182373D0501" FriendlyName="Hardware Abstraction Layer EKU - 1.3.6.1.4.1.311.61.5.1" />
    <EKU ID="ID_EKU_RT_EXT" Value="010A2B0601040182370A0315" FriendlyName="Windows RT EKU - 1.3.6.1.4.1.311.10.3.21" />
    <EKU ID="ID_EKU_STORE" Value="010A2B0601040182374C0301" FriendlyName="Windows Store EKU - 1.3.6.1.4.1.311.76.3.1" />
    <EKU ID="ID_EKU_DCODEGEN" Value="010A2B0601040182374C0501" FriendlyName="Dynamic Code Generation EKU - 1.3.6.1.4.1.311.76.5.1" />
    <EKU ID="ID_EKU_AM" Value="010A2B0601040182374C0B01" FriendlyName="AntiMalware EKU - 1.3.6.1.4.1.311.76.11.1" />
    <EKU ID="ID_EKU_ENCLAVE" Value="010A2B0601040182370A032A" FriendlyName="Enclave EKU - 1.3.6.1.4.1.311.10.3.42" />
  </EKUs>
  <FileRules>
    <FileAttrib ID="ID_FILEATTRIB_REFRESH_POLICY" FriendlyName="RefreshPolicy.exe FileAttribute" FileName="RefreshPolicy.exe" MinimumFileVersion="10.0.19042.0" />
  </FileRules>
  <Signers>
    <!-- MDE addition: Start - Add this signer block -->
    <Signer Name="Microsoft Code Signing PCA 2011" ID="ID_SIGNER_S_0">
      <CertRoot Type="TBS" Value="F6F717A43AD9ABDDC8CEFDDE1C505462535E7D1307E630F9544A2D14FE8BF26E" />
      <CertPublisher Value="Microsoft Windows Defender Advanced Threat Protection" />
    </Signer>
    <!-- MDE addition: End -->
    <Signer Name="Microsoft Product Root 2010 Windows EKU" ID="ID_SIGNER_WINDOWS_PRODUCTION">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_WINDOWS" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 ELAM EKU" ID="ID_SIGNER_ELAM_PRODUCTION">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_ELAM" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 HAL EKU" ID="ID_SIGNER_HAL_PRODUCTION">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_HAL_EXT" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 WHQL EKU" ID="ID_SIGNER_WHQL_SHA2">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Product Root WHQL EKU SHA1" ID="ID_SIGNER_WHQL_SHA1">
      <CertRoot Type="Wellknown" Value="05" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Product Root WHQL EKU MD5" ID="ID_SIGNER_WHQL_MD5">
      <CertRoot Type="Wellknown" Value="04" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 Windows EKU" ID="ID_SIGNER_WINDOWS_PRODUCTION_USER">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_WINDOWS" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 ELAM EKU" ID="ID_SIGNER_ELAM_PRODUCTION_USER">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_ELAM" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 HAL EKU" ID="ID_SIGNER_HAL_PRODUCTION_USER">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_HAL_EXT" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 WHQL EKU" ID="ID_SIGNER_WHQL_SHA2_USER">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Product Root WHQL EKU SHA1" ID="ID_SIGNER_WHQL_SHA1_USER">
      <CertRoot Type="Wellknown" Value="05" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 Windows EKU" ID="ID_SIGNER_WINDOWS_FLIGHT_ROOT">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_WINDOWS" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 ELAM EKU" ID="ID_SIGNER_ELAM_FLIGHT">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_ELAM" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 HAL EKU" ID="ID_SIGNER_HAL_FLIGHT">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_HAL_EXT" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 WHQL EKU" ID="ID_SIGNER_WHQL_FLIGHT_SHA2">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 Windows EKU" ID="ID_SIGNER_WINDOWS_FLIGHT_ROOT_USER">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_WINDOWS" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 ELAM EKU" ID="ID_SIGNER_ELAM_FLIGHT_USER">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_ELAM" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 HAL EKU" ID="ID_SIGNER_HAL_FLIGHT_USER">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_HAL_EXT" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 WHQL EKU" ID="ID_SIGNER_WHQL_FLIGHT_SHA2_USER">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Product Root WHQL EKU MD5" ID="ID_SIGNER_WHQL_MD5_USER">
      <CertRoot Type="Wellknown" Value="04" />
      <CertEKU ID="ID_EKU_WHQL" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 Store EKU" ID="ID_SIGNER_STORE_FLIGHT_ROOT">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_STORE" />
    </Signer>
    <Signer Name="Microsoft MarketPlace PCA 2011" ID="ID_SIGNER_STORE">
      <CertRoot Type="TBS" Value="FC9EDE3DCCA09186B2D3BF9B738A2050CB1A554DA2DCADB55F3F72EE17721378" />
      <CertEKU ID="ID_EKU_STORE" />
    </Signer>
    <Signer Name="Microsoft Product Root 2010 RT EKU" ID="ID_SIGNER_RT_PRODUCTION">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_RT_EXT" />
    </Signer>
    <Signer Name="Microsoft Flighting Root 2014 RT EKU" ID="ID_SIGNER_RT_FLIGHT">
      <CertRoot Type="Wellknown" Value="0E" />
      <CertEKU ID="ID_EKU_RT_EXT" />
    </Signer>
    <Signer Name="Microsoft Standard Root 2011 RT EKU" ID="ID_SIGNER_RT_STANDARD">
      <CertRoot Type="Wellknown" Value="07" />
      <CertEKU ID="ID_EKU_RT_EXT" />
    </Signer>
    <Signer Name="MincryptKnownRootMicrosoftTestRoot2010" ID="ID_SIGNER_TEST2010">
      <CertRoot Type="Wellknown" Value="0A" />
    </Signer>
    <Signer Name="MincryptKnownRootMicrosoftTestRoot2010" ID="ID_SIGNER_TEST2010_USER">
      <CertRoot Type="Wellknown" Value="0A" />
    </Signer>
    <Signer Name="MincryptKnownRootMicrosoftDMDRoot2005" ID="ID_SIGNER_DRM">
      <CertRoot Type="Wellknown" Value="0C" />
    </Signer>
    <Signer Name="MincryptKnownRootMicrosoftProductRoot2010" ID="ID_SIGNER_DCODEGEN">
      <CertRoot Type="Wellknown" Value="06" />
      <CertEKU ID="ID_EKU_DCODEGEN" />
    </Signer>
    <Signer Name="MincryptKnownRootMicrosoftStandardRoot2011" ID="ID_SIGNER_AM">
      <CertRoot Type="Wellknown" Value="07" />
      <CertEKU ID="ID_EKU_AM" />
    </Signer>
    <Signer Name="Microsoft Standard Root 2011 Enclave EKU" ID="ID_SIGNER_ENCLAVE">
      <CertRoot Type="Wellknown" Value="07" />
      <CertEKU ID="ID_EKU_ENCLAVE" />
    </Signer>
    <Signer Name="Microsoft Code Signing PCA 2011" ID="ID_SIGNER_MICROSOFT_REFRESH_POLICY">
      <CertRoot Type="TBS" Value="F6F717A43AD9ABDDC8CEFDDE1C505462535E7D1307E630F9544A2D14FE8BF26E" />
      <CertPublisher Value="Microsoft Corporation" />
      <FileAttribRef RuleID="ID_FILEATTRIB_REFRESH_POLICY" />
    </Signer>
  </Signers>
  <SigningScenarios>
    <SigningScenario ID="ID_SIGNINGSCENARIO_KMCI" FriendlyName="Kernel Mode Signing Scenario" Value="131">
      <ProductSigners>
        <AllowedSigners>
          <AllowedSigner SignerId="ID_SIGNER_WINDOWS_PRODUCTION" />
          <AllowedSigner SignerId="ID_SIGNER_ELAM_PRODUCTION" />
          <AllowedSigner SignerId="ID_SIGNER_HAL_PRODUCTION" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_SHA2" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_SHA1" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_MD5" />
          <AllowedSigner SignerId="ID_SIGNER_WINDOWS_FLIGHT_ROOT" />
          <AllowedSigner SignerId="ID_SIGNER_ELAM_FLIGHT" />
          <AllowedSigner SignerId="ID_SIGNER_HAL_FLIGHT" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_FLIGHT_SHA2" />
          <AllowedSigner SignerId="ID_SIGNER_TEST2010" />
        </AllowedSigners>
      </ProductSigners>
    </SigningScenario>
    <SigningScenario ID="ID_SIGNINGSCENARIO_UMCI" FriendlyName="User Mode Signing Scenario" Value="12">
      <ProductSigners>
        <AllowedSigners>
          <AllowedSigner SignerId="ID_SIGNER_S_0" /> <!-- MDE addition -->
          <AllowedSigner SignerId="ID_SIGNER_WINDOWS_PRODUCTION_USER" />
          <AllowedSigner SignerId="ID_SIGNER_ELAM_PRODUCTION_USER" />
          <AllowedSigner SignerId="ID_SIGNER_HAL_PRODUCTION_USER" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_SHA2_USER" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_SHA1_USER" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_MD5_USER" />
          <AllowedSigner SignerId="ID_SIGNER_WINDOWS_FLIGHT_ROOT_USER" />
          <AllowedSigner SignerId="ID_SIGNER_ELAM_FLIGHT_USER" />
          <AllowedSigner SignerId="ID_SIGNER_HAL_FLIGHT_USER" />
          <AllowedSigner SignerId="ID_SIGNER_WHQL_FLIGHT_SHA2_USER" />
          <AllowedSigner SignerId="ID_SIGNER_STORE" />
          <AllowedSigner SignerId="ID_SIGNER_STORE_FLIGHT_ROOT" />
          <AllowedSigner SignerId="ID_SIGNER_RT_PRODUCTION" />
          <AllowedSigner SignerId="ID_SIGNER_DRM" />
          <AllowedSigner SignerId="ID_SIGNER_DCODEGEN" />
          <AllowedSigner SignerId="ID_SIGNER_AM" />
          <AllowedSigner SignerId="ID_SIGNER_RT_FLIGHT" />
          <AllowedSigner SignerId="ID_SIGNER_RT_STANDARD" />
          <AllowedSigner SignerId="ID_SIGNER_ENCLAVE" />
          <AllowedSigner SignerId="ID_SIGNER_MICROSOFT_REFRESH_POLICY" />
          <AllowedSigner SignerId="ID_SIGNER_TEST2010_USER" />
        </AllowedSigners>
      </ProductSigners>
    </SigningScenario>
  </SigningScenarios>
  <UpdatePolicySigners />
  <CiSigners>
    <CiSigner SignerId="ID_SIGNER_S_0" /> <!-- MDE addition -->
    <CiSigner SignerId="ID_SIGNER_STORE" />
  </CiSigners>
  <HvciOptions>0</HvciOptions>
  <Settings>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Name">
      <Value>
        <String>WindowsWorks_2026-03-25</String>
      </Value>
    </Setting>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Id">
      <Value>
        <String>2026-03-25</String>
      </Value>
    </Setting>
  </Settings>
</SiPolicy>

На основе сертификатов (издатель) правила разрешают доверять содержимому, подписанному определенной цепочкой сертификатов подписи кода. Правила на основе сертификатов обеспечивают наилучший баланс безопасности и удобства обслуживания.

Шаг 1. Определение подписывателя

Используйте PowerShell для проверки цифровой подписи файла, который вы хотите разрешить (например, узла скрипта или исполняемого файла, который вызывает скрипт):

Get-AuthenticodeSignature -FilePath "C:\Path\To\File.exe" | Format-List

Запишите отпечаток сертификата и атрибуты издателя, которые вы планируете ограничить (например, PublisherName, ProductName или BinaryName).

Шаг 2. Добавление правила разрешения издателя

Используйте один из следующих методов, чтобы добавить правило разрешения издателя:

  • Мастер политик управления приложениями (рекомендуется): Откройте свою политику и добавьте правило «Разрешить» по критерию «Издатель», максимально сузив область его применения.
  • PowerShell (ConfigCI): Используйте командлеты ConfigCI, чтобы добавить правило издателя в XML-файл политики, а затем преобразовать его в двоичный формат политики.

Примечание.

При использовании мастера политики управления приложениями можно добавить издателя MDE на шаге Список правил подписывания политик . Выберите Добавить пользовательское, а затем добавьте тип правила Allow Publisher UserMode, который ссылается на один из скриптов PowerShell, подписанных MDE.

Скрипты PowerShell, подписанные Microsoft Windows Defender Advanced Threat Protection издателем, доступны на любом подключенном устройстве MDE в следующей папке:

C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\DataCollection

Средство PsExec требуется для запуска командной оболочки с контекстом учетной записи SYSTEM для доступа к этой защищенной папке. Чтобы получить доступ к папке, выполните следующие действия:

  1. Скачайте PsExec из Sysinternals и распакуйте его в папку, указанную в системной переменной PATH (например, C:\Tools).

  2. Откройте командную строку с повышенными привилегиями. Выберите Пуск, введите cmd, щелкните правой кнопкой мыши командную строку и выберите Запуск от имени администратора.

  3. Запустите командную оболочку уровня СИСТЕМЫ:

    PsExec.exe -s cmd.exe
    
  4. В оболочке SYSTEM перейдите в папку DataCollection:

    cd "C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\DataCollection"
    dir *.ps1
    
  5. Используйте любой из перечисленных .ps1 файлов в качестве входных данных при создании правила разрешения издателя.

Шаг 3. Повторное подписание и развертывание политики

Чтобы завершить настройку правила на основе сертификатов, выполните следующие действия:

  1. Повторно подпишите политику, если она настроена как подписанная политика WDAC.
  2. Разверните обновленную политику с помощью стандартного метода развертывания (например, Microsoft Intune, групповой политики или Configuration Manager).

Создайте разрешающие правила на основе путей (используйте только при необходимости)

Предупреждение

Широкие правила разрешения на основе пути могут ослабить состояние безопасности. Избегайте папок и каталогов, доступных пользователю на запись, а также слишком широких шаблонов с подстановочными знаками.

Правила разрешения на основе пути доверяют всему содержимому в определенной папке. Используйте правила на основе пути только в тех случаях, когда правила на основе сертификатов неприменимы, например, для неподписанных внутренних бизнес-скриптов, которые полностью находятся под вашим контролем.

Шаг 1. Выбор минимального пути к папке

Определите точную папку, содержащую требуемое содержимое скрипта. Избегайте путей корневого уровня и мест, доступных пользователю для записи.

Распространенные расположения скриптов Microsoft Defender для конечной точки включают:

C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\DataCollection

Шаг 2. Добавление правила разрешения пути

Используйте один из следующих методов, чтобы добавить правило разрешения пути:

  • Мастер политики управления приложениями: Добавьте правило Разрешить по пути (например, C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\DataCollection\*) и экспортируйте обновленную политику.
  • PowerShell (ConfigCI): Используйте командлеты ConfigCI, чтобы добавить правило для пути к файлу в XML-файл политики.

Шаг 3. Повторное подписание и развертывание обновленной политики

Чтобы завершить настройку правила на основе пути, выполните следующие действия:

  1. При необходимости повторно подпишите политику.
  2. Разверните обновленную политику на целевых устройствах.

Рекомендации по обеспечению безопасности

Чтобы обеспечить безопасность политики WDAC, следуйте приведенным ниже советам.

  • Используйте правила Publisher (на основе сертификатов) вместо правил на основе пути.
  • Делайте разрешающие правила как можно более строгими. При возможности укажите имя издателя, продукта или двоичного файла.
  • Не разрешайте путь, доступный для записи пользователем, или широкие подстановочные знаки (например, C:\Users\*\Downloads\*).
  • Фиксируйте, кто запросил каждое правило, причину запроса и дату пересмотра.
  • Проверьте все изменения в пилотной группе перед массовым внедрением.