Windows Remote Management

{{Short description|Implementation of WS-Management}}

{{Infobox software

| name = WinRM (Windows Remote Management)

| logo =

| screenshot =

| screenshot size =

| caption =

| developer = Microsoft

| released =

| latest release version =

| latest release date =

| operating system = Microsoft Windows

| genre = Application programming interface

| license = Proprietary commercial software

| website = {{URL|https://docs.microsoft.com/en-us/windows/win32/winrm/portal}}

}}

Windows Remote Management (WinRM) is the Microsoft implementation of the DMTF-standard WS-Management. It allows accessing or exchanging management information across a common network. Utilizing scripting objects or the built-in command-line tool, WinRM can be used with any remote computers that may have baseboard management controllers (BMCs) to acquire data. On Windows-based computers including WinRM, certain data supplied by Windows Management Instrumentation (WMI) can also be obtained.{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/winrm/portal|title=Windows Remote Management - Windows applications|last=windows-sdk-content|website=docs.microsoft.com|language=en-us|access-date=2019-02-21}}

Components

{{Infobox software

| name = winrs

| logo =

| screenshot =

| screenshot size =

| caption =

| developer = Microsoft

| released =

| latest release version =

| latest release date =

| operating system = Microsoft Windows

| genre = Command

| license = Proprietary commercial software

| website = {{URL|https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/winrs}}

}}

  • WinRM Scripting API: Provides an Application programming interface enabling scripts to remotely acquire data from computers that perform WS-Management operations.
  • winrm.cmd: Built-in systems management command line tool allowing a machine operator to configure WinRM. Implementation consists of a Visual Basic Scripting (VBS) Edition file (Winrm.vbs) which is written using the aforementioned WinRM scripting API.
  • winrs.exe: Another command line tool allowing the remote execution of most Cmd.exe commands. This tool utilizes the WS-Management protocol.
  • Intelligent Platform Management Interface (IPMI) driver: Provides hardware management and facilitates control of remote server hardware through BMCs. IPMI is most useful when the operating system is not running or deployed as it allows for continued remote operations of the bare metal hardware/software.
  • WMI plug-in: Allows WMI data to be made available to WinRM clients.{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/winrm/windows-remote-management-glossary|title=Windows Remote Management Glossary - Windows applications|last=windows-sdk-content|website=docs.microsoft.com|language=en-us|access-date=2019-02-21}}
  • WMI service: Leverages the WMI plug-in to provide requested data or control and can also be used to acquire data from most WMI classes. Examples include the Win32_Process, in addition to any IPMI-supplied data.
  • WS-Management protocol: Web Services Management is a DMTF open standard defining a SOAP-based protocol for the management of servers, devices, applications and various Web services. WS-Management provides a common way for systems to access and exchange management information across the IT infrastructure.{{Cite web|url=https://docs.microsoft.com/en-us/windows/desktop/winrm/about-windows-remote-management|title=About Windows Remote Management - Windows applications|last=windows-sdk-content|website=docs.microsoft.com|language=en-us|access-date=2019-02-21}}
  • Ports: By default WinRM HTTPS used 5986 port, and HTTP uses 5985 port. By default, port 5985 is in listening mode, but port 5986 has to be enabled.

Common uses

File:PowerShell Core 6.0 icon.png

Ansible communicates with Windows servers over WinRM using the Python pywinrm package and can remotely run PowerShell scripts and commands.{{Cite web|url=https://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html|title=Windows Remote Management — Ansible Documentation|website=docs.ansible.com|access-date=2019-02-21}}

Thycotic's Secret Server also leverages WinRM to enable PowerShell remoting.{{Cite web|url=https://thycotic.force.com/support/s/article/Configuring-WinRM-for-PowerShell|title=Thycotic Support|website=thycotic.force.com|access-date=2019-02-21}}

SolarWinds Server and Application Monitoring software (SAM) utilizes a WinRM server on monitored servers for its PowerShell integration.{{Cite web|url=https://support.solarwinds.com/Success_Center/Server_Application_Monitor_(SAM)/Knowledgebase_Articles/Create_a_WinRM_HTTPS_listener|title=Create a WinRM HTTPS listener|date=2016-03-24|website=SolarWinds Worldwide, LLC. Help and Support|language=en|access-date=2019-02-24}}

CloudBolt leverages WinRM as part of Blueprints, Server Actions, and CB Plugins to execute remote scripts on Windows servers using the python [https://pypi.org/project/pywinrm/ pywinrm] module.{{Cite web|url=http://docs.cloudbolt.io/advanced/orchestration-actions/remote-scripts.html?#windows-servers-using-winrm|title=Remote Scripts — CloudBolt 8.7 Documentation|website=docs.cloudbolt.io|access-date=2019-06-04}}

Security

WinRM uses Kerberos for initial authentication by default. This ensures that actual credentials are never sent in client-server communications, instead relying on features such as hashing and tickets to connect.{{Cite web|url=https://support.microsoft.com/en-us/help/2019527/how-to-configure-winrm-for-https|title=How To: Configure WINRM for HTTPS|website=support.microsoft.com|access-date=2019-02-24}} Although WinRM listeners can be configured to encrypt all communications using HTTPS, with the use of Kerberos, even if unencrypted HTTP is used, all communication is still encrypted using a symmetric 256-bit key after the authentication phase completes. Using HTTPS with WinRM allows for additional security by ensuring server identity via SSL/TLS certificates thereby preventing an attacker from impersonating it.{{Cite web|url=https://foxdeploy.com/2017/02/08/is-winrm-secure-or-do-i-need-https/|title=Is WinRM Secure or do I need HTTPs?|last=FoxDeploy|date=2017-02-08|website=FoxDeploy.com|language=en|access-date=2019-02-24}}

References

{{Reflist|30em}}