Я собрал ниже, что делает работу. Однако выход не очень работоспособен. Поэтому я хотел вывести все это в CSV, используя Export-Csv
. Im знаю, что я могу сделать это, перейдя к запросу ForEach-Object
, но я не совсем уверен, как этого достичь.Сценарий требует конвертации для экспорта в CSV
Я добавил попытку конвертировать его в надежде на небольшую помощь. Я не уверен, как указать переменную для каждого объекта. Например, первая секция вызывает все домены в лесу. Как я могу использовать каждый ответ в следующем запросе на канал? и так далее.
$domains = (Get-ADForest).Domains
$controllers = @()
$worked = $false
foreach ($domain in $domains) {
$controller = Get-ADDomainController -Discover -ForceDiscover -DomainName $domain |
Select-Object HostName
$controllers += $controller
}
while (-not $worked) {
try {
foreach ($item in $controllers) {
$value = $item.HostName.Value
Write-Host $value
Write-Host 'Domain Admins'
Get-ADGroupMember -Identity 'Domain Admins' -Server $value |
Get-ADUser -Properties name, samaccountname, Description, EmailAddress |
Where {$_.Enabled -eq $true} |
Format-Table Name, SamAccountName, Description, EmailAddress -AutoSize
}
$worked = $true
} catch {}
}
Конверсия Покушение
ForEach-Object{
(Get-ADForest).domains | Get-ADDomainController -Discover -ForceDiscover -DomainName $domain |Select-Object HostName | Get-ADGroupMember -identity 'Domain Admins' -Server $value | Get-ADUser -Properties samaccountname, Description, EmailAddress | Where {$_.Enabled -eq $true}
}| Export-Csv -Path "$HOME/Desktop/DomainAdmins.csv" samaccountname, Description, EmailAddress -AutoSize
Заменить 'Format-Table' с' Экспортно-Csv -Append'. –
также, почему вы используете $? это не имеет никакого смысла. – 4c74356b41
@ 4c74356b41 Взгляните на третью линию снизу. Эта переменная используется для завершения цикла 'while' после того, как цикл foreach запущен без завершающей ошибки. Немного неудобно, но должно работать. –