Я использую 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, а не как строка?