You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
2.7 KiB
127 lines
2.7 KiB
|
|
On Error Resume Next
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Create an Object Path"
|
|
WScript.Echo ""
|
|
|
|
Set d = CreateObject("WbemScripting.SWbemObjectPath")
|
|
d.Path = "\\erewhon\ROOT\DEFAULT:Foo.Bar=12,Wibble=""Hah"""
|
|
|
|
DumpPath(d)
|
|
|
|
d.RelPath = "Hmm.G=1,H=3"
|
|
|
|
WScript.Echo ""
|
|
DumpPath(d)
|
|
|
|
Set d = Nothing
|
|
|
|
if Err <> 0 then
|
|
WScript.Echo ""
|
|
WScript.Echo "!Error1:", Err.Number, Err.Description
|
|
End if
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Extract an Object Path from a class"
|
|
WScript.Echo ""
|
|
|
|
Set c = GetObject("winmgmts:").Get
|
|
c.Path_.Class = "PATHTEST00"
|
|
Set p = c.Put_
|
|
|
|
DumpPath(p)
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Extract an Object Path from a singleton"
|
|
WScript.Echo ""
|
|
|
|
Set i = GetObject("winmgmts:root/default:__cimomidentification=@")
|
|
Set p = i.Path_
|
|
DumpPath(p)
|
|
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Extract an Object Path from a keyed instance"
|
|
WScript.Echo ""
|
|
|
|
Set i = GetObject("winmgmts:{impersonationLevel=Impersonate}!win32_logicaldisk=""C:""")
|
|
Set p = i.Path_
|
|
DumpPath(p)
|
|
if Err <> 0 then
|
|
WScript.Echo ""
|
|
WScript.Echo "!Error:", Err.Number, Err.Description
|
|
End if
|
|
|
|
|
|
'try to modify this path - should get an error
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Attempt illegal modification of object path class"
|
|
WScript.Echo ""
|
|
|
|
p.Class = "WHoops"
|
|
|
|
if Err <> 0 then
|
|
WScript.Echo "Trapped error successfully:", Err.Number, Err.Source, Err.Description
|
|
Err.Clear
|
|
else
|
|
WScript.Echo "FAILED to trap error"
|
|
end if
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Attempt illegal modification of object path keys"
|
|
WScript.Echo ""
|
|
|
|
p.Keys.Remove ("DeviceID")
|
|
|
|
if Err <> 0 then
|
|
WScript.Echo "Trapped error successfully:", Err.Number, Err.Source, Err.Description
|
|
Err.Clear
|
|
else
|
|
WScript.Echo "FAILED to trap error"
|
|
end if
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Clone keys"
|
|
WScript.Echo ""
|
|
|
|
Set newKeys = p.Keys.Clone
|
|
DumpKeys (newKeys)
|
|
|
|
WScript.Echo ""
|
|
WScript.Echo "Change Cloned keys"
|
|
WScript.Echo ""
|
|
|
|
'Note that the cloned copy of Keys _should_ be mutable
|
|
newKeys.Add "fred", 23
|
|
newKeys.Remove "DeviceID"
|
|
DumpKeys (newKeys)
|
|
|
|
Sub DumpPath(p)
|
|
WScript.Echo "Path=", p.Path
|
|
WScript.Echo "RelPath=",p.RelPath
|
|
WScript.Echo "Class=", p.Class
|
|
WScript.Echo "Server=", p.Server
|
|
WScript.Echo "Namespace=", p.Namespace
|
|
WScript.Echo "DisplayName=", p.DisplayName
|
|
WScript.Echo "ParentNamespace=", p.ParentNamespace
|
|
WScript.Echo "IsClass=", p.IsClass
|
|
WScript.Echo "IsSingleton=", p.IsSingleton
|
|
DumpKeys (p.Keys)
|
|
end Sub
|
|
|
|
Sub DumpKeys (keys)
|
|
for each key in keys
|
|
WScript.Echo "KeyName:", key.Name, "KeyValue:", key.Value
|
|
next
|
|
end Sub
|
|
|
|
Sub DumpPrivileges (privileges)
|
|
WScript.Echo "Privileges:"
|
|
for each privilege in privileges
|
|
WScript.Echo " ", Privilege.Name, Privilege.IsEnabled
|
|
next
|
|
end sub
|
|
|
|
|