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

  1. Creare un oggetto WSMan .

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. 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()
    
  3. 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"
    
  4. 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
    
  5. 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)

Informazioni su Gestione remota Windows

Uso di Gestione remota Windows

Informazioni di riferimento sulla gestione remota di Windows