LDAP Script als Textdatei ausgeben
Ich habe hier eine Script, welches mir deaktivierte Konten im AD anzeigt. Nur muß ich jede einzelne Nachricht mit OK bestätigen.
Ich hätte gerne, das mir alle User in einer Textdatei abgelegt werden, kenne mich aber 0,0 mit Script aus. Kann mir da jemand helfen?
Das Scribt sieht so aus:
Const ADS_UF_ACCOUNTDISABLE = 2
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"<GC://dc=xxxx,dc=com>;(objectCategory=User)" & _
";userAccountControl,distinguishedName;subtree"
Set objRecordSet = objCommand.Execute
intCounter = 0
Do Until objRecordset.EOF
intUAC=objRecordset.Fields("userAccountControl")
If intUAC AND ADS_UF_ACCOUNTDISABLE Then
WScript.echo objRecordset.Fields("distinguishedName") & " is disabled"
intCounter = intCounter + 1
End If
objRecordset.MoveNext
Loop
WScript.Echo VbCrLf & "A total of " & intCounter & " accounts are disabled."
objConnection.Close
Ich hätte gerne, das mir alle User in einer Textdatei abgelegt werden, kenne mich aber 0,0 mit Script aus. Kann mir da jemand helfen?
Das Scribt sieht so aus:
Const ADS_UF_ACCOUNTDISABLE = 2
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
"<GC://dc=xxxx,dc=com>;(objectCategory=User)" & _
";userAccountControl,distinguishedName;subtree"
Set objRecordSet = objCommand.Execute
intCounter = 0
Do Until objRecordset.EOF
intUAC=objRecordset.Fields("userAccountControl")
If intUAC AND ADS_UF_ACCOUNTDISABLE Then
WScript.echo objRecordset.Fields("distinguishedName") & " is disabled"
intCounter = intCounter + 1
End If
objRecordset.MoveNext
Loop
WScript.Echo VbCrLf & "A total of " & intCounter & " accounts are disabled."
objConnection.Close
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 29707
Url: https://administrator.de/contentid/29707
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
9 Kommentare
Neuester Kommentar
Moin IIaprosper,
Da siehst Du mal, was Skripte ohne Doku taugen ...*gg
Aber ich bewundere immerhin Deinen Mut, ein Skript zu starten, bei dem Du nicht genau weißt, was da abgeht - von solchen Usern lebe auch ja auch *feix*.
Starte Dein Skript "irgendwoGefunden.vbs" nicht Durch Doppelklick, sondern vom CMD-Prompt oder über eine Batchdatei mit der Zeile:
cscript //nologo c:\woauchimmer\irgendwoGefunden.vbs >>c:\logs\DeactivatedUsers.log
...wobei "c:\logs\DeactivatedUsers.log" die Textdatei ist, wo dann dieser User aufgelistet sind.
c:\logs muss existieren und Pfad und Name "c:\woauchimmer\irgendwoGefunden.vbs" muss Du auch anpassen.
Wenn dann diese erste Runde geklappt hat, lies Dich mindestens zu den WScript/CSkript-Unterschieden in der Windows-eigenen Hilfe ein und hangele Dich von dort an weiter.
Gruß
Biber
Da siehst Du mal, was Skripte ohne Doku taugen ...*gg
Aber ich bewundere immerhin Deinen Mut, ein Skript zu starten, bei dem Du nicht genau weißt, was da abgeht - von solchen Usern lebe auch ja auch *feix*.
Starte Dein Skript "irgendwoGefunden.vbs" nicht Durch Doppelklick, sondern vom CMD-Prompt oder über eine Batchdatei mit der Zeile:
cscript //nologo c:\woauchimmer\irgendwoGefunden.vbs >>c:\logs\DeactivatedUsers.log
...wobei "c:\logs\DeactivatedUsers.log" die Textdatei ist, wo dann dieser User aufgelistet sind.
c:\logs muss existieren und Pfad und Name "c:\woauchimmer\irgendwoGefunden.vbs" muss Du auch anpassen.
Wenn dann diese erste Runde geklappt hat, lies Dich mindestens zu den WScript/CSkript-Unterschieden in der Windows-eigenen Hilfe ein und hangele Dich von dort an weiter.
Gruß
Biber
G' Morgen,
probier's mal mit folgenden Zeilen:
Diese Zeile noch anpassen:
Set TF = FSO.OpenTextFile("C:\benutzer.txt",8, True)
Gruß
Dani
probier's mal mit folgenden Zeilen:
Const ADS_UF_ACCOUNTDISABLE = 2
Const ADS_UF_PASSWORD_EXPIRED = &h800000
Const ADS_ACETYPE_ACCESS_DENIED_OBJECT = &H6
Const CHANGE_PASSWORD_GUID = "{ab721a53-1e2f-11d0-9819-00aa0040529b}"
Set objHash = CreateObject("Scripting.Dictionary")
objHash.Add "ADS_UF_DONT_EXPIRE_PASSWD", &h10000
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
'#############################################################
'Dekl. für das schreiben der Textdatei
'#############################################################
Dim fso
Dim TF
Set fso = CreateObject("Scripting.FileSystemObject")
Set TF = FSO.OpenTextFile("C:\benutzer.txt",8, True)
objCommand.CommandText = _
"<GC://" & arrFileLines(l) & ">;(objectCategory=User)" & _
";userAccountControl,distinguishedName,cn;subtree"
Set objRecordSet = objCommand.Execute
Do Until objRecordset.EOF
intUserAccountControl = objRecordset.Fields("userAccountControl")
If NOT intUserAccountControl AND ADS_UF_ACCOUNTDISABLE Then
For Each Key In objHash.Keys
'#############################################################
'Auslesen der Infos und erzeugen des Excelinhalts
'#############################################################
set objuser = getObject ("LDAP://" & objRecordset.Fields("distinguishedName").value)
TF.WriteLine(objuser.distinguishedName)
Next
End If
objRecordset.MoveNext
Loop
objConnection.Close
TF.Close
Diese Zeile noch anpassen:
Set TF = FSO.OpenTextFile("C:\benutzer.txt",8, True)
Gruß
Dani