Christopher Hawkins
clh at christopherhawkins.com
Fri Nov 28 16:02:29 CST 2003
Greetings. I wrote a login script for a client some time ago. Part of the script is a function that creates a comma-delimited list of what groups the logging-in user belongs to. The script has been working perfectly until this morning, when the IsMember function started failing. The IT guys have been making configuration changes to various servers, but can't tell me what exactly those changes are. My only clue is that g_oNet.UserDomain comes back with no value. I'm not sure why that would be. All the client machines have the Windows Scripting Host, Windows Management Instrumentation and ADSI installed. There are globals at the top of the script: ' Globals Dim g_oGroupDict Dim g_oNet dim g_sGroupList ...and this function, which is failing, at the bottom: Function IsMember(sGroup) ' Creates a comma-delimited list of groups to which the user belongs. msgbox "IsMember..." & sGroup ' DEBUG Dim sAdsPath Dim oUser Dim oGroup ' Populate dictionary if not already created. If IsEmpty(g_oGroupDict) Then msgbox "GROUPS DICTIONARY IS EMPTY...BUILDING DICTIONARY..." Set g_oGroupDict = CreateObject("Scripting.Dictionary") g_oGroupDict.CompareMode = vbTextCompare sAdsPath = g_oNet.UserDomain & "/" & g_oNet.UserName msgbox "g_oNet.UserDomain = " & g_oNet.UserDomain msgbox "USER PATH = " & sAdsPath ' DEBUG set oUser = GetObject("WinNT://DOMAINABC/" & sUser) For Each oGroup In oUser.Groups msgbox "MEMBER OF: " & oGroup.name ' DEBUG g_oGroupDict.Add oGroup.Name, " - " g_sGroupList = oGroup.Name & ", " & g_sGroupList Next Set oUser = Nothing msgbox "ALL GROUPS = " & g_sGroupList End If IsMember = CBool(g_oGroupDict.Exists(sGroup)) msgbox "End IsMember = " & IsMember msgbox err.number & " - " & err.description,"IsMember" End Function I'm very confounded. The script has been running successfully for weeks now, and no changes have been made (save for the various MsgBox statements I've been using this morning to debug it). The machine this script runs on is a PDC. More info: the script still executes successfully for XP clients. The 98 clients are the ones that cannot execute the script. And the PDC that the users authenticate against is an NT4 machine. I am well and truly stumped. -Christopher-