Поставщик служб конфигурации ApplicationControl

Защитник Windows политиками управления приложениями (WDAC) можно управлять с сервера MDM или локально с помощью PowerShell через мост WMI через поставщика службы конфигурации ApplicationControl (CSP). Поставщик служб CSP ApplicationControl был добавлен в Windows 10 версии 1903. Этот поставщик служб CSP предоставляет расширенные возможности диагностики и поддержку нескольких политик (появилась в Windows 10 версии 1903). Она также обеспечивает поддержку развертывания политик (появилась в Windows 10 версии 1709) без перезагрузки. В отличие от поставщика служб CSP AppLocker, поставщик служб CSP ApplicationControl правильно обнаруживает наличие параметра без перезагрузки и, следовательно, не планирует перезагрузку.

Существующие политики управления приложениями Защитник Windows (WDAC), развернутые с помощью узла CodeIntegrity Поставщика приложений AppLocker, теперь можно развернуть с помощью URI CSP ApplicationControl. Несмотря на то, что развертывание политики WDAC с использованием CSP AppLocker будет поддерживаться, все новые функции будут выполняться только в applicationControl CSP.

В следующем списке показаны узлы поставщика службы конфигурации ApplicationControl:

Политики

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies

Начало поддеревого дерева, содержащего все политики.

Каждая политика определяется по глобальному уникальному идентификатору (GUID).

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат node
Тип доступа Получите

Policies/{Policy GUID}

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}

GUID политики.

Каждый узел GUID политики содержит узел Политики и соответствующий узел PolicyInfo.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат node
Тип доступа Получите
Динамическое именование узлов UniqueName. Поставщик служб CSP ApplicationControl обеспечивает, чтобы сегмент "ID" заданного URI политики был тем же идентификатором GUID, что и идентификатор политики в blob-объекте политики.

Policies/{Policy GUID}/Policy

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/Policy

Двоичный файл политики, закодированный как base64. Поддерживаемое значение — двоичный файл, преобразованный из XML-файла политики командлетом ConvertFrom-CIPolicy.

Значение по умолчанию пусто.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат b64
Тип доступа Добавить, удалить, получить, заменить

Policies/{Policy GUID}/PolicyInfo

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo

Сведения, описывающие политику, указанную идентификатором GUID.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат node
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/BasePolicyId
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/BasePolicyId

BasePolicyId политики, указанный идентификатором GUID политики.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат chr (строка)
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/FriendlyName
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/FriendlyName

Понятное имя политики, указываемое идентификатором GUID политики.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат chr (строка)
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/IsAuthorized
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsAuthorized

Авторизована ли политика, указываемая идентификатором GUID, для загрузки подсистемой принудительного применения в системе.

Поддерживаемые значения:

  • True: указывает, что политика разрешена для загрузки подсистемой принудительного применения в системе.
  • False: указывает, что политика не авторизована для загрузки подсистемой принудительного применения в системе. Это значение является значением по умолчанию.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат bool
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/IsBasePolicy
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsBasePolicy

TRUE или FALSE, если политика является базовой и дополнительной политикой.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат bool
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/IsDeployed
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsDeployed

Развертывается ли политика, указываемая идентификатором GUID, в системе (на физическом компьютере)

Поддерживаемые значения:

  • True: указывает, что политика развернута в системе и присутствует на физическом компьютере.
  • False: указывает, что политика не развернута в системе и отсутствует на физическом компьютере. Это значение является значением по умолчанию.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат bool
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/IsEffective
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsEffective

Действует ли политика, указанная идентификатором GUID, в системе (загружена подсистемой принудительного применения и действует)

Поддерживаемые значения:

  • True: указывает, что политика загружается подсистемой принудительного применения и действует в системе.
  • False: указывает, что политика не загружается подсистемой принудительного применения и не действует в системе. Это значение является значением по умолчанию.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат bool
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/IsSystemPolicy

TRUE/FALSE, если политика является системной политикой, то это политика, управляемая корпорацией Майкрософт в составе ОС.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат bool
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/PolicyOptions
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/PolicyOptions

