Bereitstellen von WDAC-Richtlinien mithilfe eines Skripts

Hinweis

Einige Funktionen von Windows Defender Application Control (WDAC) sind nur für bestimmte Windows-Versionen verfügbar. Erfahren Sie mehr über die Verfügbarkeit des Anwendungssteuerungsfeatures.

In diesem Artikel wird beschrieben, wie Sie Windows Defender WDAC-Richtlinien (Application Control) mithilfe eines Skripts bereitstellen. Die folgenden Anweisungen verwenden PowerShell, können aber mit jedem Skripthost verwendet werden.

Sie sollten nun eine oder mehrere WDAC-Richtlinien in binäre Form konvertiert haben. Führen Sie andernfalls die schritte aus, die unter Bereitstellen Windows Defender Anwendungssteuerungsrichtlinien (WDAC) beschrieben sind.

Wichtig

Aufgrund eines bekannten Problems sollten Sie immer neue signierte WDAC-Basisrichtlinien mit einem Neustart auf Systemen mit aktivierter Speicherintegrität aktivieren. Überspringen Sie alle unten stehenden Schritte, die CiTool, RefreshPolicy.exe oder WMI verwenden, um eine Richtlinienaktivierung zu initiieren. Kopieren Sie stattdessen die Richtlinienbinärdatei an die richtigen System32- und EFI-Speicherorte, und aktivieren Sie die Richtlinie dann mit einem Systemneustart.

Dieses Problem wirkt sich nicht auf Updates von signierten Basisrichtlinien aus, die bereits auf dem System aktiv sind, die Bereitstellung von nicht signierten Richtlinien oder die Bereitstellung zusätzlicher Richtlinien (signiert oder unsigniert). Dies wirkt sich auch nicht auf Bereitstellungen auf Systemen aus, auf denen keine Speicherintegrität ausgeführt wird.

Bereitstellen von Richtlinien für Windows 11 22H2 und höher

Sie können den CiTool-Posteingang verwenden, um Richtlinien auf Windows 11 22H2 mit den folgenden Befehlen anzuwenden. Stellen Sie sicher, dass Sie Pfad zur Richtlinienbinärdatei, die im folgenden Beispiel bereitgestellt> werden soll, durch den tatsächlichen Pfad zu Ihrer WDAC-Richtlinienbinärdatei ersetzen<.

# 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]

Bereitstellen von Richtlinien für Windows 11, Windows 10 Version 1903 und höher sowie Windows Server 2022 und höher

Um dieses Verfahren zu verwenden, laden Sie das WDAC-Richtlinienaktualisierungstool herunter, und verteilen Sie es an alle verwalteten Endpunkte. Stellen Sie sicher, dass Ihre WDAC-Richtlinien das WDAC-Richtlinienaktualisierungstool zulassen, oder verwenden Sie ein verwaltetes Installationsprogramm, um das Tool zu verteilen.

  1. Initialisieren Sie die Variablen, die vom Skript verwendet werden sollen.

    # 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. Kopieren Sie Windows Defender WDAC-Richtlinienbinärdatei (Application Control) in den Zielordner.

    Copy-Item -Path $PolicyBinary -Destination $DestinationFolder -Force
    
  3. Wiederholen Sie die Schritte 1 bis 2 nach Bedarf, um weitere WDAC-Richtlinien bereitzustellen.

  4. Führen Sie RefreshPolicy.exe aus, um alle WDAC-Richtlinien auf dem verwalteten Endpunkt zu aktivieren und zu aktualisieren.

    & $RefreshPolicyTool
    

Bereitstellen von Richtlinien für alle anderen Versionen von Windows und Windows Server

Verwenden Sie WMI, um Richtlinien auf alle anderen Versionen von Windows und Windows Server anzuwenden.

  1. Initialisieren Sie die Variablen, die vom Skript verwendet werden sollen.

    # 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. Kopieren Sie Windows Defender WDAC-Richtlinienbinärdatei (Application Control) in das Ziel.

    Copy-Item  -Path $PolicyBinary -Destination $DestinationBinary -Force
    
  3. Aktualisieren und Aktivieren der WDAC-Richtlinie mithilfe von WMI

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

Bereitstellen signierter Richtlinien

Wenn Sie signierte WDAC-Richtlinien verwenden, müssen die Richtlinien zusätzlich zu den in den vorherigen Abschnitten beschriebenen Speicherorten in der EFI-Partition Ihres Geräts bereitgestellt werden. Nicht signierte WDAC-Richtlinien müssen in der EFI-Partition nicht vorhanden sein.

  1. Binden Sie das EFI-Volume ein, und erstellen Sie das Verzeichnis , falls es nicht vorhanden ist, in einer PowerShell-Eingabeaufforderung mit erhöhten Rechten:

    $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. Kopieren Sie die signierte Richtlinie in den erstellten Ordner:

    Copy-Item -Path $PolicyBinary -Destination $EFIDestinationFolder -Force
    
  3. Starten Sie das System neu.