Obtention de données à partir de l’ordinateur local
Bien que windows Remote Management et WS-Management protocole soient explicitement conçus pour la communication à distance, l’établissement d’une session sur l’ordinateur local est le cas le plus simple. Certains scripts peuvent nécessiter des données d’accès sur l’ordinateur local ainsi que sur les ordinateurs distants.
**WinRM version 2.0 : **
Toutes les opérations sont considérées comme distantes et le service WinRM doit être démarré avant d’effectuer une opération. Si aucune destination distante n’est spécifiée, l’hôte local est utilisé par défaut et toutes les opérations sont envoyées au service WinRM local. Pour plus d’informations sur le démarrage du service WinRM, consultez Installation et configuration pour la gestion à distance Windows.
Lorsque vous utilisez le service WinRM pour les opérations locales, les facteurs suivants doivent être pris en compte :
- La configuration WinRM locale ne peut être lue que par les administrateurs.
- Les espaces de noms WMI doivent avoir des autorisations d’activation distantes définies. Pour plus d’informations, consultez Sécurisation d’une connexion WMI distante.
- Si aucun écouteur WinRM n’est créé, le service WinRM écoute les requêtes locales sur le port 47001.
Chaque script WinRM doit commencer par établir une session ou une connexion à un ordinateur en créant un objet Session . Une fois la session créée, vous pouvez utiliser les méthodes d’objet Session , telles que Session.Enumerate ou Session.Invoke pour obtenir des données ou exécuter des méthodes.
La création d’une session est un peu similaire à la connexion à un espace de noms WMI (Windows Management Instrumentation). La session est essentiellement une couche qui vous permet d’envoyer et de recevoir des données via des messages SOAP et le protocole WS-Management. Pour plus d’informations, consultez Protocole de gestion WS.
L’appel de la méthode WSMan.CreateSession pour créer un objet Session démarre une session qui se connecte au WinRM local.
Pour créer une session WSMan et obtenir des données
Créez un objet WSMan .
Set objWsman = CreateObject("Wsman.Automation")
Créez une session en appelant la méthode WSMan.CreateSession . Cette session s’exécute sous votre nom d’utilisateur et votre mot de passe d’ouverture de session et peut obtenir des données via le WinRM local.
Set objSession = objWsman.CreateSession()
Créez un URI de ressource pour identifier la ressource que vous souhaitez gérer ou pour laquelle vous souhaitez obtenir des données. Pour plus d’informations sur la mise en forme d’un URI, consultez URI de ressource. Cet URI de ressource concerne un instance spécifique de la classe Win32_Service WMI, le service Winmgmt. Pour plus d’informations, consultez Gestion à distance Windows et WMI.
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
Appeler des méthodes de session qui obtiennent ou énumèrent des données à l’aide de l’URI de ressource. Pour plus d’informations, consultez API Scripting WinRM.
strResponse = objSession.Get(strResource) Wscript.Echo strResponse
Pour obtenir ou gérer des données à partir d’un autre ordinateur ou utiliser différentes méthodes d’authentification, consultez Obtention de données à partir d’un ordinateur distant.
L’exemple de code VBScript suivant montre le script complet qui obtient le instance spécifique du Win32_Service WMI nommé « 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
L’exemple de code VBScript suivant montre le script complet avec la transformation de données. Pour plus d’informations, consultez Affichage de la sortie XML à partir de scripts 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)
Rubriques connexes