ПолитикиПараметры политики, указанные идентификатором GUID политики.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат chr (строка)
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/Status
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Status

Текущее состояние политики, указываемое идентификатором GUID политики.

Значение по умолчанию — 0, указывающее, что состояние политики — OK.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат int
Тип доступа Получите
Policies/{Policy GUID}/PolicyInfo/Version
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Policies/{Policy GUID}/PolicyInfo/Version

Версия политики, указанная идентификатором GUID, в виде строки. При синтаксическом анализе используйте uint64 в качестве содержащего типа данных.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат chr (строка)
Тип доступа Получите

Маркеры

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Tokens

Начало поддеревого дерева, содержащего все маркеры.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат node
Тип доступа Получите

Token/{ID}

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Tokens/{ID}

Произвольный идентификатор, используемый для дифференцировки маркеров.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат node
Тип доступа Получите
Динамическое именование узлов UniqueName. Поставщик служб CSP ApplicationControl обеспечивает уникальность сегмента "ID" заданного URI маркера.

Token/{ID}/Token

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/Token

Двоичный файл маркера, закодированный как base64. Поддерживаемое значение — двоичный файл, полученный из OneCoreDeviceUnlockService.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат b64
Тип доступа Добавить, удалить, получить, заменить

Token/{ID}/TokenInfo

Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo

Сведения, описывающие токен, указанный соответствующим идентификатором.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат node
Тип доступа Получите
Token/{ID}/TokenInfo/Status
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Status

Текущее состояние маркера, указанное идентификатором маркера.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат int
Тип доступа Получите
Token/{ID}/TokenInfo/Type
Область применения Выпуски Применимая ОС
Устройство ✅
Пользователь ❌
✅ Pro
✅ Enterprise
✅ для образования
✅ Windows SE
✅ IIoT Enterprise или IoT Enterprise LTSC
✅Windows 10, версия 1903 [10.0.18362] и более поздние
./Vendor/MSFT/ApplicationControl/Tokens/{ID}/TokenInfo/Type

Тип маркера, указанный идентификатором маркера.

Описание свойств инфраструктуры:

Имя свойства Значение свойства
Формат int
Тип доступа Получите

Значения IsAuthorized, IsDeployed и IsEffective

В следующей таблице приведен результат этой политики на основе различных значений узлов IsAuthorized, IsDeployed и IsEffective:

Isauthorized IsDeployed IsEffective Результирующая
True True True Политика в настоящее время выполняется и действует.
True True False Для того чтобы политика вступила в силу, требуется перезагрузка.
True False True Политика требует перезагрузки для выгрузки из CI.
False True True Недоступно.
True False False *Недоступно.
False True False *Недоступно.
False False True Недоступно.
False False False *Недоступно.

* обозначает допустимое промежуточное состояние; Однако, если транзакция MDM приводит к такой конфигурации состояния, END_COMMAND_PROCESSING объект приведет к сбою.

Руководство по использованию Microsoft Intune

Сведения о клиентах, использующих Intune автономное или гибридное управление с Configuration Manager для развертывания пользовательских политик через поставщик служб CSP ApplicationControl, см. в статье Развертывание политик управления приложениями Защитник Windows с помощью Microsoft Intune.

Руководство по использованию универсального сервера MDM

Чтобы использовать applicationControl CSP без использования Intune, необходимо:

  1. Знать GUID созданной политики, который можно найти в xml-файле политики как <PolicyID> или <PolicyTypeID> для систем до 1903 года.
  2. Преобразуйте политики в двоичный формат с помощью командлета ConvertFrom-CIPolicy для развертывания. Двоичная политика может быть подписана или не подписана.
  3. Создайте узел политики (большой двоичный объект в кодировке Base64 представления двоичной политики) с помощью средства командной certutil -encode строки.

Ниже приведен пример вызова certutil:

certutil  -encode WinSiPolicy.p7b WinSiPolicy.cer

Вместо использования certutil можно использовать следующий вызов PowerShell:

[Convert]::toBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path <bin file>))

Развертывание политик

