VBS - Auslesen ob User member in einen bestimmten AD Gruppe ist
Hallo Leute,
ich habe ein Script geschriben welches ich gerne auf AD Gruppen beschränken würde. Das bedeutet wenn der Benutzer der das Script ausführt in einer bestimmten Gruppe im AD member ist kann er das Script starten. Wenn nicht schließt sich das Script mit einer Fehlermeldung MSGBOX automatisch.
Ich habe schon viel im WWW gesucht aber nichts passendes gefunden das ich einbauen könnte. Leider habe ich auch noch nicht viel Erfahrung mir Scripting was das AD betrifft.
Villeicht könnt Ihr mir hier weiterhelfen.
ich habe ein Script geschriben welches ich gerne auf AD Gruppen beschränken würde. Das bedeutet wenn der Benutzer der das Script ausführt in einer bestimmten Gruppe im AD member ist kann er das Script starten. Wenn nicht schließt sich das Script mit einer Fehlermeldung MSGBOX automatisch.
'Globale DimDim Netpath, Personalnummer, UserID, Information, TitelScript, intAnswereDim Username, DeleteFile, DeleteFolder, OpenTextFileSet WSHShell = WScript.CreateObject("WScript.Shell")Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")Set g_onw = WScript.CreateObject("Wscript.Network")Set Logdatei = oFSO.OpenTextFile ("\\r-nas-wi-701\logs$\Cleaner.log",8,True)Set oshell = CreateObject("Shell.Application")Netpath = "\\r-sbc-wi-701\sbcprofile$\"Information = "Profile Cleaner V1.0" & VbCrLf & " " & VbCrLf & " " & VbCrLf & " " & VbCrLf & " " & VbCrLf & "Bitte geben Sie die Personalnummer des Users an:"TitelScript = "Profile Cleaner V1.0"Do While 1' Abfrage der PersonalnummerUserID = InputBox (Information,TitelScript,"",vbQuestion)If UserID = "" Then MsgBox "Das Programm wird geschlossen", vbInformation, "Profile Cleaner V1.0"Wscript.QuitEnd If' Output wenn kein CTX Profil mit dem Usernamen existiert.If Not (oFSO.FolderExists(Netpath & USERID)) Then MsgBox "Der Benutzer > " & UserID & " < besitzt kein Citrix Profil oder die Personalnummer ist falsch!", vbInformation, "Profile Cleaner V1.0" ' WScript.QuitEnd If' Output wenn CTX Profil mit dem Usernamen existiert dann Abfrage ob wirklich gelöscht werden soll. If (oFSO.FolderExists(Netpath & USERID)) ThenintAnswer = _ MsgBox ("Wollen Sie wirklich das Citrix Profil des benutzers > " & UserID & " < zurücksetzen?", vbQuestion + vbYesNo, "Profile Cleaner V1.0") If intAnswer = vbYes Then' Files und Folder im Citrix Profil löschen oFSO.DeleteFile (Netpath & UserID & "\*.*"), True oFSO.DeleteFolder (Netpath & UserID & "\*.*"), True' Ab hier wird ins log geschrieben log_eintrag = Now & " Der Benutzer: " & g_oNw.UserName & " hat das Citrix Profil des benutzers " & UserID & " erfolgreich zurückgesetzt." logdatei.WriteLine(log_eintrag) logdatei.Close ' MSG Erfolgreich MsgBox "Das Citrix Profil des benutzers > " & UserID & " < wurde erfolgreich zurückgesetzt" , vbInformation, "Profile Cleaner V1.0" Else' MSG Abgebrochen MsgBox "Das zurücksetzen des profils wurde durch den Benutzer abgebrochen!" , vbInformation, "Profile Cleaner V1.0" End IfEnd IfLoop
Ich habe schon viel im WWW gesucht aber nichts passendes gefunden das ich einbauen könnte. Leider habe ich auch noch nicht viel Erfahrung mir Scripting was das AD betrifft.
Villeicht könnt Ihr mir hier weiterhelfen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 51022
Url: https://administrator.de/forum/vbs-auslesen-ob-user-member-in-einen-bestimmten-ad-gruppe-ist-51022.html
Ausgedruckt am: 22.04.2025 um 05:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo NeoGate1604!
Na gut, etwas Kurzes - der folgende Codeteil geht alle einer bestimmten Gruppe (OU der Gruppe ist anzugeben) zugeordneten Benutzer mit ihren Anmeldenamen durch und überprüft die Übereinstimmung mit dem Inhalt der Variablen "UserID" (zur besseren Vergleichbarkeit in Kleinbuchstaben - schadet auch nicht, wenn die "UserID" rein numerisch sein sollte):
Wenn Du's von der anderen Seite her angehen willst (alle Gruppenmitgliedschaften des angemeldeten Users auflisten), siehe hier.
HTH
bastla
ich habe ein Script geschriben
Ich habe schon viel im WWW gesucht aber nichts passendes gefunden
Ich dachte, Du bräuchtest nur etwas Info ...Ich habe schon viel im WWW gesucht aber nichts passendes gefunden
Na gut, etwas Kurzes - der folgende Codeteil geht alle einer bestimmten Gruppe (OU der Gruppe ist anzugeben) zugeordneten Benutzer mit ihren Anmeldenamen durch und überprüft die Übereinstimmung mit dem Inhalt der Variablen "UserID" (zur besseren Vergleichbarkeit in Kleinbuchstaben - schadet auch nicht, wenn die "UserID" rein numerisch sein sollte):
bIsMember = False
Set objGroup = GetObject("LDAP://CN=GesuchteGruppe,OU=OUderGruppe,DC=firma,DC=local")
For Each sUser in objGroup.Member
Set objUser = GetObject("LDAP://" & sUser)
If LCase(objUser.sAMAccountName) = LCase(UserID) Then
bIsMember = True
Exit For
End If
Next
If bIsMember Then MsgBox UserID & " ist Miglied der überprüften Gruppe."
Wenn Du's von der anderen Seite her angehen willst (alle Gruppenmitgliedschaften des angemeldeten Users auflisten), siehe hier.
HTH
bastla