AD Script zum gegenprüfen von aktiven Usern

RAMSoße

Lt. Commander
Registriert
März 2018
Beiträge
1.572
Moin

Ich hoffe das meine Überschrift nicht zu kryptisch ist. Folgenden Anwendungsfall:

Datensatz von Usern Anzahl X. Diese User aus Datensatz X möchte ich mit den vorhandenen Usern im AD abgleichen. Sind diese noch vorhanden? Da es sich um eine gewaltige Menge handelt, wäre es toll wenn man das automatisieren könnte. Datensatz z.B. Namen oder Kürzel rein und Tabelle raus mit z.b true or false.


Besten Dank

Wünsch euch einen schönen Mittwoch
 
Und jetzt sollen wir Code für dich basteln oder hast du bereits was geschrieben?
 
Wie Lasse schreibt, wäre interessant ob du dir schon Gedanken zur Umsetzung gemacht hast.
Glaub den kompletten Code wird dir niemand mal so eben zaubern..evtl. findest aber etwas auf serverfault.
 
Sollt natürlich nicht den Code schreiben. Dachte nur, ihr kennt evtl. eine Quelle. ich bin noch ganz unbedarft auf dem Gebiet. Kann nicht mal einschätzen ob das recht aufwendig ist.

@sikarr Danke für den Tipp
 
  • Gefällt mir
Reaktionen: RAMSoße und maloz
Wie im Link von derlorenz schon angedeutet, grobe Reihenfolge:

get-content oder import-csv um deine Namensliste rein zu bekommen

foreach ($user in $importierteuser){
try
  • get-aduser
  • zurückgegebene Daten in eine Variable packen
catch
  • Name und 'nicht vorhanden' in Variable packen
Sammelvariable += Variable
}

export-csv Sammelvariable

so ganz grob
 
  • Gefällt mir
Reaktionen: RAMSoße, nosti und maloz
Code:
    $inputfile = 'C:\uid.csv',
    $outFile = 'C:\compars.csv'
)
Get-Content $inputfile |
    ForEach-Object{
        if($c = Get-ADComputer -Filter "DNSHostName -eq $_" -Properties *){
            $c
        }else{
            [pscustomobject]@{DNSHostName=$_; CanonicalName=''}
        }
    } |
        select DNSHostName, CanonicalName |
    Export-Csv $outFile

Das habe ich jetzt vom Link kopiert und nur die Dateinamen angepasst. Mit dem Rest kann ich leider wenig anfangen.

Wo bestimme ich denn, dass er in der csv Datei die Spalte sAMAccountName Nehmen soll und auch dieses Attribut im AD auslesen so wie vergleichen soll?
Wäre das pscustomobject im code?
 
  • Gefällt mir
Reaktionen: RAMSoße und derlorenz
@sikarr

ok. MEGA! hat super hingehauen. 5h Arbeit gespart

ok zu früh gefreut.

er gibt not found aus. Stichproben haben ergeben, dass diese User nur deaktiviert sind aber durchaus vorhanden. Wie kann ich den Code abändern, so dass er auch deaktivierte User erkennt?
 
Zuletzt bearbeitet:
Konnte ich jetzt nicht nachvollziehen. Deaktivierte User (z.B. User-Konten für Freigaben) werden erkannt.

Kannst du aber auch selber testen, z.B. dashier einmal in Powershell eintickern:
Get-ADObject -LDAPFilter cn=Gast

Gast dann halt mit dem entsprechendem User ersetzen, aber der Gast-User ist Teil des Standard-Inventar und wird deaktiviert angelegt.
 
Zurück
Oben