我在尝试“修复”从同事那里获得的 PS 脚本以从客户广告中获取信息时遇到问题。我正在尝试获取所有分发邮箱及其成员的列表。但是他给我的脚本不起作用,我试图改变一些,但由于我还在学习 PowerShell,我发现自己卡住了,真的不明白他的脚本试图做什么。
Groups = Get-ADGroup -Filter * -SearchBase OU=costumer,OU=companies,DC=domene,DC=oss"
$Results = foreach( $Group in $Groups ){
Get-ADGroupMember -Identity $Group | foreach {
[pscustomobject]@{
GroupName = $Group.Name
Name = $_.Name
}
}
}
$Results| Export-Csv -Path c:\data\groups.csv -NoTypeInformation? -Encoding
unicode
当我运行此脚本时,我从一开始就收到错误,因为“Groups =”无法识别组。
所以我把开始改成:
Get-ADGroup -filter * -Searchbase "OU=Distribution,OU=Groups,OU=Costumer,OU=Companies,DC=domene,DC=oss"
这是我想要的 AD 对象的完整路径,我已经测试了这个突击队并获得了完整列表。但我没有得到有关 goupobjects 成员的信息。我已经尝试在脚本的底部进行更改,但是一直在“-identity”上返回一个错误,我在它之后写什么并不重要。
有人可以帮助我编写更好的代码来获取我需要的信息吗?也许解释一下这个脚本试图做什么?
非常感谢您的帮助。
编辑 1
感谢您的帮助!我现在让脚本运行并获得 .cvs 文件。但我想知道我是否还有其他问题。它应该返回 AD 中的组和组成员,但我得到的结果不是这个。我附上了我在excel中打开它时的截图。
我的脚本中是否还缺少其他内容来获取信息?
解决方案
我找到了一种更改脚本以使其获得所需内容的方法,并且它起作用了。它可能不仅仅是获得我需要的信息,而是我得到了我需要的结果。:) 谢谢!
$GruppeMedlemmer = @()
$Groups = Get-ADGroup -Filter * -properties * -SearchBase "ou=felles,OU=Groups,OU=costumer,OU=Companies,DC=domene,DC=oss"
foreach ($g in $Groups) {
$members = $g | Get-ADGroupMember
foreach ($m in $members) {
$Info = New-Object psObject
$Info | add-member -MemberType NoteProperty -Name "GroupName" -Value $g.Name
$Info | add-member -MemberType NoteProperty -Name "Description" -Value $g.description
$Info | add-member -MemberType NoteProperty -Name "Member of" -Value $g.MemberOf
$Info | Add-Member -MemberType NoteProperty -Name "Member" -Value $m.name
$GruppeMedlemmer+= $Info
}
}
$GruppeMedlemmer | Sort-Object GroupName | Export-CSV C:\temp\groupdist.csv -notype -Encoding unicode
这应该有效:
确保目录
C:\data
存在