powershell 脚本 get-ADGroup 和 get-ADGroupmember

powershell 脚本 get-ADGroup 和 get-ADGroupmember

我在尝试“修复”同事提供的 PS 脚本时遇到了问题,该脚本用于从客户 AD 中获取信息。我试图获取所有分发邮箱及其成员的列表。但他给我的脚本不起作用,我尝试更改一些,但由于我仍在学习 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 =”其中的 Groups 无法识别。

因此我将开头改为:

Get-ADGroup -filter * -Searchbase“OU=Distribution,OU=Groups,OU=Costumer,OU=Companies,DC=domene,DC=oss”

这是我想要的 AD 对象的完整路径,我已经测试了这个命令并获得了完整列表。但我没有获得有关组对象成员的信息。我尝试更改脚本的底部,但始终在“-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  

答案1

这应该有效:

$Groups = Get-ADGroup -Filter * -SearchBase "OU=dummy1,OU=dummy2,DC=dummy3,DC=dummy4"

$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
  • 第 1 行缺少 $
  • 第 1 行缺少“
  • 第 13 行中的 ? 错了
  • 'unicode' 需要与编码在同一行

确保目录C:\data存在

相关内容