-1

我需要生成 CSV 报告以获取组成员。但是,我有许多子域包含以ADM开头的组。

我需要以下格式的报告:

GroupName   User    Company     LasLogon    CN
ADM_AM  UserOne     CP1          

我在互联网上找到了一个脚本:

Get-ADGroup -Server dc1.chd1.pd.local -Filter 'Name -like "ADM*"' |
     ForEach-Object{
          $hash=@{GroupName=$_.Name;Member=''}
          $_ | Get-ADGroupMember -ea 0 -recurs |
               ForEach-Object{
                    $hash.Member=$_.Name
                    New-Object psObject -Property $hash
               }
          } |
     sort groupname,member

这个脚本只给我 GroupName 和 UserName 而不是其他信息。

如何生成此报告?

4

2 回答 2

0

我不确定“ADM_AM,UserOne,CP1”是什么,但我为你准备了这么多。我对powershell还是新手,所以如果这是很多代码,请原谅我=)

$array = @()
Foreach ($group in (Get-ADGroup -Server dc1.chd1.pd.local -Filter 'Name -like "ADM*"'))
{
    $hash=@{Username ='';GroupName=$group.Name;Company='';LastLogon='';CN=''}
    $members = $hash.GroupName | Get-ADGroupMember -Recursive -ErrorAction SilentlyContinue
    Foreach($member in $members)
    {
        $properties = $member.SamAccountName | Get-ADUser -Properties SamAccountName, Company, lastLogon, CN
        $hash.Username = $properties.SamAccountName
        $hash.Company = $properties.Company
        $hash.LastLogon = $properties.lastLogon
        $hash.CN = $properties.CN
        $obj = New-Object psObject -Property $hash
        $array += $obj      
    }   
}   
$array | Export-Csv C:\ -NoTypeInformation
于 2013-10-25T19:31:32.850 回答
0

这是我会做的,我相信你可以缩短它。你应该指定一个搜索库。拥有成员 samaccountname 后,您可以使用 Get-ADUser 获取所需的任何字段。

$GrpArr = @()
$Groups = get-adgroup -filter {name -like "adm*"} -searchbase "ou=Groups,dc=all,dc=ca" | select samaccountname
foreach ($group in $groups)
{
    $GrpArr += $group
    $members = get-adgroupmember $group | select samaccountName
    foreach ($member in $members)
    {
        $memprops = get-aduser $member -properties company
        $comp = $memprops.company
        $grpArr += "$member,$comp"
    }
}
$grpArr | export-csv c:\temp\Groups.csv -NoTypeInformation
于 2013-10-25T19:33:40.033 回答