DDave 10 Geschrieben 25. Mai 2010 Melden Teilen Geschrieben 25. Mai 2010 Hallo, ich hab die Aufgabe unser ADS auf inaktive Accounts zu überprüfen. Es sollen aber nicht nur die letzten Anmeldeinformationen ausglesen werden, sondern die AD-Benutzer sollen mit dem Benutzern unserer Zeiterfassung (AVERO) abgelichen werden. Sobald ein Benutzer in Avero nicht vorhanden ist, soll er aus dem AD gelöscht werden. Also bräuchte das Script eine Schnittstelle zu AVERO, is das überhaupt möglich? Das Löschen der Benutzer soll protokoliert werden. Da wir einige Funktionsbenutzer (wie Maschinen) haben, die nicht im Avero verzeichnet sind, sollen diese nicht gelöscht werden. Da ich im Bezug auf Scripting wenig Ahnung habe, bin ich um jede Hilfe dankbar. Auch wenn jemand vielleicht nur zu einem Teilproblem eine Lösung hätte, wäre ich schon froh ;) Vielen Dank schonmal im Vorraus! Grüße Dave Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 25. Mai 2010 Melden Teilen Geschrieben 25. Mai 2010 Wieso bekommst du die Aufgabe, ein nicht ganz unkomplexes Skript zu erstellen, wenn du nach eigener Aussage keine Ahnung vom Skripten hat? In welcher Sprache willst du es denn schreiben? Winbatch, Perl, Brainf.uck ? Zitieren Link zu diesem Kommentar
DDave 10 Geschrieben 25. Mai 2010 Autor Melden Teilen Geschrieben 25. Mai 2010 Ich soll es zusammen mit einem Kollegen machen, der aber auch noch nicht so richtig weiß, wie wir rangehen sollen. Ich wollte mir schonmal so viele Informationen wie möglich holen. Also Sprachentechnisch sind wir nicht festgelegt, es sollte möglichst einfach gehalten werden und keine zusätzlichen Tools benötigen. Kann man denn die zwei DB`s (Avero, ADS) vergleichen, also gibt es eine Schnittstelle ? Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 25. Mai 2010 Melden Teilen Geschrieben 25. Mai 2010 Ich soll es zusammen mit einem Kollegen machen, der aber auch noch nicht so richtig weiß, wie wir rangehen sollen. . Da seid ihr ja ein DreamTeam mit den besten Voraussetzungen :D Sorry, das alles meinst du doch nicht ernst, oder ? Zitieren Link zu diesem Kommentar
DDave 10 Geschrieben 25. Mai 2010 Autor Melden Teilen Geschrieben 25. Mai 2010 ja total überqualifiziert ;) Es ist zum Glück ein Nebenprojekt, für das wir Zeit haben.. hm, ist eigentlich meiner voller Ernst ja. Ich will auch gar keine Komplettlösung, ein paar Ansätze würden mir reichen. Zitieren Link zu diesem Kommentar
P.Foeckeler 11 Geschrieben 25. Mai 2010 Melden Teilen Geschrieben 25. Mai 2010 Hallo, eine schöne Anlaufstelle für Scripting-Aufgaben im AD wäre das SelfADSI Scripting Tutorial: SelfADSI : Das ADSI Scripting Tutorial / Das LDAP Scripting Tutorial Gruß, Philipp Zitieren Link zu diesem Kommentar
DDave 10 Geschrieben 26. Mai 2010 Autor Melden Teilen Geschrieben 26. Mai 2010 P.Foeckeler : Das ADSI Scripting Tutorial / Das LDAP Scripting Tutorial Super, schonmal ein erster Ansatzpunkt - danke! :) Gruß Dave Zitieren Link zu diesem Kommentar
DDave 10 Geschrieben 26. Mai 2010 Autor Melden Teilen Geschrieben 26. Mai 2010 Ist es möglich die ausglesenen User der AD bzw die von Avero jeweils in Arrays zu schreiben und dieses Arrays dann zu vergleichen? Gruß dave PS: das habe ich bisher,also von jedem Container die User auslesen, aber so bringt mir das ja eigentlich nicht viel, ich muss sie ja dann mit was andrem vergleichen können. Set ou = GetObject("LDAP://apjet01.test.de/ou=AVB,ou=BE,ou=MUE,dc=test,dc=de") For Each obj In ou WScript.Echo obj.name Next Set ou = GetObject("LDAP://apjet01.test.de/ou=EIN,ou=BE,ou=MUE,dc=test,dc=de") For Each obj In ou WScript.Echo obj.name Next Set ou = GetObject("LDAP://apjet01.test.de/ou=FTG,ou=BE,ou=MUE,dc=test,dc=de") For Each obj In ou WScript.Echo obj.name Next usw. Zitieren Link zu diesem Kommentar
P.Foeckeler 11 Geschrieben 26. Mai 2010 Melden Teilen Geschrieben 26. Mai 2010 Hmm, also ein Array könntest Du innerhalb des Scripts schon aufbauen, dass würde dann so aussehen: myArray = Array() Set ou = GetObject("LDAP://apjet01.test.de/ou=AVB,ou=BE,ou=MUE,dc=test,dc=de") For Each obj In ou WScript.Echo obj.name Redim Preserve myArray(Ubound(myArray)+1) ' ...das Array vergrössern myArray(Ubound(myArray)) = obj.name ' ...und ein neues Element hinzu Next Aber Du hast dann wahrscheinlich Schwierigkeiten das Array mit einem anderen zu vergleichen innerhalb von vbscript... Wie wäre es denn, wenn Du die Ausgabe Deines ursprünglichen Scripts in eine Datei umleitest: c:\> cscript test.vbs >Ausgabe.txt in Ausgabe.txt stehen jetzt alle Usernamen, die Du in den OUs gefunden hast. Die kannst du dann mit SORT sortieren und hast eine Liste, die du vergleichen kannst mit sonstwas... Gruß, Philipp Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 26. Mai 2010 Melden Teilen Geschrieben 26. Mai 2010 Moin, in Ausgabe.txt stehen jetzt alle Usernamen, die Du in den OUs gefunden hast. Die kannst du dann mit SORT sortieren und hast eine Liste, die du vergleichen kannst mit sonstwas... beispielsweise mit diesem Verfahren: faq-o-matic.net Unterordner vergleichen Gruß, Nils Zitieren Link zu diesem Kommentar
DDave 10 Geschrieben 26. Mai 2010 Autor Melden Teilen Geschrieben 26. Mai 2010 Super danke! 2 richtig hilfreiche Antworten! Ich werd das mal ausprobieren und dann Rückmeldung geben :) Gruß, Dave Zitieren Link zu diesem Kommentar
DDave 10 Geschrieben 27. Mai 2010 Autor Melden Teilen Geschrieben 27. Mai 2010 Kann ich den Befehl c:\> cscript test.vbs >Ausgabe.txt in einer Batchdatei aufrufen wenn der Pfad D:\Scripting> cscript test.vbs >Ausgabe.txt lautet, bzw wie? :) Und kann ich dann diese Batch Datei mittels: Set WshShell = WScript.CreateObject("WScript.Shell") Return = WshShell.Run("Laufwerk:\Verzeichnispfad\Batch.cmd ") Set WshShell = Nothing in meinem vbs-script aufrufen? Oder kann ich den cmd Befehl D:\Scripting> cscript test.vbs >Ausgabe.txt direkt in mein vbs-script einbauen, das wäre natürlich noch einfacher =) Gruß, Dave Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 27. Mai 2010 Melden Teilen Geschrieben 27. Mai 2010 Moin, kannst du die Frage bitte noch mal so stellen, dass man sie versteht? Gruß, Nils Zitieren Link zu diesem Kommentar
DDave 10 Geschrieben 27. Mai 2010 Autor Melden Teilen Geschrieben 27. Mai 2010 ;) ich hab ja diesen cmd befehl zum schreiben meiner Ausgabe in eine Textdatei D:\Scripting> cscript test.vbs >Ausgabe.txt wie kann ich diesen Befehl in eine Batch einbauen? Und kann ich diese von mir erstelle Batch dann in meinem vbs-script per Set WshShell = WScript.CreateObject("WScript.Shell") Return = WshShell.Run("Laufwerk:\Verzeichnispfad\Batch.cmd ") Set WshShell = Nothing aufrufen? Am einfachsten wäre es natürlich den Befehl D:\Scripting> cscript test.vbs >Ausgabe.txt direkt in mein vbs-script einzubauen ohne es mit einer batch zu umgehen hoffe das war jetzt verständlicher :P Gruß, Dave Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 27. Mai 2010 Melden Teilen Geschrieben 27. Mai 2010 Und wie wärs, wenn Du Dein vbs-Script mit jenem "test.vbs" einfach kombinierst in einer einzigen VBS-Datei? Eine VBS, die eine Batch, welche dann eine VBS aufruft... klingt wie'n nicht gestandener doppelter Rittberger :D Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.