2016-12-01 3 views
0

Ich versuche, alle Gruppen, UserID und Namen von AD abrufen und exportieren Sie diese CSV-Datei mit drei Spalten, eine für ParentGroupNames, dann DisplayName, dann MemberName. Die folgenden Arbeiten akzeptieren für DisplayName, die einen Namen für alle Gruppen zu wiederholen scheint.AD-Gruppen, Benutzernamen und vollständige Namen zu csv

function getGroups{ 

    $Groups += Get-ADGroup -Filter * -SearchBase "ou=Groups,ou=DCM,ou=NTG,dc=prod,dc=main,dc=ntgov" | Select-Object -ExpandProperty samaccountname 
    return $Groups 
} 

$Groups = getGroups 
    write-host "Groups:" $Groups.Count 

    $date = $(get-date).ToString("dd MMM yyyy") 
    $global:FileName = "Active Directory Group Membership - DCM -" + $date 

    $results = @(); 

    foreach ($GroupName in $Groups){ 
    Get-ADGroupMember -Identity $GroupName | Sort-Object $_.SamAccountName |   


    ForEach-Object { 
     $ItemProperties = @{ 
      "ParentGroupName" = (Get-ADGroup -Identity  $GroupName).SamAccountName; 
      "MemberName" = $_.SamAccountName 
     } 

     if ($_.ObjectClass -eq 'group') { 
      $ItemProperties.Add("DisplayName","-"); 
     } elseif ($_.ObjectClass -eq 'user') { 
      $ItemProperties.Add("DisplayName",(Get-ADUser -Identity $MemberName -Properties DisplayName).DisplayName); 
     } 

     $MyItem = New-Object -TypeName psobject -property $ItemProperties; 
     $Results += $MyItem; 
     $ItemProperties = $null; 
    } 
} 
$results | export-csv -path "C: 

Antwort

0

ist ein Fehler im Code, $ Member zu $ ItemProperties.MemberName hier ändern festen Code:

function getGroups{ 

    $Groups += Get-ADGroup -Filter * -SearchBase "ou=Groups,ou=DCM,ou=NTG,dc=prod,dc=main,dc=ntgov" | Select-Object -ExpandProperty samaccountname 
    return $Groups 
} 

$Groups = getGroups 
    write-host "Groups:" $Groups.Count 

    $date = $(get-date).ToString("dd MMM yyyy") 
    $global:FileName = "Active Directory Group Membership - DCM -" + $date 

    $results = @(); 

    foreach ($GroupName in $Groups){ 
    Get-ADGroupMember -Identity $GroupName | Sort-Object $_.SamAccountName |   


    ForEach-Object { 
     $ItemProperties = @{ 
      "ParentGroupName" = (Get-ADGroup -Identity  $GroupName).SamAccountName; 
      "MemberName" = $_.SamAccountName 
     } 

     if ($_.ObjectClass -eq 'group') { 
      $ItemProperties.Add("DisplayName","-"); 
     } elseif ($_.ObjectClass -eq 'user') { 
      $ItemProperties.Add("DisplayName",(Get-ADUser -Identity $ItemProperties.MemberName -Properties DisplayName).DisplayName); 
     } 

     $MyItem = New-Object -TypeName psobject -property $ItemProperties; 
     $Results += $MyItem; 
     $ItemProperties = $null; 
    } 
} 
$results | export-csv -path "C:\1" 
Verwandte Themen