У меня есть список ObjectGUID (49 из них), хранящийся в CSV, и я вывожу CSV, который содержит список всех членов этих групп в следующем формате: «LastName, FirstName», «AD GroupИмя "У меня это работает (большую часть времени; иногда я получаю ошибки IOException из командлета Add-Content), но это очень медленно (занимает ~ 30 минут для 8000 членов).У меня нет большого опыта работы с Powershell, но я чувствую, что есть лучший / более эффективный способ сделать это.Любые идеи о том, как сделать это более эффективным?
Примечание: я использую переключатель "-Server", потому что мне действительно нужно запустить этот скрипт на нескольких разных доменах, поэтому вставленный код дважды дублируется в моем исходном коде с другим входом CSVи другой домен передается на коммутатор "-Server".
#read in CSV of ObjectGUIDs
$guids = Import-CSV .\ObjectGUIDs.csv
#loop through each AD group
foreach($group in $guids) {
$group_name = Get-ADObject -identity $group.objectGUID -server myDomain
$group_name = $group_name.Name
#get list of users in current group
$users = get-adgroupmember -server myDomain -identity
$group.ObjectGUID | where {$_.objectclass -eq 'user'}
#loop through each user of the current group
foreach ($user in $users) {
#get display name of current user
$display_name = get-aduser -identity $user.objectGUID -server
myDomain -properties DisplayName
#build the current row
$row = ('"' + $display_name.DisplayName + '"' + ',' + '"' +
$group_name + '"')
add-content -path "C:\Path\to\output.csv" -value $row
}
}
Как я уже говорил выше, это обычно работает, но занимает много времени.