Správa Windows Server 2008 (2) - WinRM a WinRS

Windows Remote Management se skládá ze dvou cástí WinRM (server) a WinRS (klient, remote shell). Služba Windows Remote Management (WS-Management) naslouchá požadavky na definovaném portu TCP (80, 443), používá protokoly HTTP, HTTPS a komunikace je ve výchozí konfiguraci vždy šifrovaná - i pri použití protokolu HTTP.

WinRM

Ve výchozím stavu není konfigurován, tzn. nenaslouchá príkazum vzdálené správy na žádném sítovém rozhraní. Je nutno konfigurovat listener alespon na jednom rozhraní. Lze zabezpecit použitím protokolu HTTPS a vyžadováním autentizace pouze pomocí nejbezpecnejších metod (Kerberos, certifikáty). Protokol HTTPS je konfigurován prostrednictvím príkazu WinRM a predpokládá, že na serveru je prítomen odpovídající certifikát, umožnující autentizaci serveru. Omezení autentizace pouze na vybrané metody lze dosáhnout pomocí Group Policy nebo opet príkazem WinRM. Pocátecní povolení listeneru dosáhneme príkazem

 winrm quickconfig [-quiet] [-transport:VALUE]

Performs configuration actions to enable this machine for remote management.
Includes:
  1. Start the WinRM service
  2. Set the WinRM service type to auto start
  3. Create a listener to accept request on any IP address
  4. Enable firewall exception for WS-Management traffic (for http only)

-q[uiet]
--------
If present, quickconfig will not prompt for confirmation.

-transport:VALUE
----------------
Perform quickconfig for specific transport.
Possible options are http and https.  Defaults to http.

Informaci o nastavení vypíšeme príkazem  winrm enum winrm/config/listenerListener Address = * Transport = HTTP Port = 80 Hostname Enabled = true URLPrefix = wsman CertificateThumbprint ListeningOn = 10.1.1.207, 127.0.0.1, ::1, fe80::5efe:10.1.1.207%12, fe80::1451:fd86:81de:1523%11

Listener oddstraníme ze všech rozhraní príkazem winrm delete winrm/config/Listener?Address=IP:*+Transport=HTTP

Výpis konfigurace získáme príkazem winrm get winrm/configConfig MaxEnvelopeSizekb = 150 MaxTimeoutms = 60000 MaxBatchItems = 20 MaxProviderRequests = 25 Client NetworkDelayms = 5000 URLPrefix = wsman AllowUnencrypted = false Auth Basic = false Digest = true Kerberos = true Negotiate = true Certificate = true DefaultPorts HTTP = 80 HTTPS = 443 TrustedHosts Service RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;ER)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD) MaxConcurrentOperations = 100 EnumerationTimeoutms = 60000 MaxConnections = 5 AllowUnencrypted = false Auth Basic = false Kerberos = true Negotiate = true Certificate = false DefaultPorts HTTP = 80 HTTPS = 443 IPv4Filter = * IPv6Filter = * Winrs AllowRemoteShellAccess = true IdleTimeout = 900000 MaxConcurrentUsers = 5 MaxShellRunTime = 2147483647 MaxProcessesPerShell = 5 MaxMemoryPerShellMB = 80 MaxShellsPerUser = 2

Príklady použití  

winrm get wmicimv2/win32_service?name=Schedule -remote:ServerX`` winrm get wmicimv2/win32_service?name=winrm -remote:ServerX -format:pretty `` winrm invoke stopservice wmicimv2/win32_service?name=W32time -remote:ServerX winrm enumarate wmicimv2/win32_logicaldisk -remote:ServerX

WinRS

Remote shell - je vzdálené rozhraní príkazové rádky pro WinRM, obdoba PSexec.exe (SysInternals). Dovolí spustit libovolný príkaz z príkazové rádky vzdáleného systému (command line) nebo okno samotné príkazové rádky:

 winrs -r ServerX ipconfig
 winrs -r ServerX cmd

Ke spojení použije port 80 nebo 443. Vhledem k autentizaci je použití v doméne snazší než mimo doménu.

Windows 2003 / XP

Tento nástroj existuje i pro predchozí verze Windows (KB936059)