Я использую vbscript для взаимодействия с классами WMI. Я запрашиваю класс Win32_GroupUser который определен здесь https://msdn.microsoft.com/en-us/library/windows/desktop/aa394153%28v=vs.85%29.aspx.

В определении он имеет следующие компоненты:

class Win32_GroupUser : CIM_Component
{
  Win32_Group   REF GroupComponent;
  Win32_Account REF PartComponent;
};

Мой VBScript выглядит следующим образом:

dim objWMIService, o, obj, test, test1, strComputer
strComputer = "."

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\"& strComputer & "\root\cimv2")
set obj = objWMIService.ExecQuery("select partcomponent,groupcomponent from win32_groupuser")

for each o in obj
    set test = objWMIService.ReferencesTo(o.groupcomponent)
    wscript.echo o.groupcomponent
    set test1 = test.itemindex(0)
    wscript.echo "test is a "&typename(test)&", test1 is a "&typename(test1)
    on error resume next
    for each j in test1.methods_ 'list all methods
        wscript.echo "Method: "&j.name
    next
    for each j in test1.properties_ 'list all properties
        wscript.echo "Property: "&j.name
    next
    i = test1.properties_("GroupComponent")
    wscript.echo "Groupcomponent is a " & typename(i)
    wscript.echo "GroupComponent: "&i

next

Выход

\\COMPUTER\root\cimv2:Win32_Group.Domain="TESTDOMAIN",Name="Schema Admins"
test is a SWbemObjectSet, test1 is a SWbemObjectEx
Property: GroupComponent
Property: PartComponent
Groupcomponent is a String
Groupcomponent: \\COMPUTER\root\cimv2:Win32_NTDomain.Name="Domain: TESTDOMAIN"

Однако у меня возникли проблемы при попытке перейти по ссылке на GroupComponent ; он продолжает появляться как строка, а не как объект win32_group , поэтому я не могу получить доступ к таким свойствам, как SID и т. д.

Как я могу получить доступ к groupcomponent как объект win32_group, а не как строка?

0