SaschaO. 10 Geschrieben 31. Oktober 2006 Melden Teilen Geschrieben 31. Oktober 2006 Hallo zusammen, ich würde gerne in Abhängigkeit einer bestimmten Usergruppe, eine bestimmte Anwendung starten! ...zBsp. per Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run "notepad.exe" Leider habe ich noch keine funktionierende Möglichkeit gefunden, dies in Abhängigkeit der bestimmten Usergruppe zu tun :( --> was mach ich hiermit? set UserObj = GetObject("WinNT://" & WshNetwork.UserDomain & "/" & WshNetwork.UserName) --> in Abhängigkeit vom Usernamen? If WshNetwork.UserName = "1234" Then End If --> in Abhängigkeit der Gruppenzugehörigkeit? For Each Group In UserObj.Groups Select Case Group.Name Case "blabla" do xyz Schon jetzt vielen Dank für Eure Mithilfe! :) Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 31. Oktober 2006 Melden Teilen Geschrieben 31. Oktober 2006 Sehe ich das richtig, dass du überprüfen willst, ob der USer in einer bestimmten Gruppe ist? Zitieren Link zu diesem Kommentar
SaschaO. 10 Geschrieben 31. Oktober 2006 Autor Melden Teilen Geschrieben 31. Oktober 2006 Sehe ich das richtig, dass du überprüfen willst, ob der USer in einer bestimmten Gruppe ist? Ja, ich möchte auslesen ob er Mitglied einer bestimmten Gruppe ist und daraufhin dann eine bestimmte Anwendung starten! Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 31. Oktober 2006 Melden Teilen Geschrieben 31. Oktober 2006 In welcher Form hast du die Gruppen? Als DN? Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 31. Oktober 2006 Melden Teilen Geschrieben 31. Oktober 2006 Hier wäre das mal als Beispiel: Dim objWshNetwork, user, rsString, userDN, objUser, arrGroups, objWshShell Set objWshNetwork = CreateObject("WScript.Network") Set objWshShell = CreateObject ("WScript.Shell") 'der aktuell angemeldete user user = objWshNetwork.UserName 'der LDAP-Suchstring, um den DN des Users zu kriegen. rsString = "<LDAP://dc=test,DC=local>;(&(objectclass=user)(name="& user &"));distinguishedName" Set rs=CreateObject("ADODB.recordset") 'ADO-Abfrage rs.Open rsString,"provider=AdsDSOObject" 'Theoretisch könnten ja mehrere Ergebnisse kommen, praktisch nicht ;-) Do Until rs.EOF 'den DN brauche ich, um das Userobjekt zu kriegen 'ich hätte auch gleich MemberOf machen können, ' aber es ist umständlich mit diesem 'fields ein Array auszulesen userDN = rs.fields("distinguishedName") rs.MoveNext 'Aufruf des Userobjektes Set objUser = GetObject("LDAP://" & userDN) 'Wenns mehrere sind, ist es ein Array, ansonsten macht er eins draus If IsArray(objUser.Get("memberOf")) Then arrGroups = objUser.Get("memberOf") Else arrGroups = Array(objUser.Get("memberOf")) End If 'Ab hier habe ich in arrGroups die DNs der Gruppen des Users 'in der for each kann ich jetzt damit machen, was ich will for each group in arrGroups MsgBox group 'notepad aufrufen, wenn Mitglied der Domänenadmins If group = "CN=Domänen-Admins,OU=RootAdmins,DC=test,DC=local" Then objWshShell.Run "%windir%\notepad " End If next Loop rs.Close Zitieren Link zu diesem Kommentar
SaschaO. 10 Geschrieben 31. Oktober 2006 Autor Melden Teilen Geschrieben 31. Oktober 2006 In welcher Form hast du die Gruppen? Als DN? DN? ...sorry steh grad aufm Schlauch :( Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 31. Oktober 2006 Melden Teilen Geschrieben 31. Oktober 2006 DN ist der distinguishedName, also CN=Domänen-Admins,OU=RootAdmins,DC=test,DC=local". In dieser Form bekommst du die Gruppen aus dem memberOf-Feld. Wenn das nix ist, müsstest du das Script noch erweitern, indem du ein GetObject auf diesen DN machst und dir dann den "Name" oder sonstwas zurückliefern lässt, analog zu dem, was ich mit dem User tue, um das memberOf zu kriegen. Gruß woiza Zitieren Link zu diesem Kommentar
SaschaO. 10 Geschrieben 31. Oktober 2006 Autor Melden Teilen Geschrieben 31. Oktober 2006 DN ist der distinguishedName, also CN=Domänen-Admins,OU=RootAdmins,DC=test,DC=local". In dieser Form bekommst du die Gruppen aus dem memberOf-Feld. Wenn das nix ist, müsstest du das Script noch erweitern, indem du ein GetObject auf diesen DN machst und dir dann den "Name" oder sonstwas zurückliefern lässt, analog zu dem, was ich mit dem User tue, um das memberOf zu kriegen. achso! verstehe :) werde es gleich mal ausprobieren! vielen dank! :) Zitieren Link zu diesem Kommentar
SaschaO. 10 Geschrieben 3. November 2006 Autor Melden Teilen Geschrieben 3. November 2006 ...hat prima funktioniert, nachdem ich die Anpassungen bzgl. unserer Domäne machte und ein paar kleine Änderungen in der "for each" - Schleife vornahm! Vielen Dank nochmal! :D Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.