Partilhar via


Construindo uma cadeia de caracteres de identificador

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 de Objeto WMI.

Um apelido tem as seguintes partes:

  • O prefixo WinMgmts: (obrigatório). O prefixo instrui o Windows Script Host (WSH) que o código a seguir usará os objetos da Scripting API.
  • Um componente de configurações de segurança (opcional)
  • Um componente de caminho de objeto WMI (opcional)

Não é possível especificar uma senha em uma cadeia de caracteres de moniker WMI. Se você precisar alterar a senha (strPassword parâmetro) ou o tipo de autenticação (strAuthority parâmetro) ao se conectar ao WMI, chame SWbemLocator.ConnectServer. Lembre-se de que você só pode especificar a senha e a autoridade em conexões com computadores remotos. A tentativa de defini-los em um script que está sendo executado no computador local resulta 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 a personificação ativada, o privilégio wbemPrivilegeDebug (SeDebugPrivilege) habilitado e o privilégio wbemPrivilegeSecurity (SeSecurityPrivilege) desabilitado.

"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"

Observação

Todos os literais de texto são insensíveis a maiúsculas e minúsculas.

O prefixo "!" em um privilégio indica que o privilégio deve ser desativado; a omissão deste prefixo implica que o privilégio deve ser habilitado.

O prefixo "!" é usado no nome do computador ou namespace quando as configurações de segurança são especificadas entre colchetes antes do nome do computador ou namespace.

 

As seguintes atribuições padrão são permitidas ao especificar o caminho do objeto:

  • O nome da máquina do computador pode ser omitido do caminho do objeto, caso em que o nome da máquina local é assumido.

  • O namespace pode ser omitido do caminho do objeto, caso em que o namespace padrão é assumido.

    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, caso em que o objeto retornado é um objeto WMI em vez de um objeto de serviços.

Observação

Se uma classe ou instância for especificada, você não poderá omitir o namespace ao especificar o nome da máquina do computador.

 

Para obter uma referência das constantes de privilégio usadas na cadeia de caracteres de moniker WMI, consulte Constantes de Privilégioe os descritores "nome curto de script".

Strings de nomes válidos

Os exemplos a seguir mostram cadeias de caracteres de apelido 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 é devolvido.

"WinMgmts://myServer"

O moniker a seguir identifica o namespace root\cimv2 no computador myServer. Um objeto SWbemServices é retornado.

"WinMgmts://myServer/root/cimv2"

O seguinte moniker identifica o namespace root\cimv2 no servidor local. Um objeto SWbemServices é devolvido.

"WinMgmts:root/cimv2"

O nome a seguir identifica a classe Win32_LogicalDisk no namespace root\cimv2 no servidor myServer. Um SWbemObject objeto é 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 SWbemObject objeto é 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 SWbemObject objeto é 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 SWbemObject objeto é retornado. O namespace padrão para scripts é determinado pela definição de configuração de namespace padrão, conforme especificado no Controle WMI. Para obter mais informações, consulte Configurando a Segurança do Espaço de Nomes 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 SWbemObject objeto é 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 SWbemObject objeto é 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 SWbemObject objeto é retornado.

"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk="C:""

O moniker a seguir define o nível de representação para emular 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 SE_DEBUG privilégio. 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 autenticação Kerberos usando o mydomain\server principal.

"Winmgmts:{impersonationLevel=delegate," _
    & "authority=kerberos:mydomain\server}" _
    & "!//myserver/root/default:__cimomidentification=@"

O moniker a seguir solicita 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 a objetos, em certas 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, considere o uso de mecanismos alternativos.

Não é possível usar a função GetObject do fornecida pelo VBScript para atualizar ou definir dados ao executar scripts incorporados em uma página HTML, pois o Microsoft Internet Explorer nega o uso dessa chamada por motivos de segurança.