2017-09-22 1 views
0

Ich bin auf der Suche nach einer Möglichkeit, die aktuelle Ausgabe des folgenden Befehls zu ändern, damit es leichter zu lesen ist.Ändern der Powershell-Ausgabe

$list= get-content "c:\userlist.txt" 
Foreach ($user in $list) 
{ 
    Write-Host $user 
    Get-ADPrincipalGroupMembership $user |select name |Where-Object {$_.name -like "*admin*"} 
    write-host " " 
} 

Stromausgang ist wie folgt:

user1 

name                                                         
----                                                         
admin1 
admin2                                                     

user2 
admin3 
admin4 

Ich mag es wie die unten oder etwas ähnliches ohne den Titel und zusätzliche Zeilenumbrüche angezeigt werden. Vielen Dank!

User1 
admin1 
admin2 

User2 
admin3 
admin4 

Antwort

1

Ich denke, das wird für Sie arbeiten:

$list= get-content "c:\userlist.txt" 
foreach ($user in $list) 
{ 
    Write-Host $user 
    Write-Host (Get-ADPrincipalGroupMembership $user | Where-Object {$_.name -like "*admin*"} | Select-Object -ExpandProperty name | Out-String) 
    Write-Host " " 
} 

Ich habe Write-Host dort in es mit dem Rest der Ausgabe konsistent zu machen. Sie müssen -ExpandProperty anstelle von -Property (die Standardeinstellung) verwenden, um die Spaltenüberschrift zu entfernen. Out-String bewirkt, dass die Ausgabe unverändert auf dem Bildschirm angezeigt wird, anstatt als Objekt interpretiert und in eine Zeichenfolge konvertiert zu werden.

+0

Vielen Dank! das funktioniert. – kahoots