Obtendo dados do computador local

Embora o Gerenciamento Remoto do Windows e o protocolo WS-Management sejam explicitamente projetados para comunicação remota, estabelecer uma sessão no computador local é o caso mais simples. Alguns scripts podem exigir dados de acesso no computador local, bem como computadores remotos.

**WinRM versão 2.0: **

Todas as operações são consideradas remotas e o serviço WinRM deve ser iniciado antes que qualquer operação seja executada. Se um destino remoto não for especificado, o localhost será usado por padrão e todas as operações serão enviadas para o serviço WinRM local. Para obter mais informações sobre como iniciar o serviço WinRM, consulte Instalação e configuração do Gerenciamento Remoto do Windows.

Ao usar o serviço WinRM para operações locais, os seguintes fatores devem ser considerados:

  • A configuração local do WinRM só pode ser lida pelos administradores.
  • Os namespaces WMI devem ter permissões de habilitação remotas definidas. Para obter mais informações, consulte Protegendo uma conexão WMI remota.
  • Se um ouvinte WinRM não for criado, o serviço WinRM escutará solicitações locais na porta 47001.

Cada script WinRM deve começar estabelecendo uma sessão ou conexão com um computador criando um objeto Session . Depois que a sessão for criada, você poderá usar os métodos de objeto Session , como Session.Enumerate ou Session.Invoke para obter dados ou executar métodos.

A criação de uma sessão é um pouco semelhante à conexão com um namespace WMI (Instrumentação de Gerenciamento do Windows). A sessão é essencialmente uma camada que permite que você envie e receba dados por meio de mensagens SOAP e do protocolo WS-Management. Para obter mais informações, consulte Protocolo WS-Management.

Chamar o método WSMan.CreateSession para criar um objeto Session iniciará uma sessão que se conecta ao WinRM local.

Para criar uma sessão WSMan e obter dados

  1. Crie um objeto WSMan .

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. Crie uma sessão chamando o método WSMan.CreateSession . Esta sessão é executada sob seu nome de usuário e senha de logon e pode obter dados por meio do WinRM local.

    Set objSession = objWsman.CreateSession()
    
  3. Crie um URI de recurso para identificar o recurso que você deseja gerenciar ou para o qual deseja obter dados. Para obter mais informações sobre como formatar um URI, consulte URIs de recurso. Esse URI de recurso é para uma instância específica da classe Win32_Service WMI, o serviço Winmgmt. Para obter mais informações, consulte Gerenciamento Remoto do Windows e WMI.

    strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
    
  4. Chame métodos de Sessão que obtêm ou enumeram dados usando o URI do recurso. Para obter mais informações, consulte API de script WinRM.

    strResponse = objSession.Get(strResource)
    Wscript.Echo strResponse
    
  5. Para obter ou gerenciar dados de outro computador ou usar diferentes métodos de autenticação, consulte Obtendo dados de um computador remoto.

O exemplo de código VBScript a seguir mostra o script completo que obtém a instância específica da Win32_Service WMI chamada "Winmgmt".

Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession()
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
strResponse = objSession.Get(strResource)
Wscript.Echo strResponse

O exemplo de código VBScript a seguir mostra o script completo com a transformação de dados. Para obter mais informações, consulte Exibindo a saída XML de scripts WinRM.

Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession()
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
strResponse = objSession.Get(strResource)
Set xmlFile = CreateObject("MSXml.DOMDocument")
Set xslFile = CreateObject("MSXml.DOMDocument")
xmlFile.LoadXml(strResponse)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)

Sobre o Gerenciamento Remoto do Windows

Usando o Gerenciamento Remoto do Windows

Referência de gerenciamento remoto do Windows