Script zum auslesen des Stanard PW im AD funktioniert nicht.
Hi, ich habe hier ein Script gefunden, welches ich echt super gebrauchen könnte.
Es prüft, welche User noch nicht ihr Standard PW im AD geändert haben, in dem es probiert mit dem im Script definierten PW auf einen anderen Rechner ein Netzlaufwerk zu mappen! Wenn das mappen klappt, hat der User noch das Standard PW.
Eigentlich echt genial. Nur bei mir wird in der Textdatei nichts angezeigt, obwohl etliche Ihr PW noch nicht geändert haben.
Die Datei wird IMHO auch viel zu schnell erzeugt (1 Sek.) Bei ca. 500 Usern finde ich das wohl viel zu schnell.
Vielleicht könnt Ihr ja mal ein Blick auf das Script werfen, ob da irgend ein Fehler drin ist.
Ich habe einen Ordner auf meinen PC frei gegeben für alle, und der soll dann gemappt werden.
Es prüft, welche User noch nicht ihr Standard PW im AD geändert haben, in dem es probiert mit dem im Script definierten PW auf einen anderen Rechner ein Netzlaufwerk zu mappen! Wenn das mappen klappt, hat der User noch das Standard PW.
Eigentlich echt genial. Nur bei mir wird in der Textdatei nichts angezeigt, obwohl etliche Ihr PW noch nicht geändert haben.
Die Datei wird IMHO auch viel zu schnell erzeugt (1 Sek.) Bei ca. 500 Usern finde ich das wohl viel zu schnell.
Vielleicht könnt Ihr ja mal ein Blick auf das Script werfen, ob da irgend ein Fehler drin ist.
Ich habe einen Ordner auf meinen PC frei gegeben für alle, und der soll dann gemappt werden.
'Hier die einzelnen Variablen definieren
'DN der OU, die durchsucht werden soll
strDN = "OU=xxx,DC=xxx,DC=xxx,DC=xxx"
'Pfad zum Logfile, in dem die User mit Standardkennwort eingetragen werden
strLogPath = "c:\logfile.txt"
'UNC-Pfad, der zum Test gemappt werden soll
strTestUNC = "\\meinpc\testshare"
'Wie sieht das Standardkennwort aus?
strPass = "xxxx"
'AB HIER NICHTS MEHR VERÄNDERN!
'===========================================================================
Set objOU = GetObject ("LDAP://" & strDN)
objOU.Filter = Array("User")
Set objNet = CreateObject ("WScript.Network")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTs = objFso.OpenTextFile(strLogPath, 2, True)
objTs.WriteLine Now
objTs.writeline("Folgende Benutzer verwenden noch " _
& "das initiale Kennwort:")
Set WshShell = WScript.CreateObject("WScript.Shell")
On Error Resume Next
For Each user In objOU
' Usernamen ausgeben
WScript.Echo user.Name
' Test: Laufwerk verbinden
objNet.MapNetworkDrive "X:", strTestUNC, _
, user.SamAccountName, strPass
' Fehler aufgetreten?
If Err.Number = 0 Then
' Nein, User protokollieren
objTs.writeline(user.Samaccountname)
Else
' Ja, Fehler anzeigen
WScript.Echo "Fehler " & Err.number _
& " (" & Err.Description & ") " _
& "bei User: " & user.Name
Err.Clear
End If
objNet.RemoveNetworkDrive "X:"
Next
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 68927
Url: https://administrator.de/contentid/68927
Ausgedruckt am: 25.11.2024 um 23:11 Uhr
5 Kommentare
Neuester Kommentar
Hi,
laut msdn ( http://msdn2.microsoft.com/en-us/library/8kst88h6.aspx ) sieht die Syntax für MapNetworkDrive so aus:
object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])
da du vbs verwendest musst du wenn du die [Optionalen] Parameter verwendest (AFAIK) alle verwenden.
was bringt dir denn eine MsgBox User.SamAccountName für eine Meldung ? eventuell stimmt der Parameter nicht.
Gruß
Micha
laut msdn ( http://msdn2.microsoft.com/en-us/library/8kst88h6.aspx ) sieht die Syntax für MapNetworkDrive so aus:
object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])
da du vbs verwendest musst du wenn du die [Optionalen] Parameter verwendest (AFAIK) alle verwenden.
was bringt dir denn eine MsgBox User.SamAccountName für eine Meldung ? eventuell stimmt der Parameter nicht.
Gruß
Micha