NeX 10 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 Hallo Leute, ich suche ein Tool, mit dem ich Benutzerrechte auslesen lassen kann ohne das ich tausendmal die Benutzer im ADS durchklicken muss... Sollte etwas sein, damit ich über alle meine Benutzer eine DOKU machen kann welche Rechte sie haben usw.... Habe mal irgendwo gehört damit es da etwas gibt... Danke MfG NeX Zitieren Link zu diesem Kommentar
grizzly999 11 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 Es gibt eine Trialversion von Hyena. Die hat ein Programm dumpcheck.exe dabei. Das kann das. grizzly999 Zitieren Link zu diesem Kommentar
grutsch 10 Geschrieben 2. April 2003 Melden Teilen Geschrieben 2. April 2003 das geht über WSH-scripte auch ganz gut. Ich habe da schon einiges gemacht. (gelockte User listen, etc.) kann ich zur Verfügung stellen. -falls das tool von grizzly999 nicht das gewünschte Ergebnis bringen sollte. @grizzly999 werd ich auch mal ausprobieren. vielleicht kanns ja was, das ich noch nicht kenne. grutschmööhh Zitieren Link zu diesem Kommentar
NeX 10 Geschrieben 3. April 2003 Autor Melden Teilen Geschrieben 3. April 2003 @grutsch Kannnst Du mir das mal zukommen lassen, eventuell über eMail an ne-crox@web.de? @grizzly999 Danke, werde ich gleich mal testen!!! VG NeX Zitieren Link zu diesem Kommentar
tribun71 10 Geschrieben 3. April 2003 Melden Teilen Geschrieben 3. April 2003 @grutsch also das wsh-script würde mich auch brennend interessieren *g gruss tribun Zitieren Link zu diesem Kommentar
grutsch 10 Geschrieben 3. April 2003 Melden Teilen Geschrieben 3. April 2003 ok, ich bereite es ein bischen auf (morgen) und poste es dann. grutschmööhh Zitieren Link zu diesem Kommentar
pablovschby 10 Geschrieben 4. April 2003 Melden Teilen Geschrieben 4. April 2003 @grutsch: dein skript würd mich auch interessieren.... frage dazu: laufen diese "wsh"-scripts unter windows 2000 im gleichen stil wie die vb-scripts...? gruss&merci pablo Zitieren Link zu diesem Kommentar
grutsch 10 Geschrieben 4. April 2003 Melden Teilen Geschrieben 4. April 2003 wie versprochen.... zuerst muss ich mich korrigieren. Ich habe zwar an scripten gebastelt, bin aber an einer bestimmten stelle nicht weiter gekommen. Von Anfang: ich suchte nach einer Möglichkeit, gelockten User per WSH auszulesen (und zu entsperren). In eine Winnt kein Problem: folgendes Script entsperrt User ********* 'Quelle weiss ich nicht mehr UserName = InputBox("Enter user's login name, you want to unlock:") DomainName = "Mydomain" Set UserObj = GetObject("WinNT://"& DomainName &"/"& UserName &"") If UserObj.IsAccountLocked = -1 then UserObj.IsAccountLocked = 0 UserObj.SetInfo If err.number = 0 Then Wscript.Echo "Unlock Failed. Check that the account is locked-out." Else Wscript.Echo "Unlock Successful" End if ******************* In eine LDAP Umgebung lässt sich das script nicht übernehmen. Ich kann zwar viele Sachen auslesen, aber nicht alles. Insbesondere dei Eigenschaft 'gelockt' nicht, das ist ein Bug im ADSI (es ist zwar überall beschrieben, dass es funktioniert, tut es aber nicht) Normalerweise kann man über ADODB die ganzen User einlesen und dann mit IADSUSER die Eigenschaften auslesen. (die Namen der Eigenschaften bekommt man aus ADSI-Edit /Reskit) Beispiel: '*** ENUM USERS TxtFile="C:\Data\Users.txt" Set objConnection = CreateObject("ADODB.Connection") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand = CreateObject("ADODB.Command") Set objCommand.ActiveConnection = objConnection objCommand.CommandText = _ "Select ADsPath, Name, SamAccountname, PrimaryGroupID from 'LDAP://DC=pzn-wiesloch,DC=de' " _ & "where objectClass='User' AND objectCategory='person'" objCommand.Properties("Page Size") = 10000 objCommand.Properties("Timeout") = 30 objCommand.Properties("Searchscope") = 2 objCommand.Properties("Cache Results") = False Set RS = objCommand.Execute Set fso = CreateObject("Scripting.FileSystemObject") Set datei = fso.CreateTextFile(TxtFile, True) datei.writeLine "Liste der User" & vbCrLf RS.Movefirst While Not RS.EOF UserN = RS.fields("ADsPath").value Set ADSUsr = GetObject(UserN) ADSUsr.GetInfo tx = ADSUsr.PasswordLastChanged tx=tx&";"&ADSUsr.lastLogon 'hier können die anderen Eigenschaften eingesetzt werden x = RS.Fields("name").Value & "; " & RS.Fields("SamAccountname").Value & Loc datei.writeLine x & ";" & tx RS.Movenext Wend **************** Wie gesagt, alles mögliche geht, aber nicht alles. Eine Lösung fand ich bei Joe. http://www.joeware.net'>http://www.joeware.net er stellt ein Tool zur Verfügung, das diesen Bug behebt und sauschnell ist. via script unsere domäne zu durchsuchen dauert 20 sec. sein tool braucht 4. ' ********* ' * benutzt das Tool secdata von http://www.joeware.net ' * das eine Textdatei mit allen security Informationen ' * aller User erzeugt. ' * ' * Das Script wertet die erzeugte Datei aus. (einDatei) ' * und erzeugt die Datei ausDatei ' * Feb 2003 ' ********** einDatei = "C:\LockedUsers\Ein.txt" ausDatei = "C:\LockedUsers\Locked.txt" wscript.timeout = 50 'wenns langt Set fso = CreateObject("Scripting.FileSystemObject") Set oTextStream = fso.GetFile(EinDatei) Set oEin = oTextStream.OpenAsTextStream(1) Set oAus = fso.CreateTextFile(ausDatei, True) i = 0 'zähler oEin.SkipLine 'die erste Zeile hat Überschriften Do While Not oEin.AtEndOfStream x = Trim(oEin.Readline) sArray = Split(x, ";", -1, 1) ' sArray(0) contains sAMAccountName; ' sArray(1) contains cn; ' sArray(2) contains distinguishedName ' sArray(3) ontains badPasswordTime ' sArray(4) contains badPwdCount ' sArray(5) contains lastLogon ' sArray(6) contains logonCount ' sArray(7) contains pwdLastSet ' sArray(8) contains PwdAge ' sArray(9) contains lockoutTime ' sArray(10) contains accountExpires ' sArray(11) contains createTimeStamp ' sArray(12) contains ObjAge ' sArray(13) contains modifyTimeStamp ' sArray(14) contains ModAge ' sArray(15) contains userAccountControl; 'MsgBox(sarray(0) &";"& sarray(1) &";"& sarray(4)& "; " & sArray(9)) If InStr(sArray(9),"00/00/0000") = 0 then 'false returned 'Text schreiben: sAMAccountName cn badPwdCount lockoutTime LDatum = left(sarray(9),10) LZeit = right(sarray(9),8) oAus.WriteLine sArray(1) & "; " & sArray(0)& "; " & LDatum & " " & LZeit End If Loop oAus.Close oEin.Close ***** Wir machen das jetzt so: Diese Textdatei wird alle 2 Min erzeugt und über ein PHP Script ausgewertet und ins Intranet gestellt, zusammen mit einem Befehl, den User zu entsperren.. ******* Ich hoffe, ich habe die Erwartungen nicht enttäuscht. Vor allem der Link zu Joe (Freeware!) dürfte hilfreich sein. Falls noch was fehlt, gebe ich gerne weitere Hilfe (bitte PN, wenn es nich das Forum betrifft) Ach ja, zum Schluss: DOMAdmin Rechte braucht man schon..... :wink2: grutschmööhhh Zitieren Link zu diesem Kommentar
BlackMan2 10 Geschrieben 5. April 2003 Melden Teilen Geschrieben 5. April 2003 Gute Arbeit! Respekt!! Zitieren Link zu diesem Kommentar
NeX 10 Geschrieben 10. April 2003 Autor Melden Teilen Geschrieben 10. April 2003 :D !!!R!E!S!P!E!K!T!!! :D Danke Grüsse NeX Zitieren Link zu diesem Kommentar
marka 584 Geschrieben 10. April 2003 Melden Teilen Geschrieben 10. April 2003 Echt Klasse, grutsch! Oder, um mit Deinen Worten zu sprechen: grutschmööööööh! 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.