Obtener datos del equipo local
Aunque la administración remota de Windows y el protocolo WS-Management están diseñados explícitamente para la comunicación remota, establecer una sesión en el equipo local es el caso más sencillo. Algunos scripts pueden requerir datos de acceso en el equipo local, así como en equipos remotos.
**WinRM versión 2.0: **
Todas las operaciones se consideran remotas y el servicio WinRM debe iniciarse antes de realizar cualquier operación. Si no se especifica un destino remoto, el localhost se usa de forma predeterminada y todas las operaciones se enviarán al servicio WinRM local. Para obtener más información sobre cómo iniciar el servicio WinRM, consulte Instalación y configuración para la administración remota de Windows.
Al usar el servicio WinRM para las operaciones locales, se deben tener en cuenta los siguientes factores:
- Los administradores solo pueden leer la configuración local de WinRM.
- Los espacios de nombres WMI deben tener establecidos permisos de habilitación remota. Para obtener más información, consulte Protección de una conexión WMI remota.
- Si no se crea un agente de escucha de WinRM, el servicio WinRM escucha las solicitudes locales en el puerto 47001.
Cada script winRM debe empezar estableciendo una sesión o conexión a un equipo mediante la creación de un objeto Session . Una vez creada la sesión, puede usar los métodos de objeto Session, como Session.Enumerate o Session.Invoke para obtener datos o para ejecutar métodos.
La creación de una sesión es algo similar a la conexión a un espacio de nombres de Instrumental de administración de Windows (WMI). La sesión es básicamente una capa que permite enviar y recibir datos a través de mensajes SOAP y el protocolo WS-Management. Para obtener más información, vea Protocolo de administración de WS.
Al llamar al método WSMan.CreateSession para crear un objeto Session , se iniciará una sesión que se conecta al WinRM local.
Para crear una sesión de WSMan y obtener datos
Cree un objeto WSMan .
Set objWsman = CreateObject("Wsman.Automation")
Cree una sesión llamando al método WSMan.CreateSession . Esta sesión se ejecuta con el nombre de usuario y la contraseña de inicio de sesión y puede obtener datos a través de WinRM local.
Set objSession = objWsman.CreateSession()
Cree un URI de recurso para identificar el recurso que desea administrar o para el que desea obtener datos. Para obtener más información sobre el formato de un URI, consulte URI de recursos. Este URI de recurso es para una instancia específica de la clase Win32_Service WMI, el servicio Winmgmt. Para obtener más información, consulte Administración remota de Windows y WMI.
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
Llame a los métodos Session que obtienen o enumeran los datos mediante el URI del recurso. Para obtener más información, consulte WinRM Scripting API.
strResponse = objSession.Get(strResource) Wscript.Echo strResponse
Para obtener o administrar datos de otro equipo o usar distintos métodos de autenticación, consulte Obtener datos de un equipo remoto.
En el siguiente ejemplo de código VBScript se muestra el script completo que obtiene la instancia específica de la Win32_Service WMI denominada "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
En el siguiente ejemplo de código de VBScript se muestra el script completo con la transformación de datos. Para obtener más información, vea Mostrar la salida XML de los scripts de 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)
Temas relacionados