Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
Crie um objeto WSMan.
Set objWsman = CreateObject("Wsman.Automation")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()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"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 strResponsePara 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)
Tópicos relacionados