Jump to content

Gruppenzugehörigkeit via WSH ermittel


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen ,

 

habe ich die M öglicheit mit WSH herauszufinden ob der User Mitgleid der Gruppe Xy ist?

Konkret handelt es sich bei dem Vorhaben um ein Loginscript welches den Usern die Drucker anhand der Gruppenzugehörigkeit zuweisen soll.

 

Mit Batch war das ganze mit IFMEMBER zu erledigen. Wie kann ich das mit WSH bewerkstelligen.

 

Danke im vorraus

Link zu diesem Kommentar

Dim strUser

Dim strGroup

Dim bolMemberOfGroup

Dim objShell, objFSO, objADOConection, objADOCommand, objRecordSet, wshNetwork, regEx, DL, x

Set objShell = Wscript.CreateObject ("Wscript.Shell")

Set WshNetwork = WScript.CreateObject("WScript.Network")

strPacFile = objShell.ExpandEnvironmentStrings("%TEMP%") & "\ext_auto.pac"

strUser = WshNetwork.UserName

Set objADOConection = CreateObject("ADODB.Connection")

objADOConection.Provider = "ADsDSOObject"

objADOConection.Open "Active Directory Provider"

Set objADOCommand = CreateObject("ADODB.Command")

Set objADOCommand.ActiveConnection = objADOConection

objADOCommand.CommandText = "<LDAP://DC=MICROSOFT,DC=COM>;(&(objectClass=user)(sAMAccountName=" & strUser & "));memberOf;subtree"

Set objRecordSet = objADOCommand.Execute

strGroup = "TESTGROUP"

Set regEx = New RegExp

regEx.Pattern = strGroup

regEx.IgnoreCase = TRUE

If objRecordSet.fields.count = 1 Then

DL = objRecordSet.Fields(0).Value

For Each x In DL

bolMemberOfGroup = regEx.Test(x)

If bolMemberOfGroup Then

Exit For

End If

Next

If bolMemberOfGroup Then

....

End If

End If

Set objRecordSet = Nothing

Set objADOCommand = Nothing

Set objADOConection = Nothing

Set regEx = Nothing

Set WshNetwork = Nothing

Set objShell = Nothing

Link zu diesem Kommentar

Hi , danke erstmal für die antworten.

 

Beiden war leider nicht das was ich gesucht habe. Trotzdem danke.

Ich bin durch zufall auf das hier gestoßen :

 

Option Explicit ' Force explicit declarations

'

' Variables

'

Dim WSHNetwork

Dim FSO

Dim strUserName ' Current user

Dim strUserDomain ' Current User's domain name

Dim ObjGroupDict ' Dictionary of groups to which the user belongs

 

Set WSHNetwork = WScript.CreateObject("WScript.Network")

Set FSO = CreateObject("Scripting.FileSystemObject")

'

' Wait until the user is really logged in...

'

strUserName = ""

While strUserName = ""

WScript.Sleep 100 ' 1/10 th of a second

strUserName = WSHNetwork.UserName

Wend

strUserDomain = WSHNetwork.UserDomain

 

' Read the user's account "Member Of" tab info across the network

' once into a dictionary object.

 

Set ObjGroupDict = CreateMemberOfObject(strUserDomain, strUserName)

If MemberOf(ObjGroupDict, "Domain Admins") Then

wscript.echo "Is a member of Domain Admins."

'REM this line to Map Network Drives

 

'Map network Drives here, UNREM the below lines:

'WSHNetwork.MapNetworkDrive "O:", "\\server1\share"

'WSHNetwork.MapNetworkDrive "Q:", "\\server2\share"

 

Else

wscript.echo "Is NOT a member of Domain Admins"

End If

 

Function MemberOf(ObjDict, strKey)

' Given a Dictionary object containing groups to which the user

' is a member of and a group name, then returns True if the group

' is in the Dictionary else return False.

'

' Inputs:

' strDict - Input, Name of a Dictionary object

' strKey - Input, Value being searched for in

' the Dictionary object

' Sample Usage:

'

' If MemberOf(ObjGroupDict, "DOMAIN ADMINS") Then

' wscript.echo "Is a member of Domain Admins."

' End If

'

'

MemberOf = CBool(ObjGroupDict.Exists(strKey))

 

End Function

 

 

Function CreateMemberOfObject(strDomain, strUserName)

' Given a domain name and username, returns a Dictionary

' object of groups to which the user is a member of.

'

' Inputs:

'

' strDomain - Input, NT Domain name

' strUserName - Input, NT username

'

Dim objUser, objGroup

 

Set CreateMemberOfObject = CreateObject("Scripting.Dictionary")

CreateMemberOfObject.CompareMode = vbTextCompare

Set objUser = GetObject("WinNT://" _

& strDomain & "/" _

& strUserName & ",user")

For Each objGroup In objUser.Groups

CreateMemberOfObject.Add objGroup.Name, "-"

Next

Set objUser = Nothing

 

End Function

 

Quelle : Check Group Membership and Map Drives in a Logon Script

 

Dieses Script ist genau das was ich gebraucht habe.

 

mfg NN2k5

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...