Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Einfaches Tool um AD Felder zu exportieren

Frage Microsoft Windows Server

Mitglied: lordofremixes

lordofremixes (Level 1) - Jetzt verbinden

07.10.2014, aktualisiert 16:53 Uhr, 3730 Aufrufe, 30 Kommentare

Hallo zusammen,

gibt es ein einfaches, kostenloses Tool, um alle möglichen Felder im AD (Name, Funktion, Abteilung, Niederlassung, Fax, Pager, Kostenstelle, Straße usw..) in Excel, CSV oder Text zu exportieren?
Mit dem AD integrierten "Liste exportieren" Feature ist das zwar möglich, ich kann aber nicht alle Felder exportieren, die ich benötige, wie z.B. Fax, Pager oder Kostenstelle?

Ist leider noch ein Windows Server 2008 Sp2, aber kein R2, daher leider noch kein Active Directory Module...

Wäre nett, wenn mir jemand Tipps geben könnte.

Gruß
lordofremixes
30 Antworten
Mitglied: Cthluhu
07.10.2014 um 12:57 Uhr
Hi,

IMHO kann man mit Excel und VBA das AD auslesen. Einfach mal nach "excel vba ad auslesen" suchen. Beispielcode gibts haufenweise im Internet.

Mit freundlichen Grüßen

Cthluhu
Bitte warten ..
Mitglied: 114757
07.10.2014, aktualisiert um 13:16 Uhr
Windows Server 2007
hä?? den gibt's nicht höchstens 2008 und der hat das AD Module für die Powershell
01.
Import-Module ActiveDirectory 
02.
get-aduser -Filter * -Properties * | select * | Export-Csv 'c:\export.csv' -delimiter ';' -NoType -Encoding UTF8
Gruß jodel32
Bitte warten ..
Mitglied: Tommy70
07.10.2014 um 13:58 Uhr
Hallo,

falls dir Htm Dateien auch weiter helfen, könnte José Active-Directory-Dokumentation etwas für dich sein.

Tom
Bitte warten ..
Mitglied: lordofremixes
07.10.2014 um 14:47 Uhr
Zitat von 114757:

> Windows Server 2007
hä?? den gibt's nicht höchstens 2008 und der hat das AD Module für die Powershell
01.
> Import-Module ActiveDirectory 
02.
> get-aduser -Filter * -Properties * | select * | Export-Csv 'c:\export.csv' -delimiter ';' -NoType -Encoding 
03.
> UTF8 
04.
> 
Gruß jodel32

Hallo jodel32,
Sorry meinte 2008, nur noch kein R2. Finde da leider kein AD Modul für die Powershell?!
Gruß
Bitte warten ..
Mitglied: lordofremixes
07.10.2014 um 14:48 Uhr
Zitat von Tommy70:

Hallo,

falls dir Htm Dateien auch weiter helfen, könnte [http://www.faq-o-matic.net/jose/ José
Active-Directory-Dokumentation] etwas für dich sein.

Tom

José Active-Directory-Dokumentation ist echt gut, gibt aber leider kein Auslesen von den Feldern Fax, Pager usw...

lordofremixes
Bitte warten ..
Mitglied: lordofremixes
07.10.2014, aktualisiert um 15:28 Uhr
Hallo zusammen,

ich finde einfach kein Script, welches mir eine Excelliste mit den folgenden Feldern erstellt:

- Vorname
- Nachname
- Initialien
- Rufnummer
- E-Mail
- Webseite
- Straße
- Ort
- PLZ
- Benutzeranmeldename
im Reiter Rufnummern:
- Privat
- Pager
- Fax
- Position
- Anteilung
- Firma

inkl Unter- OU. Hat vielleicht jemand was fertiges ? Google schon seit 4 Stunden...

gruß
lordofremixes
Bitte warten ..
Mitglied: Tommy70
07.10.2014 um 15:31 Uhr
Zitat von lordofremixes:

