Die Windows Remoteverwaltung(winrm) stellt einen WebService zur Verfügung der Übertragung von Information als XML via http(s) ermöglicht, basierend auf dem WS-Management Protokoll welches von unterschiedlichen Herstellern gemeinsam entwickelt wurde, darunter AMD, Dell, Intel, Microsoft, Sun Microsystems. Es gibt verschiedene Client Anwendungen die es einem ermöglichen diesen Service zu nutzen darunter winrm rubygem, Packer oder eben PowerShell.
Alle Anwendungen verfahren dabei nach dem selben Prinzip es werden Remote anfragen via http(s) in XML Format ausgeführt, diese Ausführung lässt sich in 5 Teilbereiche gliedern.
Winrm arbeitet nach einem ähnlichen Prinzip wie das absetzen eines Befehls auf einer einer lokalen Maschine. Die conhost.exe wird angesprochen, welche es erlaubt eine cmd.exe zu öffnen, die wiederum Befehle entgegen nimmt und die bekannten Streams Output und Error zurück gibt. Ebenfalls wird direkt eine Shell-GUID und eine CMD-ID beide 32 Zeichen lang zurück gegeben. Die CMD-ID identifiziert die abgesetzten Befehle, die Shell-GUID gewährleistet die parallel Ausführung. Die Arbeit mit der Powershell ermöglicht es auf weitere Streams zuzugreifen.