office 365 Powershell

时间:2016-11-21 05:08:06

标签: powershell office365

人力资源部门拥有5000名不知名的用户。我想将它们全部删除。 我在两个powershell命令之间感到困惑,并希望使用最快的命令:

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

1 个答案:

答案 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}

https://technet.microsoft.com/en-us/library/ee176899.aspx