pixel0815
Goto Top

Powershell Formatierungsfrage bei Ausgabe Outgrid oder Ft oder CSV

Hi, irgendwie hängt es grade total.

in dieser Zeile
 $Details.Gruppe = $group.Name 
können mehrere Einträge erscheinen, da der User in mehreren Gruppen Mitglied ist.
Wenn ich mir das ganze jetzt z.B. mit Out-Gridview anschaue oder via ft ausgebe sieht das so aus

Wie kann man das hübscher machen das es z.B. so aussieht

Benutzername Name              Gruppe
------------ ----              ------
userid     Name {Grupp1, Grupp2, Gruppe3...}


Benutzername Name              Gruppe
------------ ----              ------
userid     Name           Grupp1
                          Gruppe 2

oder jede Zeile
Benutzername Name              Gruppe
------------ ----              ------
userid     Name           Grupp1
userid     Name           Grupp2
userid     Name           Grupp
2


function Get-ADPrincipalGroupMembershipRecursive( ) {

    Param(
        [string] $dsn,
        [array]$groups = @()
    )

    $obj = Get-ADObject $dsn -Properties memberOf

    foreach( $groupDsn in $obj.memberOf ) {

        $tmpGrp = Get-ADObject $groupDsn -Properties memberOf

        if( ($groups | where { $_.DistinguishedName -eq $groupDsn }).Count -eq 0 ) {
            $groups +=  $tmpGrp           
            $groups = Get-ADPrincipalGroupMembershipRecursive $groupDsn $groups
        }
    }

    return $groups
}

$Users = "UserName"  
$Report = @()

ForEach ($User in $Users){

    $UserInfo = Get-ADUser -Identity $User -Properties Name,SamAccountName
    $group   = Get-ADPrincipalGroupMembershipRecursive (Get-ADUser $Userinfo.SamAccountName).DistinguishedName | Where-Object {$_.Name -like "*Abfrage*"}  

    $Details ="" | select Benutzername,Name,Gruppe  
    $Details.Benutzername = $UserInfo.SamAccountName
    $Details.Name = $UserInfo.Name
    $Details.Gruppe = $group.Name

    $Report += $Details
}

$Report | Out-GridView

Content-ID: 2109028729

Url: https://administrator.de/contentid/2109028729

Ausgedruckt am: 21.11.2024 um 20:11 Uhr

1915348599
Lösung 1915348599 10.03.2022 aktualisiert um 10:15:17 Uhr
Goto Top
$Details.Gruppe = $group.Name -join "`r`n"  
oder
$Details.Gruppe = $group.Name -join ","  
oder
# ....
$group   = Get-ADPrincipalGroupMembershipRecursive (Get-ADUser $Userinfo.SamAccountName).DistinguishedName | Where-Object {$_.Name -like "*Abfrage*"}  
$group | %{
    $Details ="" | select Benutzername,Name,Gruppe  
    $Details.Benutzername = $UserInfo.SamAccountName
    $Details.Name = $UserInfo.Name
    $Details.Gruppe = $_.Name
    $Report += $Details
}
usw.
pixel0815
pixel0815 10.03.2022 um 10:30:18 Uhr
Goto Top
Genau das war es! face-smile Ich danke dir.
Ich hatte auch schon mit -join angefangen, aber irgendwie sah das alles mistig aus.
Vielen Dank für deine Hilfe.

LG