Partilhar via


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 em computadores remotos.

WinRM versão 2.0:

Todas as operações são consideradas remotas e o serviço WinRM deve ser iniciado antes de qualquer operação ser 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 acerca do início do serviço WinRM, consulte Configuração e Instalaçã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 por administradores.
  • Os namespaces WMI devem ter permissões de habilitação remota definidas. Para obter mais informações, consulte Protegendo uma conexão WMI remota.
  • Se não for criado um ouvinte do WinRM, então o serviço WinRM escuta 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 Session object, como Session.Enumerate ou Session.Invoke para obter dados ou executar métodos.

A criação de uma sessão é um pouco semelhante a conectando a um namespace da Instrumentação de Gerenciamento do Windows (WMI). A sessão é essencialmente uma camada que permite enviar e receber dados através de mensagens SOAP e do protocolo WS-Management. Para obter mais informações, consulte WS-Management Protocol.

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 o seu nome de utilizador e palavra-passe de início de sessão e pode obter dados através do WinRM local.

    Set objSession = objWsman.CreateSession()
    
  3. Crie um recurso de URI para identificar o recurso você deseja gerenciar ou para o qual deseja obter dados. Para obter mais informações sobre como formatar um URI, consulte URIs de recursos. Este 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 Session métodos que obtêm ou enumeram dados usando o URI do recurso. Para obter mais informações, consulte WinRM Scripting API.

    strResponse = objSession.Get(strResource)
    Wscript.Echo strResponse
    
  5. Para obter ou gerenciar dados de outro computador ou usar métodos diferentes 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 do Win32_Service WMI chamado "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 saída XML de scripts do 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 Gestão Remota do Windows