WinRM, hva er det?
Hørt om WS-Management før? Web Services for Management. WinRM er Microsoft sin implementasjon av denne protokollen.
WS-Management
WS-Management er en protokoll som ble designet av en gruppe hardware og software produsenter som en offentlig standard for å utveksle administrasjonsdata med enhver device som implementerer protokollen.
Den gjeldende standarden er basert på følgende andre standarder: HTTPS, SOAP over HTTP, SOAP 1.2, WS-Addressing, WS-Transfer, WS-Enumeration og WS-Eventing.
Grunnen til valget av disse standardene og ikke minst hovedmotivasjonen bak WS-Management er å kunne tilby interoperabilitet for administrasjon, på tvers av ulike devicer og OS.
WS-Management baserer seg på å sende XML formaterte meldinger ved å bruke web-service standarder som WS-Addressing og WS-Transfer. Disse definerer et XML skjema for ws meldinger og definerer ulike operasjoner og verdier.
WS-Management utvider standardene med nye operasjoner også. F.eks definerer WS-Transfer operasjonene Get, Put, Create og Delete. WS-Management legger til Rename, Partial Get og Partial Put.
WinRM
Windows Remote Management, tilgjenglig på Windows Vista & Windows Server 2003 R2 (installer Hardware Management feature).
- WinRM Scripting API for å kunne scripte tilgang og kommunikasjon over WS-Management standarden.
- WinRM kommandolinjeverktøyet, Winrm.cmd er et verktøy skrevet med VBScript og WinRM API'et. Tillater konfigurering av WinRM, innhenting av data og administrasjon remote.
- WinRS.exe er et kommandolinjeverktøy som lar deg eksekvere konsollkommandoer på andre maskiner ved å benytte WS-Management protokollen.
- WMI Service. Denne fortsetter å kjøre side-ved-side med WinRM og det er faktisk WMI som skaffer data eller utfører operasjoner man ber om i WinRM.
Forskjellen fra WMI
En veldig klar forskjell er WinRM (WS-Management) baserer seg på å opprette tilkoblingen til maskina gjennom en SOAP basert protokoll, mens WMI benytter seg av DCOM.
Ta i bruk WinRM
En WinRM Listener må settes opp på klientmaskinene. WinRM er allerede tilgjenglig i Windows Vista, så det er kun snakk om konfigurering og aktivering. https://msdn2.microsoft.com/en-us/library/aa384372.aspx
For å ta det i bruk fort, sjekk ut kommandoen WinRM. Kun for testing kan du benytte winrm quickconfig for å aktivere en listener på klienten.
WinRM blir også i større og større grad mulig å ta i bruk i nyere administrasjonsverktøy fra Microsoft, som f.eks System Center porteføljen.
Enkelt Powershell eksempel
$w = new-object -comobject "Wsman.Automation"
$s = $w.CreateSession()
$service = read-host "Angi Service"
$sres = "https://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=" + $service
$in = $s.Get($sres)
$in
$xmlfile = new-object -comObject "MSXml.DOMDocument"
$xslfile = new-object -comObject "MSXml.DOMDocument"
$xmlfile.LoadXml($in)
$xslfile.Load("WsmTxt.xsl")
$xmlfile.TransformNode($xslfile)
$xmlfile.save("c:\temp\winrm.xml")
$xmfile.text.save("c:\temp\winrm.txt")
$ie = new-object -comObject "Internetexplorer.Application"
$ie.StatusBar = $false
$ie.toolbar = 0
$ie.navigate("c:\temp\winrm.xml")
$ie.visible = $true
$maskin = read-host "maskin navn"
[xml]$osInfo = winrm get wmicimv2/Win32_OperatingSystem /format:pretty
"OS versjon:" + $osInfo.Win32_OperatingSystem.Version
"Sist starta: " + $osInfo.Win32_OperatingSystem.LastBootupTime.DateTime
WinRM kommando eksempler:
- Kjappt sette opp WS-Man service: winrm QuickConfig
- fjerne like fort: winrm invoke Restore winrm/Config @{}
- Vise OS info: winrm get wmicimv2/Win32_OperatingSystem
- Sjekke CPU load: winrm g wmicimv2/Win32_Processor?DeviceID=CPU0 -fragment:LoadPercentage -r:<some computer>
- Stoppe en service: winrm invoke stopservice wmicimv2/Win32_Service?name=w32time -r:<some computer> (gjett selv hvordan du starter igjen)