人力资源部门拥有5000名不知名的用户。我想将它们全部删除。 我在两个powershell命令之间感到困惑,并希望使用最快的命令:
## 1
Get-MsolUser -UnlicensedUsersOnly | Remove-MsolUser -force
## 2
Get-MsolUser -All | where {$_.department -eq "HR"} | Remove-MsolUser -force
答案 0 :(得分:1)
虽然我不认为处理时间会有很大的不同,因为您只是使用两种不同的方法来检索数据列表,但似乎只需要拉动未经许可的用户就会快一点,而不是拉动所有用户,然后根据部门过滤它们。但是,您确定其他部门中没有任何未经许可的用户可能不想删除吗?
关于哪个命令更快,您是否尝试使用Measure-Object
命令查看每个命令需要多长时间?您可以只测量Get-MsolUser
命令以确认差异。
Measure-Object {Get-MsolUser -UnlicensedUsersOnly}
Measure-Object {Get-MsolUser -All | where {$_.department -eq "HR"}}
对于这两个选项, Remove-MsolUser -force
应该花费相同的时间。另外,我认为你需要将Remove-MsolUser
命令放在foreach循环中:
foreach($user in Get-MsolUser -UnlicensedUsersOnly | where {$_.department -eq "HR"})
{Remove-MsolUser -ObjectId $user.ObjectId.guid -force}