我正在嘗試編寫一個PowerShell腳本,它將一起編譯Active Directory中的組列表以及每個組的成員。我的最終目標是出口這一點到CSV文件,所以我想最終的PowerShell多維數組的格式如下:將數據添加到PowerShell陣列/添加成員
GroupName GroupMember
Domain Admins Henry Doe
Domain Admins Melody Doe
Domain Names Doe Ray Me
Domain Users John Doe
Domain Users Jane Doe
(etc…)
我使用下面的代碼,試圖做到這一點:
[array]$arrGroupMemberList = New-Object PSObject
Add-Member -InputObject $arrGroupMemberList -membertype NoteProperty -Name 'GroupName' -Value ""
Add-Member -InputObject $arrGroupMemberList -membertype NoteProperty -Name 'GroupMember' -Value ""
[array]$arrGroupMemberList = @()
[array]$arrGroupNameObjects = Get-ADGroup -Filter * | Where-Object {$_.Name -Like "Domain*"}
If ($arrGroupNameObjects.Count -ge 1)
{
## Cycle thru each group name and get the members
$arrGroupNameObjects | ForEach-Object {
[string]$strTempGroupName = $_.Name
$arrGroupMemberObjects = Get-ADGroupMember $strTempGroupName -Recursive
If ($arrGroupMemberObjects.Count -ge 1)
{
## Cycle thru the group members and compile into the final array
$arrGroupMemberObjects | ForEach-Object {
$arrGroupMemberList += $strTempGroupName, $_.Name
}
}
}
}
我的問題是,我一直在結束了以下爲我的數組:
Domain Admins
Henry Doe
Domain Admins
Melody Doe
Domain Names
Doe Ray Me
Domain Users
John Doe
Domain Users
Jane Doe
我已經嘗試了幾種不同的方法,我已經搜查,但沒有找到答案的任何地方。我確信這很簡單,但是我做錯了什麼?我可以使用必要的數據創建一個多維數組,例如我想要做的事情嗎?而是如果我使用以下命令:
## Cycle thru the group members and compile into the final array
$arrGroupMemberObjects | ForEach-Object {
$arrGroupMemberList[$intIndex].GroupName = $strTempGroupName
$arrGroupMemberList[$intIndex].GroupMember = $_.Name
$intIndex++
我結束了類似的錯誤:
Property 'GroupMember' cannot be found on this object; make sure it exists and is settable.
Property 'GroupName' cannot be found on this object; make sure it exists and is settable.
感謝
**更新**
我可能已經發現了其中我的問題是,它可能是當我添加數組成員。在我的PowerShell腳本年底,我加入以下代碼行:
$arrGroupMemberList | Get-Member
有沒有性,我的元素是不存在的,即使我加入他們早期在腳本中添加會員cmdlet的。我是否正確使用Add-Member cmdlet?
謝謝,但嘗試過,仍然沒有工作爲了我。我發現了一些新的信息,並會更新我的問題 – STGdb