Policies löschen

Um Policies zu löschen, verwenden Sie das Cmdlet Remove-EmdbPolicy oder die Delete()-Methode der Policy-Objekte. Sie müssen für beide Wege zunächst die zu löschende Policy abrufen und in einer Variablen speichern, um anschließend das Cmdlet oder die Methode aufzurufen.


Beispiele:


Hinweis: Voraussetzung für die Beispiele ist ein verbundenes PowerShell-Laufwerk.


Das folgende Beispiel löscht die Policy, die das Software-Paket "Microsoft Office 2010" der Computer-Gruppe "Default" zuweist. Zunächst müssen alle Policy-Objekte für das betrachtete Ziel abgerufen werden. Anschließend werden diese gefiltert, damit nur das gesuchte Policy-Objekt weiterverarbeitet wird und dieses wird schließlich an das Remove-EmdbPolicy Cmdlet übergeben. Der Parameter -force sorgt dabei dafür, dass die Policy forciert gelöscht wird, also bestehende Instanzen nicht zunächst auf deinstallieren gesetzt werden:


Get-EmdbPolicy "emdb:\rootDSE\Managed Users & Computers\solys.local\Default" | Where-Object {$_.AssignedObjectName -eq "Microsoft Office 2010"} | Remove-EmdbPolicy -Force


Die folgenden Zeilen speichern das Policy-Object der Zuweisung von "Adobe Reader 9.0" auf die Computer-Gruppe "Adobe Reader 9.0 Rechner" in der Variablen "$MyPolicy" und löschen diese Policy anschließend.


$MyPolicy = Get-EmdbPolicy "emdb:\rootDSE\Managed Users & Computers\solys.local\Adobe Reader 9.0 Rechner" | Where-Object {$_.AssignedObjectName -eq "Adobe Reader 9.0"}

$MyPolicy.Delete()


Beachten Sie, dass wenn Sie die Delete()-Methode wie im obigen Beispiel aufrufen, die Policy nicht direkt gelöscht, sondern für die Deinstallation vorbereitet wird. Möchten Sie das Löschen der Policy erzwingen, ohne dass das zugehörige Paket deinstalliert werden soll, so müssen Sie die Delete()-Methode mit dem zusätzlichen Parameter "$True" aufrufen, wie das folgende Beispiel zeigt:


$MyPolicy = Get-EmdbPolicy "emdb:\rootDSE\Managed Users & Computers\solys.local\Adobe Reader 9.0 Rechner" | Where-Object {$_.AssignedObjectName -eq "Adobe Reader 9.0"}

$MyPolicy.Delete($True)


Hinweis: Beachten Sie, dass wenn Sie eine Policy löschen, die mehr als ein Ziel in ihrer Policy Targetliste enthält, dass diese Policy für sämtliche Ziele gelöscht wird. Dies entspricht auch dem Verhalten, das Sie aus der DSMC kennen.