> Zitat von Tommy70:
>
> Hallo,
>
> falls dir Htm Dateien auch weiter helfen, könnte [http://www.faq-o-matic.net/jose/ José
> Active-Directory-Dokumentation] etwas für dich sein.
>
> Tom

José Active-Directory-Dokumentation ist echt gut, gibt aber leider kein Auslesen von den Feldern Fax, Pager usw...

lordofremixes

Hallo,

im Standard nicht. Ist aber selbst erweiterbar da alles über die Datei JoseExec.vbs ausgelesen wird.
Somit sollte es auch möglich sein, die noch fehlenden Felder (Fax, Pager usw...) auch anzuzeigen.

Tom
Bitte warten ..
Mitglied: lordofremixes
07.10.2014 um 15:41 Uhr
Zitat von Tommy70:

> Zitat von lordofremixes:
>
> > Zitat von Tommy70:
> >
> > Hallo,
> >
> > falls dir Htm Dateien auch weiter helfen, könnte [http://www.faq-o-matic.net/jose/ José
> > Active-Directory-Dokumentation] etwas für dich sein.
> >
> > Tom
>
> José Active-Directory-Dokumentation ist echt gut, gibt aber leider kein Auslesen von den Feldern Fax, Pager usw...
>
> lordofremixes

Hallo,

im Standard nicht. Ist aber selbst erweiterbar da alles über die Datei JoseExec.vbs ausgelesen wird.
Somit sollte es auch möglich sein, die noch fehlenden Felder (Fax, Pager usw...) auch anzuzeigen.

Tom

Hallo Tom,

danke noch für die Info. Habe aber gerade noch Rücksprache gehalten, und es soll leider definitiv in Excel exportiert werden..
Ansonsten TOP TOOL!

