Thursday, February 26, 2009 5:20 PM
StandaJ
Správa Windows Server 2008 (2) - WinRM a WinRS
Windows Remote Management se skládá ze dvou čá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 při použití protokolu HTTP.
WinRM
Ve výchozím stavu není konfigurován, tzn. nenaslouchá příkazům vzdálené správy na žádném síťovém rozhraní. Je nutno konfigurovat listener alespoň na jednom rozhraní. Lze zabezpečit použitím protokolu HTTPS a vyžadováním autentizace pouze pomocí nejbezpečnějších metod (Kerberos, certifikáty). Protokol HTTPS je konfigurován prostřednictvím příkazu WinRM a předpokládá, že na serveru je přítomen odpovídající certifikát, umožňující autentizaci serveru. Omezení autentizace pouze na vybrané metody lze dosáhnout pomocí Group Policy nebo opět příkazem WinRM. Počáteční povolení listeneru dosáhneme pří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 příkazem winrm enum winrm/config/listener
Listener
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í příkazem winrm delete winrm/config/Listener?Address=IP:*+Transport=HTTP
Výpis konfigurace získáme příkazem winrm get winrm/config
Config
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
Pří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í příkazové řádky pro WinRM, obdoba PSexec.exe (SysInternals). Dovolí spustit libovolný příkaz z příkazové řádky vzdáleného systému (command line) nebo okno samotné příkazové řá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éně snazší než mimo doménu.
Windows 2003 / XP
Tento nástroj existuje i pro předchozí verze Windows (KB936059)