Чтобы развернуть новую базовую политику с помощью CSP, выполните добавление в ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy , используя узел политики в кодировке Base64 в виде {Data}. См. раздел Формат в примере 1 ниже.

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

  1. Выполните добавление в ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy , используя узел политики в кодировке Base64 в виде {Data} с guid и данными политики для базовой политики.
  2. Повторите для каждой базовой или дополнительной политики (с собственным идентификатором GUID и данными).

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

Пример 1. Добавление первой базовой политики

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base1GUID}/Policy</LocURI>
        </Target>
        <Meta>
             <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base1Data} </Data>
    </Item>
</Add>

Пример 2. Добавление второй базовой политики

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Base2Data} </Data>
    </Item>
</Add>

Пример 3. Добавление дополнительной политики

<Add>
    <CmdID>1</CmdID>
    <Item>
        <Target>
            <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{Supplemental1GUID}/Policy</LocURI>
        </Target>
        <Meta>
            <Format xmlns="syncml:metinf">b64</Format>
        </Meta>
        <Data> {Supplemental1Data} </Data>
    </Item>
</Add>

Получение политик

Выполните get с помощью GUID развернутой политики для опроса или проверки самой политики или сведений о ней.

В следующей таблице показан результат операции Get на разных узлах:

Узлов Получение результатов
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy raw p7b
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Version Версия политики
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsEffective Действует ли политика
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsDeployed Политика в системе
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/IsAuthorized Авторизована ли политика в системе
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/Status Успешно ли развертывание
./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/PolicyInfo/FriendlyName Понятное имя для политики

Пример команды Get:

 <Get>
    <CmdID>1</CmdID>
        <Item>
            <Target>
                <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
 </Get>

Удаление политик

Удаление без перезагрузки

После удаления политики, развернутые через applicationControl CSP, удаляются из системы, но остаются в силе до следующей перезагрузки. Чтобы выполнить функциональное удаление без перезагрузки, сначала замените существующую политику политикой Разрешить все (на C:\Windows\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml), а затем удалите обновленную политику. Эта последовательность немедленно предотвратит блокировку и полностью отменит действие политики при следующей перезагрузке.

Политики без знака

Чтобы удалить политику без знака, выполните delete в ./Vendor/MSFT/ApplicationControl/Policies/Policy GUID/Policy.

Подписанные политики

Примечание.

Подписанная политика по умолчанию может быть заменена только другой подписанной политикой. Следовательно, выполнения delete для ./Vendor/MSFT/ApplicationControl/Policies/Policy/Policy GUID/Policy недостаточно для удаления подписанной политики.

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

  1. Замените его подписанным обновлением, разрешающее политику без знака.
  2. Разверните еще одно обновление с неподписаной политикой Разрешить все.
  3. Выполните удаление.

Пример команды Delete:

   <Delete>
     <CmdID>1</CmdID>
        <Item>
            <Target>
                  <LocURI>./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy</LocURI>
            </Target>
        </Item>
   </Delete>

Руководство по использованию моста PowerShell и WMI

Поставщик моста WMI также можно управлять поставщиком мостов ApplicationControl CSP локально из PowerShell или с помощью скриптов последовательности задач Configuration Manager.

Настройка для использования моста WMI

  1. Преобразуйте политику WDAC в Base64.

  2. Откройте PowerShell в контексте локальной системы (через PSExec или что-то подобное).

  3. Используйте интерфейс WMI:

    $namespace = "root\cimv2\mdm\dmmap"
    $policyClassName = "MDM_ApplicationControl_Policies01_01"
    $policyBase64 = "<base64policy>"
    

Развертывание политики с помощью моста WMI

Выполните следующую команду. PolicyID — это ИДЕНТИФИКАТОР GUID, который можно найти в xml-файле политики, и его следует использовать здесь без фигурных скобок.

New-CimInstance -Namespace $namespace -ClassName $policyClassName -Property @{ParentID="./Vendor/MSFT/ApplicationControl/Policies";InstanceID="<PolicyID>";Policy=$policyBase64}

Запрос всех политик через мост WMI

Get-CimInstance -Namespace $namespace -ClassName $policyClassName

Справочник по поставщикам служб конфигурации