Jump to content

StStanke

Members
  • Gesamte Inhalte

    11
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von StStanke

  1. 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: cls Clear-Host Set-StrictMode -Version "2.0" import-module Activedirectory # Variablen festlegen $useref = Get-ADGroupMember Script_Test_Stanke_1 $bestand = Get-ADGroupMember Script_Test_Stanke_2 $allusers = @($useref) # Neue User hinzufügen function Add () { Write-Host "User werden hinzugefügt..." if ($bestand.Count -ne $null) { $Add = @( Compare-Object $bestand $allusers -PassThru | where {$_.SideIndicator -eq "=>"}) if ($Add.Count -gt 0) { Add-ADGroupMember Script_Test_Stanke_2 -Members $Add Write-Host "User wurden hinzugefügt..." } else { Write-Host "Keine neuen User" } } else { Add-ADGroupMember $bestand -Members $allusers Write-Host "User wurden hinzugefügt..." } } # Nicht mehr verwendete User löschen function Remove () { Write-Host "User werden entfernt..." if ($bestand.Count -ne $null) { $Remove = @( Compare-Object $allusers $bestand -PassThru | where {$_.SideIndicator -eq "=>"}) if ($Remove.Count -gt 0) { Remove-ADGroupMember Script_Test_Stanke_2 -Members $Remove -Confirm:$false Write-Host "User wurden entfernt..." } else { Write-Host "Keine alten User" } } else { Write-Host "Keine alten User" } } Add; Remove; Wie kriege ich nun hier ein log erzeugt? Ich hoffe ihr könnt mir helfen.
  2. 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
  3. 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.
  4. Die daten werden von einer anderen Abteilung geprüft und und ich bekomme dann eine liste mit "Löschaufträgen" zurück
  5. Kann ich gerne machen wenn ich zu hause bin.
  6. Hast du denn auch das Szenario mit den Verschachtelten OU's?
  7. 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.
  8. 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) Ja das dachte ich mir schon fast aber das Kernproblem ist ja auch das ich nich an bestimmte OU's ran komme
  9. 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
  10. 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
  11. 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: Die 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
×
×
  • Neu erstellen...