Хотя я не думаю, что будет большая разница во времени обработки, так как вы используете только два различных способа извлечение списка данных, похоже, было бы немного быстрее просто вытащить нелицензированных пользователей, а не тянуть всех пользователей, а затем фильтровать их на основе отдела. Однако вы уверены, что в других отделах нет нелицензированных пользователей, которые вы не захотите удалить?
Какая команда выполняется быстрее, попробуйте ли вы использовать команду Measure-Object
, чтобы узнать, сколько времени займет каждый? Вы можете просто измерить команду Get-MsolUser
, чтобы подтвердить разницу.
Measure-Object {Get-MsolUser -UnlicensedUsersOnly}
Measure-Object {Get-MsolUser -All | where {$_.department -eq "HR"}}
Remove-MsolUser -force
должны принимать одинаковое количество времени для обоих вариантов. Кроме того, я думаю, вам нужно поместить команду Remove-MsolUser
в цикле Еогеасп:
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