Jump to content

ADS - Gibt es ein Tool zum auslesen der Benutzerrechte?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...