Zum Inhalt wechseln


Foto

PowerShell Export in CSV


  • Bitte melde dich an um zu Antworten
6 Antworten in diesem Thema

#1 kwakS

kwakS

    Board Veteran

  • 586 Beiträge

 

Geschrieben 29. Januar 2009 - 10:30

Hallo zusammen,

ich habe ein kleines Script geschrieben, welches mir die Attribute von den ActiveDirectory Usern ausliest.
Jetzt möchte ich diese gerne in eine CSV Datei exportieren.
Mein Versuch:

$users = [ADSI]"LDAP://$dn"

foreach ($value in $properties)
{
$searcher.PropertiesToLoad.Add($value)
}
$result = $searcher.findall()

foreach ($val1 in $result)
{

$val1.properties.sn | out-file -filepath C:\user.txt -encoding Default -append
$val1.properties.sn | Export-Csv user.csv
#$val1.properties.givenname | out-file -filepath C:\user.txt -encoding Default -append
#$val1.properties.telephonenumber | out-file -filepath C:\user.txt -encoding Default -append
#$val1.properties.title | out-file -filepath C:\user.txt -encoding Default -append
#$val1.properties.department | out-file -filepath C:\user.txt -encoding Default -append
Die Ausgabe in eine Textdatei funktioniert aber die Ausgabe in eine CSV nicht.

folgendes steht in der CSV:
#TYPE System.String
Length
5

Kann mir da jemand weiterhelfen?

Wenn gewünscht, kann ich auch das komplette Script online stellen.
MfG kwakS :confused:

#2 Cybquest

Cybquest

    Expert Member

  • 1.882 Beiträge

 

Geschrieben 29. Januar 2009 - 10:40

Grad ergoogelt ;)
Vielleicht hilfts weiter...
What Can I Do With Windows PowerShell?
My name is Frank, you can say you to me.

#3 kwakS

kwakS

    Board Veteran

  • 586 Beiträge

 

Geschrieben 29. Januar 2009 - 13:09

danke aber die tipps hatte ich auch schon mal ausprobiert ;)
MfG kwakS :confused:

#4 Dukel

Dukel

    Board Veteran

  • 9.244 Beiträge

 

Geschrieben 29. Januar 2009 - 16:14

Da ich auch probleme hatte mit den csv Dateien hab ich das manuel gemacht:

"A`tB`tC`tD" | out-file file.csv -append
foo | % {
"$a`t$B`t$C`t$D" | out-file file.csv -append
}

Man kann `t (=tabulator) auch mit ; oder sonstigem ersetzen, aber da hat Excel "probleme" gemacht, da es per Default nur Tabellen mit Tabulator gleich auflöst.
Sonst muss man über die funktion "Daten in Spalten" oder so ähnlich gehen und den Trenner auswählen.

#5 blub

blub

    Moderator

  • 7.605 Beiträge

 

Geschrieben 29. Januar 2009 - 17:21

Hi,

ich habs mit den QuestExtensions probiert. Damit gehts recht bequem

get-qaduser myuser1  |select-object name,description|export-csv -path C:\temp\user.csv

für manche Properties wie pwdlastset musst du den Parameter -IncludeAllProperties noch setzen

siehe
PowerShell Commands (CMDLETs) for Active Directory by Quest Software

Wenn du wünscht, dass wir dein Beispiel nachvollziehen, dann brauchen wir den ganzen Code. Aber bitte so parametrisiert, dass man bloss Username und evtl. Domainname in den ersten Zeilen anpassen muss.

cu
blub

Ein Kluger bemerkt alles, Ein Dummer macht über alles eine Bemerkung. (Heinrich Heine)


#6 kwakS

kwakS

    Board Veteran

  • 586 Beiträge

 

Geschrieben 30. Januar 2009 - 13:31

Danke für die Hilfe und für das Beispiel von Dukel.

Ich habe es dann zum Schluss auch mit dem QuestExtensions un der PowerGui gelöst.

Danke nochmals.
MfG kwakS :confused:

#7 patricks82

patricks82

    Member

  • 146 Beiträge

 

Geschrieben 02. Februar 2009 - 14:02

Auch wenn schon erledigt. Geht auch ohne die Extensions:

$csv = @()

$users = [ADSI]"LDAP://$dn"

foreach ($value in $properties)
{
$searcher.PropertiesToLoad.Add($value)
}
$result = $searcher.findall()

foreach ($val1 in $result)
{

$row = "" | sn, givenname, telephone, title, department
$row.sn = $val1.properties.sn 
$row.givenname = $val1.properties.givenname
$row.telephone = $val1.properties.telephonenumber 
$row.title = $val1.properties.title 
$row.department = $val1.properties.department
$cvs += $row
}

$csv | export-csv "C:\users.txt"