2016-11-21 7 views
0

Die Personalabteilung hat 5000 nicht registrierte Benutzer. Ich möchte sie alle entfernen. Ich bin verwirrt zwischen zwei Powershell-Befehlen und will die schnellsten verwenden:Office 365 Powershell

## 1 
Get-MsolUser -UnlicensedUsersOnly | Remove-MsolUser -force 
## 2 
Get-MsolUser -All | where {$_.department -eq "HR"} | Remove-MsolUser -force 

Antwort

1

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