Construindo uma cadeia de caracteres de moniker
O formato de cadeia de caracteres do moniker é semelhante ao de um caminho de objeto WMI padrão. Para obter mais informações, consulte Requisitos de caminho do objeto WMI.
Um moniker tem as seguintes partes:
- O prefixo WinMgmts: (obrigatório). O prefixo instrui o WSH (Host de Script do Windows) de que o código a seguir usará os objetos da API de script.
- Um componente de configurações de segurança (opcional)
- Um componente de caminho do objeto WMI (opcional)
Você não pode especificar uma senha em uma cadeia de caracteres de moniker WMI. Se você precisar alterar a senha (o parâmetro strPassword) ou o tipo de autenticação (o parâmetro strAuthority) ao se conectar ao WMI, chame SWbemLocator.ConnectServer. É importante lembrar que você só pode especificar a senha e a autoridade ao se conectar a computadores remotos. Tentar defini-los em um script em execução no computador local resultará em um erro. Para obter mais informações sobre quando as configurações de segurança e os componentes do caminho do objeto são usados, consulte Configurações de segurança do WMI.
O moniker a seguir especifica o objeto SWbemServices que representa o namespace root\default com representação ativada, com o privilégio wbemPrivilegeDebug (SeDebugPrivilege) habilitado e o privilégio wbemPrivilegeSecurity (SeSecurityPrivilege) desabilitado.
"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"
Observação
Todas os literais de cadeia de caracteres diferenciam maiúsculas de minúsculas.
O prefixo "!" em um privilégio indica que ele deve ser desabilitado. A omissão desse prefixo implica que o privilégio deve ser habilitado.
O prefixo "!" é usado no nome do computador ou no namespace quando as configurações de segurança estiverem especificadas entre colchetes antes do nome ou do namespace do computador.
Ao especificar o caminho do objeto, as seguintes atribuições padrão são permitidas:
O nome do computador pode ser omitido do caminho do objeto e, nesse caso, o nome do computador local será presumido.
O namespace pode ser omitido do caminho do objeto e, nesse caso, o namespace padrão será presumido.
Isso é determinado pelo valor da chave do Registro HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\Scripting\Default Namespace, o valor padrão é "Root\CIMv2".
Uma classe ou instância também pode ser especificada. Nesse caso, o objeto retornado é um objeto WMI em vez de um objeto de serviços.
Observação
Se for especificada uma classe ou uma instância, você não poderá omitir o namespace ao especificar o nome do computador.
Para obter uma referência das “Constantes de privilégio” usadas na cadeia de caracteres de moniker WMI, consulte Constantes de privilégio e os descritores "Nome curto de script".
Cadeias de caracteres de moniker válidas
Os exemplos a seguir mostram cadeias de caracteres de moniker válidas.
O moniker a seguir identifica o namespace padrão no computador local. Um objeto SWbemServices é retornado.
WinMgmts:
O moniker a seguir identifica o namespace padrão no computador myServer. Um objeto SWbemServices é retornado.
"WinMgmts://myServer"
O moniker a seguir identifica o namespace root\cimv2 no computador myServer. Um objeto SWbemServices é retornado.
"WinMgmts://myServer/root/cimv2"
O moniker a seguir identifica o namespace root\cimv2 no servidor local. Um objeto SWbemServices é retornado.
"WinMgmts:root/cimv2"
O moniker a seguir identifica a classe Win32_LogicalDisk no namespace root\cimv2 no servidor myServer. Um objeto SWbemObject é retornado.
"WinMgmts:{impersonationLevel=impersonate}" _
& "!//myServer/root/cimv2:Win32_LogicalDisk"
O moniker a seguir identifica a classe Win32_LogicalDisk no namespace root\cimv2 no servidor local. Um objeto SWbemObject é retornado.
"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk"
O moniker a seguir identifica a classe Win32_LogicalDisk no namespace padrão no servidor local. Um objeto SWbemObject é retornado.
"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk"
O moniker a seguir identifica a instância de Win32_LogicalDisk correspondente à unidade C: no namespace de script padrão no servidor local. Um objeto SWbemObject é retornado. O namespace padrão para scripts é determinado pela configuração padrão de namespace, conforme especificado no Controle WMI. Para obter mais informações, consulte Configurar a segurança do namespace com o Controle WMI.
"WinMgmts::Win32_LogicalDisk='C:'"
O moniker a seguir identifica a instância de Win32_LogicalDisk correspondente à unidade C: no namespace root\cimv2 no servidor myServer. Um objeto SWbemObject é retornado.
"WinMgmts:{impersonationLevel=impersonate}" & "!//myServer/root/cimv2:Win32_LogicalDisk="C:""
O moniker a seguir identifica a instância de Win32_LogicalDisk correspondente à unidade C: no namespace root\cimv2 no servidor local. Um objeto SWbemObject é retornado.
"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk="C:""
O moniker a seguir identifica a instância de Win32_LogicalDisk correspondente à unidade C: no namespace padrão no servidor local. Um objeto SWbemObject é retornado.
"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk="C:""
O moniker a seguir define o nível de representação para representar e define o privilégio SE_DEBUG.
"WinMgmts:{impersonationLevel=impersonate, (Debug)}"
O moniker a seguir define o nível de representação para representar e define o privilégio SE_DEBUG. Ele também revoga o privilégio SE_SHUTDOWN.
"WinMgmts:{impersonate,(Debug,!Shutdown)}"
O moniker a seguir recupera descrições localizadas em inglês americano para a classe myclass do namespace root\wmi.
"WinMgmts:[locale=ms_409]!root/wmi:myclass"
O moniker a seguir solicita a autenticação Kerberos usando a entidade de segurança mydomain\server.
"Winmgmts:{impersonationLevel=delegate," _
& "authority=kerberos:mydomain\server}" _
& "!//myserver/root/default:__cimomidentification=@"
O moniker a seguir solicita a autenticação NTLM usando o domínio mydomain.
"Winmgmts:{impersonationLevel=impersonate," & _
"authority=ntlmdomain:mydomain} " & _
"!//myserver/root/default:__cimomidentification=@
O exemplo de código VBScript a seguir mostra como combinar parâmetros de segurança e localidade em um moniker.
'*****************************************************************
' Name : Moniker.vbs
'
' Purpose : This example shows how to set various
' parameters in a moniker.
'****************************************************************
Set myobj = GetObject("WINMGMTS:" _
& "{impersonationLevel=impersonate," _
& "authenticationLevel=pktPrivacy," _
& "authority=ntlmdomain:mydomain," _
& "(Debug,!Shutdown)}" _
& "[locale=ms_409]" _
& "!\\User1\ROOT\CIMV2:Win32_LogicalDisk=""C:""")
wscript.echo "File system = " & myobj.filesystem
Observação
Embora os monikers forneçam acesso mais direto aos objetos, em determinadas circunstâncias, o uso repetido de monikers pode ser menos eficiente do que o código equivalente que se conecta explicitamente ao WMI. Se o desempenho do aplicativo for uma consideração importante, é recomendado usar os mecanismos alternativos.
Não é possível usar a função GetObject fornecida pelo VBScript para atualizar ou definir dados ao executar scripts inseridos em uma página HTML, pois o Microsoft Internet Explorer nega o uso dessa chamada por motivos de segurança.