Gruß
Bitte warten ..
Mitglied: colinardo
07.10.2014, aktualisiert 14.11.2014
Moin lordofremixes,
ohne das AD-Modul kannst du es mit einem ADSI-SearcherObjekt in Powershell machen:
01.
# Datei für den Export angeben 
02.
$csvPath = 'C:\export.csv' 
03.
# OU angeben (es wird der Subtree duchsucht) 
04.
$OU = 'ou=Marketing,dc=domain,dc=intern' 
05.
$objSearch = New-Object System.DirectoryServices.DirectorySearcher  
06.
$objSearch.PageSize = 15000  
07.
$objSearch.Filter = "(&(objectCategory=User)(objectCategory=Person))" 
08.
$objSearch.SearchRoot = "LDAP://$OU" 
09.
$objSearch.SearchScope = [System.DirectoryServices.SearchScope]::Subtree 
10.
$allUsers = $objSearch.FindAll()  
11.
$all = @() 
12.
foreach ($user in $allUsers) {  
13.
    $o = $user.GetDirectoryEntry() 
14.
    $propertyHT = @" 
15.
        Username = $($o.SamAccountName.toString()) 
16.
        Vorname = $($o.Givenname.ToString()) 
17.
        Nachname = $($o.sn.toString()) 
18.
        Initialien = $($o.initials.toString()) 
19.
        Rufnummer = $($o.telephoneNumber.toString()) 
20.
        E-Mail = $($o.mail.toString()) 
21.
        Webseite = $($o.wWWHomePage.toString()) 
22.
        Straße = $($o.streetAddress.toString()) 
23.
        Ort = $($o.l.toString()) 
24.
        PLZ = $($o.postalCode.toString()) 
25.
        Nummer Privat = $($o.HomePhone.toString()) 
26.
        Nummer Pager = $($o.pager.toString()) 
27.
        Nummer Fax = $($o.facsimileTelephonenumber.toString()) 
28.
        Position = $($o.Title.toString()) 
29.
        Abteilung = $($o.Department.toString()) 
30.
        Firma = $($o.Company.toString()) 
31.
"@ 
32.
    $all += new-Object PSObject -Property (ConvertFrom-StringData -StringData $propertyHT) 
33.
34.
 
35.
$all | export-csv $csvPath -Delimiter ";" -NoTypeInformation -Encoding UTF8 -Force
Grüße Uwe
Bitte warten ..
Mitglied: lordofremixes
07.10.2014 um 16:12 Uhr
Zitat von colinardo:

Moin lordofremixes,
ohne das AD-Modul kannst du es mit einem ADSI-SearcherObjekt in Powershell machen:
01.
> # Datei für den Export angeben 
02.
> $csvPath = 'C:\export.csv' 
03.
> # OU angeben (es wird der Subtree duchsucht) 
04.
> $OU = 'ou=Marketing,dc=domain,dc=intern' 
05.
> # -------------------------------------------- 
06.
> $objSearch = New-Object System.DirectoryServices.DirectorySearcher  
07.
> $objSearch.PageSize = 15000  
08.
> $objSearch.Filter = "(&(objectCategory=User)(objectCategory=Person))" 
09.
> $objSearch.SearchRoot = "LDAP://$OU" 
10.
> $objSearch.SearchScope = [System.DirectoryServices.SearchScope]::Subtree 
11.
> $allUsers = $objSearch.FindAll()  
12.
> $all = @() 
13.
> foreach ($user in $allUsers) {  
14.
>     $o = $user.GetDirectoryEntry() 
15.
>     $username = $o.SamAccountName.toString() 
16.
>     $vorname = $o.Givenname.ToString() 
17.
>     $nachname = $o.sn.toString() 
18.
>     $initialien = $o.initials.toString() 
19.
>     $rufnummer = $o.telephoneNumber.toString() 
20.
>     $email = $o.mail.toString() 
21.
>     $Webseite = $o.wWWHomePage.toString() 
22.
>     $strasse = $o.streetAddress.toString() 
23.
>     $ort = $o.l.toString() 
24.
>     $plz = $o.postalCode.toString() 
25.
>     $nummer_privat = $o.HomePhone.toString() 
26.
>     $nummer_pager = $o.pager.toString() 
27.
>     $nummer_fax = $o.facsimileTelephonenumber.toString() 
28.
>     $position = $o.Title.toString() 
29.
>     $abteilung = $o.Department.toString() 
30.
>     $firma = $o.Company.toString() 
31.
>  
32.
>     $all += new-Object PSObject -Property 
33.
> @{"Benutzername"=$username;"Vorname"=$vorname;"Nachname"=$nachname;"Initialien"=$initialien;"Rufnummer"=$rufnummer;"E-Mail"=$email;"Webseite"=$Webseite;"Strasse"=$strasse;"PLZ"=$plz;"Ort"=$ort;"Nummer 
34.
> Privat"=$nummer_privat;"Nummer 
35.
> Pager"=$nummer_pager;"Fax"=$nummer_fax;"Position"=$position;"Abteilung"=$abteilung;"Firma"=$firma} 
36.
> } 
37.
>  
38.
> $all | export-csv $csvPath -Delimiter ";" -NoTypeInformation -Encoding UTF8 -Force 
39.
> 
Grüße Uwe


Hallo Uwe!

ich habe den Quellcode direkt in die Powershell kopiert. Es kommen zig Fehlermeldungen.

Oben in Zeile hab ich folgende Text geändert:
$OU = 'ou=Marketing,dc=domain,dc=intern'
ou habe ich unseren Standort z.B. Berlin eingegeben (Unser AD ist in Standorte aufgeteilt), bei Domain den Namen unserer Domäne aber was muss ich bei dc=intern eingeben? Oder muss ich noch weitere Zeilen editieren?

Gruß
lordofremixes
Bitte warten ..
Mitglied: colinardo
07.10.2014, aktualisiert um 16:15 Uhr
Zitat von lordofremixes:
ich habe den Quellcode direkt in die Powershell kopiert. Es kommen zig Fehlermeldungen.
GROBER FEHLER! Das kommt in eine Powershelldatei mit der Endung *.ps1

Falls du das noch nie gemacht hast hier die Anleitung dazu ...

Anleitung: Wie starte ich Powershell-Scripte

  • Zuerst speichert man den Code in einer Textdatei mit der Endung .ps1.
  • Wenn man zum ersten mal Powershell-Scripte ausführt, musst man einmalig vorher noch das Ausführen von Scripten im User-Account freischalten. Dazu öffnet man eine Powershell-Konsole und gibt dort den Befehl Set-ExecutionPolicy RemoteSigned -Force ein. Um diese Policy für alle User auf dem Rechner zu setzen muss man diesen Befehl in einer Powershell-Konsole mit Admin-Rechten starten. Noch ein Hinweis für 64-Bit-Systeme: Hier sollte sowohl für die 32bit und 64Bit Variante der Powershell die Policy in einer Admin-Konsole gesetzt werden: Set-ExecutionPolicy RemoteSigned -Force; start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
  • Jetzt kann das Powershell-Script wie weiter unten erläutert in einer Powershell-Konsole oder aus einer CMD-Fenster heraus ausgeführt werden. Wer lieber mit der Maus arbeitet macht einen Rechtsklick auf die Script-Datei und wählt: Mit Powershell ausführen.
  • Alternativ lässt sich ein Script auch ohne das globale Ändern der ExecutionPolicy ausführen indem man die Policy als Parameter auf der Kommandozeile mitgibt:
powershell.exe -ExecutionPolicy RemoteSigned -File "C:\Pfad\Script.ps1"
Starten eines Scriptes in einer Powershell-Konsole
Immer den kompletten Pfad zum Script angeben, und wenn er Leerzeichen beinhaltet in Anführungszeichen einschließen:
"C:\Pfad\script.ps1"
Liegt das Script im selben Verzeichnis in dem man sich gerade befindet, kann man es auch so abkürzen:
.\script.ps1
Starten von PS-Scripten aus Batch und Kommandozeilen heraus:
Hier gibt es unterschiedliche Methoden, je nach Anforderungen gibt es hier einige Besonderheiten vor allem bei Leerzeichen in Pfaden zu beachten!
Der einfachste Aufruf sieht hier so aus:
powershell.exe -File "C:\Pfad\Script.ps1"
Wenn man dem Script Parameter übergeben möchte:
powershell.exe -File "C:\Pfad\Script.ps1" "Parameter 1" "Parameter 2"
Wenn man "benannte" Parameter übergeben möchte (die einfachen Hochkommas um den Scriptpfad werden benötigt wenn er Leerzeichen beinhaltet):
powershell.exe -command "&'C:\Pfad\Script.ps1' -par1 'Wert1' -par2 'Wert2'"
Man kann auch mehrere Scripte hintereinander ausführen lassen:
powershell.exe -command "&'C:\Pfad\Script1.ps1';&'C:\Pfad\Script2.ps1'"
Weitere Parameter zeigt einem ein powershell -? in einer Konsole an.
Starten von PS-Scripten in der Aufgabenplanung (Taskplaner)
In der jeweiligen Aktion unter "Programm/Script" trägt man powershell.exe ein und unter "Argumente hinzufügen (optional)" trägt man wie oben geschrieben alles was hinter powershell.exe kommt ein - also z.B. -File "C:\Pfad\Script.ps1" "Parameter 1" "Parameter 2"
Bitte warten ..
Mitglied: lordofremixes
07.10.2014 um 16:17 Uhr
Es kommt diese Fehlermeldung:

Windows PowerShell
01.
Copyright (C) 2009 Microsoft Corporation. Alle Rechte vorbehalten. 
02.
 
03.
PS C:\Users\administrator> # Datei für den Export angeben 
04.
PS C:\Users\administrator> $csvPath = 'C:\export.csv' 
05.
PS C:\Users\administrator> # OU angeben (es wird der Subtree duchsucht) 
06.
PS C:\Users\administrator> $OU = 'ou=leingarten,dc=lan.blabla.de,dc=s10' 
07.
PS C:\Users\administrator> # -------------------------------------------- 
08.
PS C:\Users\administrator> $objSearch = New-Object System.DirectoryServices.DirectorySearcher 
09.
PS C:\Users\administrator> $objSearch.PageSize = 15000 
10.
PS C:\Users\administrator> $objSearch.Filter = "(&(objectCategory=User)(objectCategory=Person))" 
11.
PS C:\Users\administrator> $objSearch.SearchRoot = "LDAP://$OU" 
12.
PS C:\Users\administrator> $objSearch.SearchScope = [System.DirectoryServices.SearchScope]::Subtree 
13.
PS C:\Users\administrator> $allUsers = $objSearch.FindAll() 
14.
Ausnahme beim Aufrufen von "FindAll" mit 0 Argument(en):  "Eine Referenzauswertung wurde vom Server zurückgesendet. 
15.
16.
Bei Zeile:1 Zeichen:31 
17.
+ $allUsers = $objSearch.FindAll <<<< () 
18.
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException 
19.
    + FullyQualifiedErrorId : DotNetMethodException 
20.
 
21.
PS C:\Users\administrator> $all = @() 
22.
PS C:\Users\administrator> foreach ($user in $allUsers) { 
23.
>>     $o = $user.GetDirectoryEntry() 
24.
>>     $username = $o.SamAccountName.toString() 
25.
>>     $vorname = $o.Givenname.ToString() 
26.
>>     $nachname = $o.sn.toString() 
27.
>>     $initialien = $o.initials.toString() 
28.
>>     $rufnummer = $o.telephoneNumber.toString() 
29.
>>     $email = $o.mail.toString() 
30.
>>     $Webseite = $o.wWWHomePage.toString() 
31.
>>     $strasse = $o.streetAddress.toString() 
32.
>>     $ort = $o.l.toString() 
33.
>>     $plz = $o.postalCode.toString() 
34.
>>     $nummer_privat = $o.HomePhone.toString() 
35.
>>     $nummer_pager = $o.pager.toString() 
36.
>>     $nummer_fax = $o.facsimileTelephonenumber.toString() 
37.
>>     $position = $o.Title.toString() 
38.
>>     $abteilung = $o.Department.toString() 
39.
>>     $firma = $o.Company.toString() 
40.
>> 
41.
>>     $all += new-Object PSObject -Property @{"Benutzername"=$username;"Vorname"=$vorname;"Nachname"=$nachname;"Initial 
42.
ien"=$initialien;"Rufnummer"=$rufnummer;"E-Mail"=$email;"Webseite"=$Webseite;"Strasse"=$strasse;"PLZ"=$plz;"Ort"=$ort;"N 
43.
ummer Privat"=$nummer_privat;"Nummer Pager"=$nummer_pager;"Fax"=$nummer_fax;"Position"=$position;"Abteilung"=$abteilung; 
44.
"Firma"=$firma} 
45.
>> } 
46.
>> 
47.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
48.
Bei Zeile:2 Zeichen:33 
49.
+     $o = $user.GetDirectoryEntry <<<< () 
50.
    + CategoryInfo          : InvalidOperation: (GetDirectoryEntry:String) [], RuntimeException 
51.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
52.
 
53.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
54.
Bei Zeile:3 Zeichen:43 
55.
+     $username = $o.SamAccountName.toString <<<< () 
56.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
57.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
58.
 
59.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
60.
Bei Zeile:4 Zeichen:37 
61.
+     $vorname = $o.Givenname.ToString <<<< () 
62.
    + CategoryInfo          : InvalidOperation: (ToString:String) [], RuntimeException 
63.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
64.
 
65.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
66.
Bei Zeile:5 Zeichen:31 
67.
+     $nachname = $o.sn.toString <<<< () 
68.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
69.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
70.
 
71.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
72.
Bei Zeile:6 Zeichen:39 
73.
+     $initialien = $o.initials.toString <<<< () 
74.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
75.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
76.
 
77.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
78.
Bei Zeile:7 Zeichen:45 
79.
+     $rufnummer = $o.telephoneNumber.toString <<<< () 
80.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
81.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
82.
 
83.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
84.
Bei Zeile:8 Zeichen:30 
85.
+     $email = $o.mail.toString <<<< () 
86.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
87.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
88.
 
89.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
90.
Bei Zeile:9 Zeichen:40 
91.
+     $Webseite = $o.wWWHomePage.toString <<<< () 
92.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
93.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
94.
 
95.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
96.
Bei Zeile:10 Zeichen:41 
97.
+     $strasse = $o.streetAddress.toString <<<< () 
98.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
99.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
100.
 
101.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
102.
Bei Zeile:11 Zeichen:25 
103.
+     $ort = $o.l.toString <<<< () 
104.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
105.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
106.
 
107.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
108.
Bei Zeile:12 Zeichen:34 
109.
+     $plz = $o.postalCode.toString <<<< () 
110.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
111.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
112.
 
113.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
114.
Bei Zeile:13 Zeichen:43 
115.
+     $nummer_privat = $o.HomePhone.toString <<<< () 
116.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
117.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
118.
 
119.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
120.
Bei Zeile:14 Zeichen:38 
121.
+     $nummer_pager = $o.pager.toString <<<< () 
122.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
123.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
124.
 
125.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
126.
Bei Zeile:15 Zeichen:55 
127.
+     $nummer_fax = $o.facsimileTelephonenumber.toString <<<< () 
128.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
129.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
130.
 
131.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
132.
Bei Zeile:16 Zeichen:34 
133.
+     $position = $o.Title.toString <<<< () 
134.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
135.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
136.
 
137.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
138.
Bei Zeile:17 Zeichen:40 
139.
+     $abteilung = $o.Department.toString <<<< () 
140.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
141.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
142.
 
143.
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen. 
144.
Bei Zeile:18 Zeichen:33 
145.
+     $firma = $o.Company.toString <<<< () 
146.
    + CategoryInfo          : InvalidOperation: (toString:String) [], RuntimeException 
147.
    + FullyQualifiedErrorId : InvokeMethodOnNull 
148.
 
149.
PS C:\Users\administrator> $all | export-csv $csvPath -Delimiter ";" -NoTypeInformation -Encoding UTF8 -Force
Bitte warten ..
Mitglied: colinardo
07.10.2014, aktualisiert um 16:27 Uhr
Wie oben geschrieben kommt der Code in eine .ps1-Datei !!!

ebenso ist deine Formatierung der OU falsch.
Das wird so gemacht ...
$OU = 'ou=leingarten,dc=lan,dc=blabla,dc=de'
Das Format sollte eigentlich jeder Admin beherrschen ...

Den Pfad zu CSV in der zweiten Zeile kannst du natürlich auch anpassen ....
Bitte warten ..
Mitglied: lordofremixes
07.10.2014 um 16:40 Uhr
Zitat von colinardo:

Wie oben geschrieben kommt der Code in eine .ps1-Datei !!!

ebenso ist deine Formatierung der OU falsch.
Das wird so gemacht ...
> $OU = 'ou=leingarten,dc=lan,dc=blabla,dc=de' 
> 
Das Format sollte eigentlich jeder Admin beherrschen ...

Den Pfad zu CSV in der zweiten Zeile kannst du natürlich auch anpassen ....


$OU = 'ou=leingarten,dc=lan,dc=blabla,dc=de'
Das Format sollte eigentlich jeder Admin beherrschen ...
--> Jetzt kenn`s ich ja.. ;)

Danke für deine Ausführungen. War mir alles unbekannt..
Ich habe jetzt folgendes gemacht:

1. cmd als Admin ausgeführt
2. powershell.exe -ExecutionPolicy RemoteSigned -File "C:\Pfad\Script.ps1" eingetippt
3. Script im Ordner als ps1 Datei erstellt
4. Zeile oben RICHTIG angepasst

--> und schon gehts! DANKE.

Du noch eine Frage: Wie müsste man das Script ändern, um die Unter - OU wegzulassen?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.10.2014, aktualisiert um 16:53 Uhr
Zitat von lordofremixes:
-> und schon gehts! DANKE.
abä sichä
Du noch eine Frage: Wie müsste man das Script ändern, um die Unter - OU wegzulassen?
$objSearch.SearchScope = [System.DirectoryServices.SearchScope]::OneLevel
http://msdn.microsoft.com/en-us/library/ms677937%28v=vs.85%29.aspx
Bitte warten ..
Mitglied: lordofremixes
07.10.2014 um 16:53 Uhr
Einfach Hammer!!! Sprachlos
Bitte warten ..
Mitglied: lordofremixes
22.10.2014 um 11:14 Uhr
Zitat von colinardo:

> Zitat von lordofremixes:
> -> und schon gehts! DANKE.
abä sichä
> Du noch eine Frage: Wie müsste man das Script ändern, um die Unter - OU wegzulassen?
> $objSearch.SearchScope = [System.DirectoryServices.SearchScope]::OneLevel 
> 
http://msdn.microsoft.com/en-us/library/ms677937%28v=vs.85%29.aspx

Hallo Uwe,

wenn ich die Zeile :

$objSearch.SearchScope = [System.DirectoryServices.SearchScope]::Subtree

durch

$objSearch.SearchScope = [System.DirectoryServices.SearchScope]::OneLevel

ersetze, und das Script dann ausführe, sind die csv Dateien immer 0 KB groß.
Irgendeine Idee wieso das nicht klappt?

Gruß
lordofremixes
Bitte warten ..
Mitglied: colinardo
22.10.2014 um 11:19 Uhr
dann sind da keine User in der OU auf diesem Level, läuft hier einwandfrei, sorry .
Bitte warten ..
Mitglied: lordofremixes
22.10.2014, aktualisiert um 11:30 Uhr
Zitat von colinardo:

dann sind da keine User in der OU auf diesem Level, läuft hier einwandfrei, sorry .

Dann liegt es wahrscheinlich daran, dass die User ja in der OU unter User drin sind, und das Script nur in der OU schaut.
Wie passe ich die Zeile :

$OU = 'ou=test,dc=lan,dc=testfirma,dc=de'

so an, dass es in der OU 'test' in der Unter-OU 'User'schaut?
Bitte warten ..
Mitglied: colinardo
22.10.2014, aktualisiert um 11:52 Uhr
$OU = 'ou=User,ou=test,dc=lan,dc=testfirma,dc=de' 
Bitte warten ..
Mitglied: lordofremixes
22.10.2014, aktualisiert um 11:49 Uhr
Zitat von colinardo:

> $OU = 'ou=User,ou=test,dc=lan,dc=testfirma,dc=de'  
> 

Da war ich ja nah dran;)

hatte:

$OU = 'ou=test,ou=TGE,dc=lan,dc=testfirma,dc=de'

Danke!
Bitte warten ..
Mitglied: ultrashark
14.11.2014 um 12:27 Uhr
Bei mir kommt es immer zu Folgendem Fehler
01.
Unerwartetes Token "in" im Ausdruck oder in der Anweisung. 
02.
Bei C:\temp\test.ps1:13 Zeichen:20 
03.
+ > foreach ($user in <<<<  $allUsers) { 
04.
    + CategoryInfo          : ParserError: (in:String) [], ParseException 
05.
    + FullyQualifiedErrorId : UnexpectedToken
Wie kommt das?
Bitte warten ..
Mitglied: colinardo
14.11.2014, aktualisiert um 12:35 Uhr
Zitat von ultrashark:
Wie kommt das?
du hast wahrscheinlich den zitierten Code von @lordofremixes kopiert ... da sind die führenden ">"-Zeichen natürlich nicht powershell-konform !
Bitte warten ..
Mitglied: ultrashark
14.11.2014 um 12:37 Uhr
oh gott ich bin so blöd heute ist nicht mein tag danke für die rückmeldung
Bitte warten ..
Mitglied: lordofremixes
11.12.2014 um 11:54 Uhr

Hallo Uwe!

Wie kann ich das oben stehendes Script erweitern, um auch noch das AD Feld Vorgesetzter und das Feld Mitarbeiter im Reiter 'Organisation' auszulesen?
Hast du da eine Idee?

Gruß
lordofremixes
Bitte warten ..
Mitglied: colinardo
11.12.2014, aktualisiert um 12:17 Uhr
Zitat von lordofremixes:
Wie kann ich das oben stehendes Script erweitern, um auch noch das AD Feld Vorgesetzter und das Feld Mitarbeiter im Reiter
'Organisation' auszulesen?
Hast du da eine Idee?
Moin lordo,
für den Vorgesetzten kannst du die Hashtable durch diesen Eintrag erweitern
Vorgesetzter = $(if($o.Manager -ne $null){$o.Manager.toString().Split(",")[0].Substring(3)})
Das Feld Mitarbeiter hat den Ldap-Namen directReports
http://www.selfadsi.de/user-attributes-w2k8.htm
Das lass ich dir mal als Hausaufgabe. Habe hier gerade kein Objekt mit dieser Eigenschaft zur Hand ...

Grüße Uwe
Bitte warten ..
Mitglied: lordofremixes
11.12.2014 um 16:12 Uhr
Zitat von colinardo:

> Zitat von lordofremixes:
> Wie kann ich das oben stehendes Script erweitern, um auch noch das AD Feld Vorgesetzter und das Feld Mitarbeiter im Reiter
> 'Organisation' auszulesen?
> Hast du da eine Idee?
Moin lordo,
für den Vorgesetzten kannst du die Hashtable durch diesen Eintrag erweitern
> Vorgesetzter = $(if($o.Manager -ne $null){$o.Manager.toString().Split(",")[0].Substring(3)}) 
> 
Das Feld Mitarbeiter hat den Ldap-Namen directReports
http://www.selfadsi.de/user-attributes-w2k8.htm
Das lass ich dir mal als Hausaufgabe. Habe hier gerade kein Objekt mit dieser Eigenschaft zur Hand ...

Grüße Uwe

Hallo Uwe!

Danke für die Antwort. Habe das Script um die Zeilen:

01.
 $firma = $o.Company.toString() 
02.
    $mitarbeiter= $o.directReports.toString() 
03.
    $Vorgesetzter = $(if($o.Manager -ne $null){$o.Manager.toString().Split(",")[0].Substring(3)}) 
04.
     
05.
    $all += new-Object PSObject -Property @{"Benutzername"=$username;"Vorname"=$vorname;"Nachname"=$nachname;"Initialien"=$initialien;"Rufnummer"=$rufnummer;"E-Mail"=$email;"Webseite"=$Webseite;"Strasse"=$strasse;"PLZ"=$plz;"Ort"=$ort;"Nummer Privat"=$nummer_privat;"Nummer Pager"=$nummer_pager;"Fax"=$nummer_fax;"Position"=$position;"Abteilung"=$abteilung;"Firma"=$firma;"Mitarbeiter"=$mitarbeiter;"Vorgesetzter"=$vorgesetzter} 
06.
}
erweitert. Hat auch geklappt. Habe ich das so richtig gemacht?
Bitte warten ..
Mitglied: colinardo
11.12.2014, aktualisiert um 16:19 Uhr
^^Zitat von lordofremixes:^
erweitert. Hat auch geklappt. Habe ich das so richtig gemacht?
Yup, ist zwar nicht mehr die Codevariante von oben (hatte das damals ganz oben noch etwas optimiert) aber soweit syntaktisch i.O.

Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
gelöst AD-Felder für User mittels Powershell befüllen aus CSV-Datei (2)

Frage von Alex94G zum Thema Batch & Shell ...

Grafik
gelöst Einfaches Tool um Tutorials zu erstellen (16)

Frage von DaveDave zum Thema Grafik ...

Windows Server
gelöst Wie hieß das Tool nochmal um die AD Anzeige der Reiter zu erweitern? (7)

Frage von M.Marz zum Thema Windows Server ...

Windows Server
Windows Server 2012 R2 Benutzerkonto für Zugriff auf AD Benutzer (1)

Frage von JulianOhm zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...