2016-06-15 3 views
1

Ich habe gerade erst begonnen PowerShell zu lernen, aber ich haue meinen Kopf an die Wand mit diesem. Wenn ich Import-CSV eine Liste von Benutzern, die userprincipal auszukommen Get-ADUser mit dem Header SamAccountName, ich bin in der Lage, alle E-Mails auf der Konsole zu sehen:Es können nicht alle Benutzer exportiert werden, nur einer wird angezeigt, wenn CSV-Datei importiert wird. Get-ADUser

ForEach ($user in $allUsers) 
{ 
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname 
} 

Allerdings, wenn ich versuche, sie zu exportieren zu eine csv-Datei kommt nur 1 Benutzer raus. Ich habe immer ein Problem, wenn eine foreach-Schleife für diese Verwendung ...

ForEach ($user in $allUsers) 
{ 
Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname | export-csv $path -NoTypeInformation 
} 

Ich bin immer in dieses Problem, wenn meine foreach-Schleifen zu machen. Ich bekomme oder verändere nur 1 Variable. Warum ist das? x_X Bitte helfen Sie!

Und meine CSV-Datei hat eine Kopfzeile von SamAccountName und Samaccount-Namen. Ohne den Export bekomme ich gute Daten aus diesem Code auf der Konsole:

[email protected] [email protected] etc ...

+0

Verwenden Sie den '-Append' Parameter zu vermeiden Überschreiben der Csv bei jeder Iteration –

Antwort

0

Sie wurden in jeder Iteration der Schleife zu exportieren, das würde überschreiben die Datei. Ich habe es nicht versucht, aber die Änderungen unten sollten funktionieren.

$allUsers | Foreach-Object { 
    $user = $_ 
    Get-ADUser $user.samaccountname -Properties userprincipalname | select -Property userprincipalname 
} | export-csv $path -NoTypeInformation 

Sie müssen diese Syntax vs foreach(x in y) verwenden, wenn Sie die Ergebnisse export-csv

+0

Travis direkt Pipeline wollen, danke, die Eingabe Ihrer Code in Werken. Können Sie erklären, warum 'foreach ($ user in $ allUsers) verwendet wird { Get-ADUser $ user.SamAccountName -Eigenschaften userprincipalname | Wählen Sie -Property userprincipalname } | export-csv $ pfad -NoTypeInformation' Funktioniert nicht? Es sagt, ich habe eine leere Pipeline. Es scheint einen fundamentalen Unterschied zu geben zwischen foreach und der Art, wie du deine fabriziert hast, aber was ist das? Es scheint mir dasselbe zu sein. Ist die Art, wie Sie es geschrieben haben, effizienter und umfassender? Ist Ihr% {ein Ersatz für jedes oder ist der Schlüssel $ _ pipeline? – DrixlRey

+0

Das Hauptproblem ist der Export ist innerhalb der Schleife ... So überschreiben Sie die Datei bei jeder Iteration. Foreach (x in y) funktioniert nicht in einer Pipeline. Also, wenn Sie diese Syntax verwenden möchten, müssen Sie die Ergebnisse in einer Sammlung ansammeln und die Sammlung zu exportieren nach dem foreach – TravisEz13

+0

Der Code, den ich gerade oben gebucht hat den Export außerhalb der Schleife richtig? Es ist außerhalb der} wenn ich genau meinen letzten Kommentar mache, wird es leere Pipeline sagen. – DrixlRey

Verwandte Themen