Recupero di dati dal computer locale
Anche se Gestione remota Windows e WS-Management protocollo sono progettati in modo esplicito per la comunicazione remota, stabilire una sessione nel computer locale è il caso più semplice. Alcuni script possono richiedere l'accesso ai dati nel computer locale e nei computer remoti.
**WinRM versione 2.0: **
Tutte le operazioni vengono considerate remote e il servizio WinRM deve essere avviato prima di eseguire qualsiasi operazione. Se non si specifica una destinazione remota, il localhost viene usato per impostazione predefinita e tutte le operazioni verranno inviate al servizio WinRM locale. Per altre informazioni sull'avvio del servizio WinRM, vedere Installazione e configurazione per gestione remota Windows.
Quando si usa il servizio WinRM per le operazioni locali, è necessario considerare i fattori seguenti:
- La configurazione winRM locale può essere letta solo dagli amministratori.
- Gli spazi dei nomi WMI devono avere autorizzazioni di abilitazione remota impostate. Per altre informazioni, vedere Protezione di una connessione WMI remota.
- Se non viene creato un listener WinRM, il servizio WinRM rimane in ascolto delle richieste locali sulla porta 47001.
Ogni script WinRM deve iniziare stabilendo una sessione o una connessione a un computer creando un oggetto Session . Dopo aver creato la sessione, è possibile utilizzare i metodi dell'oggetto Session , ad esempio Session.Enumerate o Session.Invoke per ottenere dati o per eseguire metodi.
La creazione di una sessione è in qualche modo simile alla connessione a uno spazio dei nomi di Strumentazione gestione Windows (WMI). La sessione è essenzialmente un livello che consente di inviare e ricevere dati tramite messaggi SOAP e il protocollo WS-Management. Per altre informazioni, vedere WS-Management Protocol.
La chiamata al metodo WSMan.CreateSession per creare un oggetto Session avvierà una sessione che si connette al metodo WinRM locale.
Per creare una sessione WSMan e ottenere dati
Creare un oggetto WSMan .
Set objWsman = CreateObject("Wsman.Automation")
Creare una sessione chiamando il metodo WSMan.CreateSession . Questa sessione viene eseguita con il nome utente e la password di accesso e può ottenere dati tramite WinRM locale.
Set objSession = objWsman.CreateSession()
Creare un URI della risorsa per identificare la risorsa che si vuole gestire o per cui si desidera ottenere i dati. Per altre informazioni sulla formattazione di un URI, vedere URI delle risorse. Questo URI di risorsa è per un'istanza specifica della classe wmi Win32_Service , il servizio Winmgmt. Per altre informazioni, vedere Gestione remota Windows e WMI.
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
Chiamare i metodi di sessione che ottengono o enumerare i dati usando l'URI della risorsa. Per altre informazioni, vedere API di scripting WinRM.
strResponse = objSession.Get(strResource) Wscript.Echo strResponse
Per ottenere o gestire i dati da un altro computer o usare metodi di autenticazione diversi, vedere Recupero di dati da un computer remoto.
Nell'esempio di codice VBScript seguente viene illustrato lo script completo che ottiene l'istanza specifica del Win32_Service WMI denominato "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
Nell'esempio di codice VBScript seguente viene illustrato lo script completo con la trasformazione dei dati. Per altre informazioni, vedere Visualizzazione dell'output XML da script 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)
Argomenti correlati