124909

Powershell: Inhalt von 3 OUs in einer Tabelle ausgeben, sodass nicht bei jeder weiteren OU die Kopfzeile aufgelistet wird

Morgen,

Ich möchte die Informationen von 3 OU's in einer Tabelle ausgeben. Das Problem ist nur, dass mein Skript bei jeder einzelnen OU die Kopfzeile neu auflistet. Also wieder mit bspw. Vorname, Nachname und Beschreibung.

Ich möchte aber nur eine Kopfzeile und darunter dann der Inhalt der besagten 3 OUs. Ist dies prinzipiell möglich ?

Im Prinzip sieht der Teil der Abfrage zurzeit so aus:

$ous = @('OU=xxxs,DC=1,DC=2',
'OU=yyy,DC=1,DC=2',
'OU=zzz,DC=1,DC=2')

foreach ($ou in $ous)

{
$mailbodytext = Get-ADUser -SearchBase $ou -Filter * -Properties * | where {$_.AccountExpirationDate -le $days -and $_.AccountExpirationDate -ne $null} |
Select-Object @{Name="Account-Ablaufdatum:";Expression={$_.AccountExpirationDate.ToString("dd.MM.yyyy")}}, `
@{Name="Windows-Loginname";Expression={$_.Name}}, `
@{Name="Momentan aktiviert?";Expression={$_.Enabled}}, `
@{Name="Vorname:";Expression={$_.GivenName}}, `
@{Name="Nachname:";Expression={$_.Surname}}, `
@{Name="SAM:";Expression={$_.UserPrincipalName}}, `

@{Name="Beschreibung:";Expression={$_.Description}} |
Sort-Object -Property Account-Ablaufdatum | Format-Table -AutoSize
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 289962

Url: https://administrator.de/forum/powershell-inhalt-von-3-ous-in-einer-tabelle-ausgeben-sodass-nicht-bei-jeder-weiteren-ou-die-kopfzeile-289962.html

Ausgedruckt am: 11.05.2025 um 23:05 Uhr

114757
Lösung 114757 03.12.2015 aktualisiert um 13:35:14 Uhr
Goto Top
$ous = @(
'OU=xxxs,DC=1,DC=2',  
'OU=yyy,DC=1,DC=2',  
'OU=zzz,DC=1,DC=2'  
)

$ous | %{
    $mailbodytext = Get-ADUser -SearchBase $_ -Filter * -Properties * | ?{$_.AccountExpirationDate -le $days -and $_.AccountExpirationDate -ne $null} | select @{Name="Account-Ablaufdatum";Expression={$_.AccountExpirationDate.ToString("dd.MM.yyyy")}}, `  
    @{Name="Windows-Loginname";Expression={$_.Name}}, `  
    @{Name="Momentan aktiviert?";Expression={$_.Enabled}}, `  
    @{Name="Vorname:";Expression={$_.GivenName}}, `  
    @{Name="Nachname:";Expression={$_.Surname}}, `  
    @{Name="SAM:";Expression={$_.UserPrincipalName}}, `  
    @{Name="Beschreibung:";Expression={$_.Description}}  
} | Sort 'Account-Ablaufdatum' | Format-Table -AutoSize  
Gruß jodel32
124909
124909 03.12.2015 um 13:36:14 Uhr
Goto Top
jodel32, ich verneige mich vor deinem schier unendlichen scheinenden Powershell-Horizont
114757
114757 03.12.2015 aktualisiert um 14:21:21 Uhr
Goto Top
Das Problem mit deinem Code war das du anstatt der Pipe-Syntax die ausführliche Syntax für die Foreach-Schleife von Powershell genutzt hast und die Ausgabe als formatierten String zurückgegeben hast anstatt die Objekte selber mit select.