我有一個來自以前回答的問題的腳本,但沒有足夠的評論聲望。我試圖運行該腳本並遇到以下錯誤消息:使用Powershell獲取所有AD用戶及其組羣成員(遞歸)
導出CSV:無法將CSV內容附加到以下文件:C:\ users.csv。附加對象沒有與以下列對應的屬性:User; Group。要繼續使用不匹配的屬性,請添加-Force參數,然後重試該命令。
如何調試此腳本來解決此問題?
Function Get-ADGroupsRecursive{
Param([String[]]$Groups)
Begin{
$Results = @()
}
Process{
ForEach($Group in $Groups){
$Results+=$Group
ForEach($Object in (Get-ADGroupMember $Group|?{$_.objectClass -eq "Group"})){
$Results += Get-ADGroupsRecursive $Object
}
}
}
End{
$Results | Select -Unique
}}
import-module activedirectory
$users = get-aduser -Filter {Name -Like "*"} -Searchbase "OU=Sample Accounts,DC=domain,DC=com" -Properties MemberOf | Where-Object { $_.Enabled -eq 'True' }
$targetFile = "C:\users.csv"
rm $targetFile
Add-Content $targetFile "User;Group"
foreach ($user in $users)
{
$Groups = $User.MemberOf
$Groups += $Groups | %{Get-ADGroupsRecursive $_}
$Groups | %{New-Object PSObject -Property @{User=$User;Group=$_}}|Export-CSV $targetfile -notype -append
}
刪除此行:'添加內容$的TargetFile 「用戶,組」',並讓PowerShell的處理CSV頭。 –
Export-csv嘗試將您手動添加到$ targetFile的行匹配什麼不作爲默認行爲--Delimiter是逗號,值是雙引號。所以它將這些內容解釋爲一個屬性'User; Group' – LotPings
@MarkWragg腳本現在可以工作,但我最終得到了這個錯誤信息:'Get-AdGroupMember超出限制。有沒有解決這個限制的方法? –