StStanke
-
Gesamte Inhalte
11 -
Registriert seit
-
Letzter Besuch
Beiträge erstellt von StStanke
-
-
Und was war jetzt die Lösung? Das was du als Lösung markiert hattest hat dir doch oben "nicht geholfen", oder versteh ich was falchs?
Bye
Norbert
Irgendwie hatte sich da ein Leerzeichen eingeschlichen das ich ums verrecken nicht gesehen habe bis ich den Code mal in Word kopiert hab um da sicher zu gehen
-
Dann deffiniere mir mal "ordentliche Antworten"!
Ich kann nich mehr machen als euch sagen was ich warum tun will das habe ich getan.
Mein problem ist gelöst daher Danke an dukel.
-
Die daten werden von einer anderen Abteilung geprüft und und ich bekomme dann eine liste mit "Löschaufträgen" zurück
-
Ja.
Kannst du einen Screenshot deines AD's bei einem Bildhoster hochladen und hier verlinken?
Kann ich gerne machen wenn ich zu hause bin.
-
Bei mir (mit der Korrekten OU Angabe) geht das Script ohne Probleme.
Evtl. kannst du mit dem Filter arbeiten, so das nur gewünschte Objekte ausgegeben werden.
Hast du denn auch das Szenario mit den Verschachtelten OU's?
-
Tach,
also: Nein ich meine NICHT den Container sondern eine OU die sinnvollerweise einfach stumpf "Useres" genannt wurde aber die interessiert mich auch nicht mich interessieren OU's die 2 Ebenen weiter darunter aufgehängt wurden.
So was will ich eigentlich machen:
Ich will regelmäßig einen Report aus dem AD ziehen in dem die Daten "samaccountname”,"mail","PasswordExpired","LastLogonDate" in Form einer .csv ausgegeben werden die dann auf einem Share gespeichert wird. Grundsätzlich läuft auch alles nur wäre es schön wenn ich das ganze auf eine bestimmte OU eingrenzen könnte. Macht ja keinen Sinn wenn da Postfächer u.Ä. mit drinhängen bläst nur die Tabelle auf über 30k Zeilen auf das muss ja nich sein woll.
So warum soll es PS sein?
Ja weil das ganze in ein bestehendes scrpit rein soll und weil mir zugegeben keine einfacherer kostenlose Möglichkeit eingefallen ist.
-
Zeile im Script wäre:
#Variablen setzen
$Properties=@(“samaccountname”,"mail","PasswordExpired","LastLogonDate")
#Userobjekte in das Array $Users einlesen
$Users = @(Get-ADUser -Filter '*' -SearchBase "OU=Users,DC=DOMS,DC=KVWL,DC=DE" -Properties $Properties)Moin,
du kannst nicht zwei OUs auf einmal abfragen, sondern immer nur eine.
Gruß, Nils
Ja das dachte ich mir schon fast aber das Kernproblem ist ja auch das ich nich an bestimmte OU's ran komme
-
Ich frage ab
“samaccountname”,"mail","PasswordExpired","LastLogonDate"
Mit Ebene 1 meine ich OU's die direkt unter der Domäne hängen und mit Ebene 2 meine ich OU'S die Unter einer OU der Ebene 1 Hängen.
Wenn ich nun nur 1 OU der Ebene 1 Abfrage läuft alles nehme ich eine 2. dazu dann kriege ich den Fehler der oben angegeben ist.
Nehme ich nun wie du gesagt hast OU=Ebene2,OU=Ebene1,DC=OOOO,DC=OOOO,DC=DE kriege ich wieder den Fehler.
der name der OU's stimmt
-
Es müsste OU=Ebene2,OU=Ebene1,DC=OOOO,DC=OOOO,DC=DE heissen.
Das ist eine LDAP Schreibweise. Wenn du dir nicht sicher bist kannst du diese auch per Active Directory Users & Computers auslesen. Eigenschaften einer OU im Reiter Attribute unter distinguishedName.
Ich habs nun mal so versucht Ergebnis ist das gleiche und dabei ist es egal ob ich OU's aus Ebene1 & Ebene2 nehme oder 2 OU's aus Ebene1
so langsam zweifle ich an mir selber
-
Moin zusammen,
ich habe folgendes vor:
Ich möchte eine Liste von Usern aus dem AD auslesen die in einer bestimmten OU liegen bekomme aber immer einen Fehler ausgegeben.
Mein Script sieht wie folgt aus:
#AD Modul importieren Import-Module ActiveDirectory #Variablen setzen $Properties=@(“samaccountname”,"mail","PasswordExpired","LastLogonDate") #Userobjekte in das Array $Users einlesen $Users = @(Get-ADUser -Filter '*' -SearchBase "OU=Ebene1/Ebene2,DC=OOOO,DC=OOOO,DC=DE" -Properties $Properties) #Anlage der DataTabelle mit Spalten für jede Property in Properties $DataTable=New-Object System.Data.DataTable("ExportUsers") $Properties | foreach { $Column = New-Object System.Data.DataColumn($_) $DataTable.Columns.Add($Column) } #Befüllen der DataTable mit Daten foreach ($User in $Users){ $PropertiesInRow =@() foreach($Property in $Properties) { $OFS=$myOFS $PropertiesInRow += [String]$($User.$($Property.ToString())) $OFS="+" }#foreach($Property in $Properties) $DataTable.Rows.Add($PropertiesInRow) |Out-Null }#foreach ($User in $Users) #Ausgabe $DataTable | Format-Table -Auto $DataTable | Export-Csv "c:\temp\LastLogonDate.csv" -Delimiter ";"
Wenn ich nur in OU Ebene 1 Suche ist auch alles kein Problem aber sobald ich versuche eine Ebene "Tiefer" zu gehen bekomme ich folgende Fehlermeldung:
Get-ADUser : Verzeichnisobjekt nicht gefunden
Bei Zeile:16 Zeichen:22
+ $Users = @(Get-ADUser <<<< -Filter '*' -SearchBase "OU=Ebene1/Ebene2,DC=OOOO,DC=OOOO,DC=DE" -Properties $Properties)
+ CategoryInfo : ObjectNotFound: ( :) [Get-ADUser], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Verzeichnisobjekt nicht gefunden,Microsoft.ActiveDirectory.Management.Commands.GetADUserDie OU's sind wie folgt strukturiert im AD:
OU Ebene1 = Alles
OU Ebene2 = Postfächer; Gruppen; ect.
OU Ebene3 = Benutzer1;Benutzer2; ect.
Eigentlich muss ich die OU's in Ebene 3 einzeln ansteuern können, hat jemand ne Idee?
Grüße
Gruppenabgleich mit PS
in Windows Forum — Scripting
Geschrieben
Hallo zusammen,
ich habe ein kleines Problem weil ich mal so vollkommen auf dem Schlauch stehe. Ich hab ein Script gebaut mit dem ich User einer Gruppe an eine "Mustergruppe" angleichen kann, heißt neue dazu nicht mehr vorhandene raus. Nun müsste ich aber hinterher auch ein Log haben in dem ich sehen kann was das Script gemacht hat und da liegt mein Problem das krieg ich einfach nicht hin.
Mein code sieht so aus:
Wie kriege ich nun hier ein log erzeugt?
Ich hoffe ihr könnt mir helfen.