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.
Você pode obter dados ou gerenciar recursos em computadores remotos, bem como no computador local. Conectar-se a um computador remoto em um script de Gerenciamento Remoto do Windows é muito semelhante a fazer uma conexão local. Os dados da instância WMI estão disponíveis e, se o computador remoto tiver hardware BMC que possa se comunicar usando o protocolo WS-Management, dados de IPMI (Intelligent Platform Management Interface) também estarão disponíveis. Para obter mais informações, consulte Gerenciamento Remoto do Windows e WMI e Gerenciamento Remoto de Hardware.
Talvez seja necessário criar um objeto ConnectionOptions para especificar informações sobre o tipo de autenticação solicitada para o logon.
Se a conta no computador remoto tiver o mesmo nome de utilizador e palavra-passe de início de sessão, as únicas informações adicionais de que necessita são o transporte, o nome de domínio e o nome do computador. Devido ao Controle de Conta de Usuário (UAC), a conta remota deve ser uma conta de domínio e membro do grupo Administradores do computador remoto. Se a conta for um computador local membro do grupo Administradores, o UAC não permitirá o acesso ao serviço WinRM. Para acessar um serviço WinRM remoto em um grupo de trabalho, a filtragem UAC para contas locais deve ser desabilitada criando a seguinte entrada do Registro DWORD e definindo seu valor como 1: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] LocalAccountTokenFilterPolicy.
Para ligar a um computador remoto utilizando o seu nome de utilizador e palavra-passe de início de sessão
Especifique o computador de destino com um nome de domínio totalmente qualificado ou um endereço IP e atribua-o a uma constante. Se um endereço IPv6 for especificado, o endereço deverá ser colocado entre colchetes.
Const RemoteComputer = "ComputerName.domain.com"Crie um objeto WSMan.
Set objWsman = CreateObject("WSMan.Automation")Crie a sessão, especificando o transporte, HTTP ou HTTPS, e concatenando-a com a constante que representa o computador de destino.
Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
O exemplo de código VBScript a seguir mostra o script completo. O script inclui uma sub-rotina para transformar os dados de XML bruto para um formato legível por humanos. Para obter mais informações, consulte Exibindo saída XML de scripts do WinRM.
Const RemoteComputer = "ComputerName.domain.com"
Set objWsman = CreateObject("WSMan.Automation")
Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" & _
"wmi/root/cimv2/Win32_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)
While Not objResponse.AtEndOfStream
DisplayOutput(objResponse.ReadItem)
Wend
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
Dim xmlFile, xslFile
Set xmlFile = CreateObject("MSXml.DOMDocument")
Set xslFile = CreateObject("MSXml.DOMDocument")
xmlFile.LoadXml(strWinRMXml)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
End Sub
Para se conectar a um computador remoto usando uma conta diferente
Especifique o computador de destino com um nome de domínio totalmente qualificado ou um endereço IP e atribua-o a uma constante. Se um endereço IPv6 for especificado, o endereço deverá ser colocado entre colchetes.
Const RemoteComputer = "ComputerName.domain.com"Crie um objeto WSMan.
Set objWsman = CreateObject("Wsman.Automation")Chame o método WSMan.CreateConnectionOptions para criar um ConnectionOptions objeto. A conta no computador remoto deve ser membro do grupo de administradores do computador local. Nota: Não armazene palavras-passe em texto simples em scripts.
Set objConnectionOptions = objWsman.CreateConnectionOptions objConnectionOptions.UserName = "<username>" objConnectionOptions.Password = "<password>"Na chamada WSman.CreateSession, especifique os sinalizadores de conexão de sessão apropriados no parâmetro de sinalizadores . Para obter mais informações, consulte Constantes de Sessão. Especifique o computador de destino com um nome de computador totalmente qualificado ou um endereço IP e o transporte — http ou https. Esse script solicita autenticação Kerberos do serviço remoto WinRM.
Ao contrário dos scripts WMI, você pode usar vários métodos de autenticação em scripts WinRM. Para obter mais informações, consulte Autenticação para conexões remotas.
iFlags = objWsman.SessionFlagUseKerberos Or _ objWsman.SessionFlagCredUserNamePassword Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _ iFlags, objConnectionOptions)Depois que o objeto de sessão estiver disponível, você poderá chamar qualquer um dos métodos de objeto Session para obter dados para um recurso. Você pode obter dados para qualquer recurso disponível no computador no qual a sessão está sendo executada. Para obter mais informações, consulte Obtendo dados do computador local.
O exemplo de código VBScript a seguir mostra o script completo. O script inclui uma sub-rotina para transformar os dados de XML bruto para um formato legível por humanos. Para obter mais informações, consulte Exibindo saída XML de scripts do WinRM. O script especifica a autenticação Kerberos, mas se o computador remoto estiver em um grupo de trabalho em vez de um domínio, especificar Kerberos gerará um erro.
Const RemoteComputer = "ComputerName.domain.com"
Set objWsman = CreateObject("Wsman.Automation")
Set objConnectionOptions = objWsman.CreateConnectionOptions
objConnectionOptions.UserName = "<username>"
objConnectionOptions.Password = "<password>"
iFlags = objWsman.SessionFlagUseKerberos Or _
objWsman.SessionFlagCredUserNamePassword
Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _
iFlags, objConnectionOptions)
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" & _
"wmi/root/cimv2/Win32_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)
While Not objResponse.AtEndOfStream
DisplayOutput(objResponse.ReadItem)
Wend
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
Dim xmlFile, xslFile
Set xmlFile = CreateObject("MSXml2.DOMDocument.3.0")
Set xslFile = CreateObject("MSXml2.DOMDocument.3.0")
xmlFile.LoadXml(strWinRMXml)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
End Sub
Tópicos relacionados