Hoi hoi,
met behulp van wat voorbeeldjes heb ik een VBS functie geschreven die zou moeten controleren of een gebruiker in een groep zit op het domein (windows 2000 AD native mode). In eerste instantie leek het script goed te werken, als ik als administrator wat tests deed met checks op de user administrator en groepen als "Domain Admins" ging alles goed. Ook de check op de globale groepen is goed (waar admin niet in zit). Afhankelijk van in welke groep een gebruiker zit moeten er wat registry entries weggeschreven worden, deze code werkt.
Voor de duidelijkheid de gebruikers zitten in globale groepen opverdeeld, deze globale groepen (bijv. directie, sectieleiders e.d.) zitten in groepen die toegang geven tot applicaties danwel folders (bijv. word), dit zijn ook globale groepen. Het zijn de laatste groepen die ik wil controleren.
Het vreemde is ik heb dit als 2 gebruikers getest, beiden zitten in dezelfde groepen. Voor de ene gebruiker zijn beide tests waar, voor de andere allebei niet?! Voor de duidelijkheid, in het bovenstaande geval hebben we 2 locaties, afhankelijk van de locatie moet er naar een database gewezen worden, het is dus niet zo dat de registry entries gewoon allemaal weggeschreven kunnen worden, want de 1 zou de ander overschrijven.
Misschien is het probleem dat de gebruikersnamen allemaal 8 cijferige nummers zijn? Kan d'r echt niet bij dat voor de ene gebruiker beide tests ok zijn en voor de andere niet (het waren wel 2 verschillende PC's...), met de user administrator zijn alle tests goed gegaan, ook als ik die aan die groepen toevoegde en verwijderde e.d.
met behulp van wat voorbeeldjes heb ik een VBS functie geschreven die zou moeten controleren of een gebruiker in een groep zit op het domein (windows 2000 AD native mode). In eerste instantie leek het script goed te werken, als ik als administrator wat tests deed met checks op de user administrator en groepen als "Domain Admins" ging alles goed. Ook de check op de globale groepen is goed (waar admin niet in zit). Afhankelijk van in welke groep een gebruiker zit moeten er wat registry entries weggeschreven worden, deze code werkt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| For Each objComputer in colSettings
StrComputerName = objComputer.Name
If StrComputerName = "RBRATS001" or StrComputerName = "RBRATS002" then
If VerifyGroupMembership ( strDomain, "GG-ADM-KM-Absent_voor_Windows", strUserName ) Then
' Hier staat de code die registry entries schrijft
End If
If VerifyGroupMembership ( strDomain, "GG-ADM-KH-Absent_voor_Windows", strUsername ) Then
' Hier staat de code die registry entries schrijft.
End If
End If
Next
' Based on VerifyGroupMembers by Rowen Bankx found at www.freevbcode.com/ShowCode.Asp?ID=4891
Function VerifyGroupMembership( strDomain, strGroup, strUser )
VerifyGroupMembership = False
Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")
bMemberFound = False
For Each objUser In objGroup.Members
'WScript.Echo "Checking Membership for " & objUser.Name & "..."
If( UCase( Trim( strUser ) ) = UCase( Trim( objUser.Name ) ) ) Then
'WScript.Echo "Member found: " & objUser.Name
bMemberFound = True
Exit For
End If
Next
If ( Not bMemberFound ) Then
VerifyGroupMembership = False
Exit Function
End If
VerifyGroupMembership = True
End Function |
Voor de duidelijkheid de gebruikers zitten in globale groepen opverdeeld, deze globale groepen (bijv. directie, sectieleiders e.d.) zitten in groepen die toegang geven tot applicaties danwel folders (bijv. word), dit zijn ook globale groepen. Het zijn de laatste groepen die ik wil controleren.
Het vreemde is ik heb dit als 2 gebruikers getest, beiden zitten in dezelfde groepen. Voor de ene gebruiker zijn beide tests waar, voor de andere allebei niet?! Voor de duidelijkheid, in het bovenstaande geval hebben we 2 locaties, afhankelijk van de locatie moet er naar een database gewezen worden, het is dus niet zo dat de registry entries gewoon allemaal weggeschreven kunnen worden, want de 1 zou de ander overschrijven.
Misschien is het probleem dat de gebruikersnamen allemaal 8 cijferige nummers zijn? Kan d'r echt niet bij dat voor de ene gebruiker beide tests ok zijn en voor de andere niet (het waren wel 2 verschillende PC's...), met de user administrator zijn alle tests goed gegaan, ook als ik die aan die groepen toevoegde en verwijderde e.d.