User und Homelaufwerk aus AD per Script löschen
Hallo Admins,
bin neu hier und suche nach einer Lösung zu meinem Problem. Ich mache mich gerade mit Scripten (VBS) vertraut. Jetzt suche ich nach einer Möglichkeit einen User aus dem AD sowie sein Homelaufwerk auf dem Fileserver zu löschen und das ganze dann in einem Logfile zu protokollieren.
Ich habe bereits ein Script was mir bei eingabe des Usernamens den Pfad zu seinem Homelaufwerk ausgibt. Das könnte ich auch in eine Variable setzen um es für das Löschen zu benutzen. Bei dem Script ist aber doof das ich die OU des Users mit angeben muss. Ich will aber das er selber die OU sucht wenn ich ihm den Loginnamen zur Verfügung stelle. Hier mal mein Script bisher:
'On Error Resume Next
strUserName = InputBox("Loginname")
Set objUser = GetObject _
("LDAP:cn=sandrdnn,ou=Users,ou=RD,dc=ads,dc=mobilcom,dc=de")
WScript.Echo "Home Directory: " & objUser.HomeDirectory
Ich habe auch schon Scripts gesehen in denen per LDAP anhand des Usernamens gesucht wurde, aber ich konnte das irgendwie nicht in mein Script übertragen:
<LDAP:dc=ads,dc=mobilcom,dc=de);(&(objectCategory=user)(samAccountName=sandrdnn));samAccountName;subtree
Habt ihr da tipps für einen Scriptneuling?
Gruß
Dennis
PS: Wer fehler findet darf sie behalten.
bin neu hier und suche nach einer Lösung zu meinem Problem. Ich mache mich gerade mit Scripten (VBS) vertraut. Jetzt suche ich nach einer Möglichkeit einen User aus dem AD sowie sein Homelaufwerk auf dem Fileserver zu löschen und das ganze dann in einem Logfile zu protokollieren.
Ich habe bereits ein Script was mir bei eingabe des Usernamens den Pfad zu seinem Homelaufwerk ausgibt. Das könnte ich auch in eine Variable setzen um es für das Löschen zu benutzen. Bei dem Script ist aber doof das ich die OU des Users mit angeben muss. Ich will aber das er selber die OU sucht wenn ich ihm den Loginnamen zur Verfügung stelle. Hier mal mein Script bisher:
'On Error Resume Next
strUserName = InputBox("Loginname")
Set objUser = GetObject _
("LDAP:cn=sandrdnn,ou=Users,ou=RD,dc=ads,dc=mobilcom,dc=de")
WScript.Echo "Home Directory: " & objUser.HomeDirectory
Ich habe auch schon Scripts gesehen in denen per LDAP anhand des Usernamens gesucht wurde, aber ich konnte das irgendwie nicht in mein Script übertragen:
<LDAP:dc=ads,dc=mobilcom,dc=de);(&(objectCategory=user)(samAccountName=sandrdnn));samAccountName;subtree
Habt ihr da tipps für einen Scriptneuling?
Gruß
Dennis
PS: Wer fehler findet darf sie behalten.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78864
Url: https://administrator.de/contentid/78864
Ausgedruckt am: 16.11.2024 um 12:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo sandrdnn und willkommen im Forum!
Schau Dir mal das an: How Can I Get the Full Name of a Windows NT 4.0 User When All I Have is Their Logon Name?
Für den soeben angemeldeten User ginge es übrigens (etwas abgekürzt) so:
Grüße
bastla
Schau Dir mal das an: How Can I Get the Full Name of a Windows NT 4.0 User When All I Have is Their Logon Name?
Für den soeben angemeldeten User ginge es übrigens (etwas abgekürzt) so:
Set objUser = GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName)
Grüße
bastla
PS: Wer fehler findet darf sie behalten.
Danke, habe aber schon genug eigene (und sogar große ) ...
... und eigentlich Pflichtlektüre sind noch folgende Artikel: Die Suche in Active Directory mit Skripten (Teil 1) sowie dessen Teil 2.
Daraus abgeleitet könntest Du Deine Userdaten auch so auslesen:
Grüße
bastla
Daraus abgeleitet könntest Du Deine Userdaten auch so auslesen:
strUser = "sandrdnn"
strDomain = "dc=ads,dc=mobilcom,dc=de"
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT ADsPath FROM 'LDAP://" & strDomain & "' WHERE " _
& "objectCategory='user' AND saMAccountName='" & strUser & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
strPath = objRecordSet.Fields("ADsPath").Value
Set objUser = GetObject(strPath)
WScript.Echo objUser.givenName & vbCrLf & objUser.SN & vbCrLF & objUser.HomeDirectory
objRecordSet.MoveNext
Loop
Grüße
bastla
Moin sandrdnn,
Du könntest zum Herantasten mit diesem Schnipsel (unabhängig von Deinem!) experimentieren.
[Aufruf mit "cscript //nologo IsADatetest.vbs" vom CMD-Prompt.]
Wenn Du Datumsdifferenzen berechnen willst, sollten schon beide Vergleichswerte vom Typ "Datum" sein.
Also solltest den String description umwandeln mit cDate().
Wenn natürlich "Augsburg" in der objUser.description steht, wirst Du nichts sinnvoll vergleichen könnten.
..da könnte auch M$ nur grob schätzen.. <grins>
Grüße
Biber
Du könntest zum Herantasten mit diesem Schnipsel (unabhängig von Deinem!) experimentieren.
'--IsADateTest.vbs --
strvar="08.01.2008 16:26:08"
if isDate(strvar) then
Wscript.echo "Alter in Tagen: " & DateDiff("d", cDate(strvar), now)
end if
Wenn Du Datumsdifferenzen berechnen willst, sollten schon beide Vergleichswerte vom Typ "Datum" sein.
Also solltest den String description umwandeln mit cDate().
Wenn natürlich "Augsburg" in der objUser.description steht, wirst Du nichts sinnvoll vergleichen könnten.
..da könnte auch M$ nur grob schätzen.. <grins>
Grüße
Biber
Moin sandrdnn,
sprachen wir nicht neulich beiläufig darüber, dass man/frau Datumswerte nur mit Datumswerten verrechnen kann und Äpfel und Birnen nur bedingt kompatibel sind?
Ähnliches hast Du hier - findest Du aber selbst heraus. Von welchem Datentyp könnte denn objUser.description sein... so ganz theoretisch? Und von welchem Typ ist wohl Now?
Versuche es mal mit
Grüße
Biber
sprachen wir nicht neulich beiläufig darüber, dass man/frau Datumswerte nur mit Datumswerten verrechnen kann und Äpfel und Birnen nur bedingt kompatibel sind?
Ähnliches hast Du hier - findest Du aber selbst heraus. Von welchem Datentyp könnte denn objUser.description sein... so ganz theoretisch? Und von welchem Typ ist wohl Now?
Versuche es mal mit
objUser.Put "description" , cstr(Now)
Grüße
Biber