Partager via


Déployer des stratégies WDAC à l’aide d’un script

Remarque

Certaines fonctionnalités de Windows Defender Application Control (WDAC) sont disponibles uniquement sur des versions spécifiques de Windows. En savoir plus sur la disponibilité des fonctionnalités de contrôle d’application.

Cet article explique comment déployer des stratégies WDAC (Windows Defender Application Control) à l’aide d’un script. Les instructions suivantes utilisent PowerShell, mais peuvent fonctionner avec n’importe quel hôte de script.

Vous devez maintenant avoir une ou plusieurs stratégies WDAC converties en forme binaire. Si ce n’est pas le cas, suivez les étapes décrites dans Déploiement de stratégies WDAC (Windows Defender Application Control).

Important

En raison d’un problème connu, vous devez toujours activer les nouvelles stratégies de base WDAC signées avec un redémarrage sur les systèmes sur lesquels l’intégrité de la mémoire est activée. Ignorez toutes les étapes ci-dessous qui utilisent CiTool, RefreshPolicy.exe ou WMI pour lancer une activation de stratégie. Au lieu de cela, copiez le fichier binaire de stratégie vers les emplacements system32 et EFI appropriés, puis activez la stratégie avec un redémarrage du système.

Ce problème n’affecte pas les mises à jour des stratégies de base signées qui sont déjà actives sur le système, le déploiement de stratégies non signées ou le déploiement de stratégies supplémentaires (signées ou non signées). Cela n’affecte pas non plus les déploiements sur des systèmes qui n’exécutent pas l’intégrité de la mémoire.

Déploiement de stratégies pour Windows 11 22H2 et versions ultérieures

Vous pouvez utiliser la boîte de réception CiTool pour appliquer des stratégies sur Windows 11 22H2 avec les commandes suivantes. Veillez à remplacer <Chemin d’accès au fichier binaire de stratégie à déployer> dans l’exemple suivant par le chemin d’accès réel à votre fichier binaire de stratégie WDAC.

# Policy binary files should be named as {GUID}.cip for multiple policy format files (where {GUID} = <PolicyId> from the Policy XML)
$PolicyBinary = "<Path to policy binary file to deploy>"
CiTool --update-policy $PolicyBinary [-json]

Déploiement de stratégies pour Windows 11, Windows 10 version 1903 et ultérieures, et Windows Server 2022 et versions ultérieures

Pour utiliser cette procédure, téléchargez et distribuez l’outil d’actualisation de stratégie WDAC à tous les points de terminaison managés. Vérifiez que vos stratégies WDAC autorisent l’outil d’actualisation des stratégies WDAC ou utilisez un programme d’installation managé pour distribuer l’outil.

  1. Initialisez les variables à utiliser par le script.

    # Policy binary files should be named as {GUID}.cip for multiple policy format files (where {GUID} = <PolicyId> from the Policy XML)
    $PolicyBinary = "<Path to policy binary file to deploy>"
    $DestinationFolder = $env:windir+"\System32\CodeIntegrity\CIPolicies\Active\"
    $RefreshPolicyTool = "<Path where RefreshPolicy.exe can be found from managed endpoints>"
    
  2. Copiez le fichier binaire de stratégie WDAC (Windows Defender Application Control) dans le dossier de destination.

    Copy-Item -Path $PolicyBinary -Destination $DestinationFolder -Force
    
  3. Répétez les étapes 1 à 2 pour déployer davantage de stratégies WDAC.

  4. Exécutez RefreshPolicy.exe pour activer et actualiser toutes les stratégies WDAC sur le point de terminaison managé.

    & $RefreshPolicyTool
    

Déploiement de stratégies pour toutes les autres versions de Windows et Windows Server

Utilisez WMI pour appliquer des stratégies à toutes les autres versions de Windows et Windows Server.

  1. Initialisez les variables à utiliser par le script.

    # Policy binary files should be named as SiPolicy.p7b for Windows 10 versions earlier than 1903
    $PolicyBinary = "<Path to policy binary file to deploy>"
    $DestinationBinary = $env:windir+"\System32\CodeIntegrity\SiPolicy.p7b"
    
  2. Copiez le fichier binaire de stratégie WDAC (Windows Defender Application Control) vers la destination.

    Copy-Item  -Path $PolicyBinary -Destination $DestinationBinary -Force
    
  3. Actualiser et activer la stratégie WDAC à l’aide de WMI

    Invoke-CimMethod -Namespace root\Microsoft\Windows\CI -ClassName PS_UpdateAndCompareCIPolicy -MethodName Update -Arguments @{FilePath = $DestinationBinary}
    

Déploiement de stratégies signées

Si vous utilisez des stratégies WDAC signées, les stratégies doivent être déployées dans la partition EFI de votre appareil en plus des emplacements décrits dans les sections précédentes. Les stratégies WDAC non signées n’ont pas besoin d’être présentes dans la partition EFI.

  1. Montez le volume EFI et créez le répertoire, s’il n’existe pas, dans une invite PowerShell avec élévation de privilèges :

    $MountPoint = 'C:\EFIMount'
    $EFIDestinationFolder = "$MountPoint\EFI\Microsoft\Boot\CiPolicies\Active"
    $EFIPartition = (Get-Partition | Where-Object IsSystem).AccessPaths[0]
    if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force }
    mountvol $MountPoint $EFIPartition
    if (-Not (Test-Path $EFIDestinationFolder)) { New-Item -Path $EFIDestinationFolder -Type Directory -Force }
    
  2. Copiez la stratégie signée dans le dossier créé :

    Copy-Item -Path $PolicyBinary -Destination $EFIDestinationFolder -Force
    
  3. Redémarrez le système.