我必須將所有域組及其成員匯出到 csv。所以每個組都必須得到自己的csv。在這個 csv 中必須是所有組成員。
我想我知道問題出在哪里:$group 值是 @{name=xyz} 而不是 xyz。可能這就是 ADGroupMember -Identity 不匹配的原因。
$groups = (Get-ADGroup -filter {GroupScope -eq "DomainLocal"} |Select-Object name)
foreach ($group in $groups) {
Add-Content -Path ("C:\" $group) -Value (Get-ADGroupMember -Identity $group)
}
編輯:下面解決的代碼。我需要幫助將用戶添加到每個 csv 檔案。不知道怎么找他們。
uj5u.com熱心網友回復:
正如所評論的,您需要獲取名為 的屬性的字串值Name,而不是包含值為 Name 的該屬性的物件。
再有就是你如何創建輸出檔案名稱的問題,和cmdlet Add-Content,Set-Content等不打算寫CSV檔案。對于那個 PowerShell Export-Csv,Get-ADGroupMember在這種情況下,您可以將回傳的物件提供給它:
$groups = Get-ADGroup -Filter "GroupScope -eq 'DomainLocal'" | Select-Object -ExpandProperty Name
foreach ($group in $groups) {
# construct the output path for the csv file
$csvOut = Join-Path -Path "C:\19158" -ChildPath ('{0}.csv' -f $group)
# use Export-Csv to create a correct CSV file
Get-ADGroupMember -Identity $group | Export-Csv -Path $csvOut -UseCulture -NoTypeInformation
}
另一種方法是根本不使用 Select-Object,而是遍歷從回傳的物件Get-ADGroup并使用$_ Automatic 變數
Get-ADGroup -Filter "GroupScope -eq 'DomainLocal'" | ForEach-Object {
# construct the output path for the csv file
$csvOut = Join-Path -Path "C:\19158" -ChildPath ('{0}.csv' -f $_.Name)
# use Export-Csv to create a correct CSV file
$_ | Get-ADGroupMember | Export-Csv -Path $csvOut -UseCulture -NoTypeInformation
}
uj5u.com熱心網友回復:
您需要像這樣修改第一行
$groups = (Get-ADGroup -filter {GroupScope -eq "DomainLocal"}).name
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/401121.html
