2016-11-21 11 views
0

В отделе HR есть 5000 пользователей без опознавательных знаков. Я хочу удалить их все. я запутался между двумя командами Powershell и хотите использовать самый быстрый один:офис 365 Powershell

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

ответ

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($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

Смежные вопросы