Obwohl ich glaube nicht, dass es ein großer Unterschied in der Verarbeitungszeit wäre da Sie nur verwenden zwei verschiedene Arten von Wenn Sie eine Liste von Daten abrufen, scheint es, als wäre es ein wenig schneller, nur die nicht lizenzierten Benutzer zu ziehen, anstatt alle Benutzer zu ziehen und dann nach Abteilung zu filtern. Sind Sie sicher, dass in anderen Abteilungen keine nicht lizenzierten Benutzer vorhanden sind, die Sie nicht löschen möchten?
In Bezug auf welchen Befehl ist schneller, haben Sie versucht, mit dem Befehl Measure-Object
zu sehen, wie lange jeder dauert? Sie könnten einfach den Get-MsolUser
Befehl messen, um den Unterschied zu bestätigen.
Measure-Object {Get-MsolUser -UnlicensedUsersOnly}
Measure-Object {Get-MsolUser -All | where {$_.department -eq "HR"}}
Remove-MsolUser -force
sollte für beide Optionen die gleiche Menge an Zeit in Anspruch nehmen. Außerdem glaube ich, werden Sie den Remove-MsolUser
Befehl in einer foreach-Schleife setzen müssen:
foreach($user in Get-MsolUser -UnlicensedUsersOnly | where {$_.department -eq "HR"})
{Remove-MsolUser -ObjectId $user.ObjectId.guid -force}
https://technet.microsoft.com/en-us/library/ee176899.aspx