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
Crie um objeto WSMan .
Set objWsman = CreateObject("Wsman.Automation")
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()
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"
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
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)
Tópicos relacionados