Windows Server 2008 R2 - Amministrazione Remota nella Core Edition

La console a disposizione in Windows 2008 R2 Server Core non è così comoda per la gestione di configurazioni di una certa complessità come ad esempio quelle richieste se il Server Core risiede in un Data Center. In particolare è possibile amministrare remotamente il sistema in tre modi:

Amministrazione remota tramite Microsoft Management Console (MMC)

E' possibile amministrare remotamente Windows 2008 R2 Server Core tramite MMC 3.0

Il modo più semplice per utilizzare MMC è quello di abilitare il firewall per la gestione remota su tutti i profili (Pubblico, Privato e Dominio) tramite il seguente comando:

netsh advfirewall set allprofiles settings remotemanagement enable

In questo modo sarà possibile tramite MMC abilitare i gruppi di regole del firewall per utilizzare gli altri snap-in, per connettersi remotamente a Windows Server Core tramite MMC occorre utilizzare una account che abbia i privilegi di accesso all'istanza Server Core. Se il computer Server Core appartiene al domino è necessario autenticarsi al computer da cui si esegue MMC utilizzando delle credenziali di dominio con i privilegi necessari.

Se il computer Server Core è un server stand alone occorrerà configurare l' snap-in Windows Firewall with Advanced Security per connettersi tramite l'indirizzo IP anziché tramite il nome. In casi come questo potrebbe essere utile abilitare tramite MMC le regole di firewall Inbound File and Printer Sharing  per consentire il ping e File and Printer Sharing per consentire la risoluzione del nome tramite NetBIOS.

Ovviamente è possibile gestire le eccezioni del firewall da riga di comando sul computer Server Core tramite netsh advfirewall firewall come indicato nel seguente How to use the “netsh advfirewall firewall” context instead of the “netsh firewall” context to control Windows Firewall behavior in Windows Server 2008 and in Windows Vista.

Per consentire la gestione remota completa tramite MMC è possibile abilitare il gruppo di regole firewall "Remote Administration" utilizzando il seguente comando:

netsh advfirewall firewall set rule group="Remote Administration" new enable=yes

In alternativa è possibile abilitare granularmente ogni snap-in abilitando il relativo gruppo di regole firewall utilizzando il comando:

Netsh advfirewall firewall set rule group=" Rule Group " new enable=yes

Di seguito viene riportata tabella per gli snap-in di maggior interesse:

Snap-in

Rule Group

Event Viewer

Remote Event Log Management

Services

Remote Service Management

Shared Folders

File and Printer Sharing

Task Scheduler

Remote Scheduled Tasks Management

Reliability and Performance

“Performance Logs and Alerts” e “File and Printer Sharing”

Disk Management

Remote Volume Management

Windows Firewall with Advanced Security

Windows Firewall Remote Management

Occorre tenere conto che non esiste una regola generale per ogni snap-in, ma che alcuni richiedono configurazioni aggiuntive:

  • per utilizzare lo snap-in Device Manager occorre abilitare sul computer Server Core la policy (è possibile farlo remotamente tramite lo snap-in Group Policy Object):
    Configuration\Administrative Templates\Device Installation\Allow remote access to the PnP interface.

  • Per utilizzare lo snap-in Disk Management occorre abilitare sul computer Server Core il servizio Virtual Disk Service (VDS), è possibile farlo remotamente tramite lo snap-in Services.

  • Per utilizzare lo snap-in IPSec Mgmt occorre abilitare sul computer Server Core la gestione remota di IPSec tramite lo script scregedit.wsf utilizzando il seguente comando:

    Cscript %systemroot%\system32\scregedit.wsf /im 1

Amministrazione remota tramite Terminal Services

Per configurare l'accesso al computer Server Core tramite Terminal Services occorre utilizzare lo script scregedit.wsf per abilitare Remote Desktop in modalità Amministrazione utilizzare il seguente comando:

Cscript %systemroot%\system32\scregedit.wsf /AR 0

Il comando oltre ad abilitare Remote Desktop in modalità Amministrazione configura anche il firewall per accettare il traffico RDP in ingresso per il profilo Public, in alternativa è possibile configurare il firewall con il seguente comando:

netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes

Per visualizzare l'attuale configurazione dell'RDP è possibile utilizzare il comando (un valore di ritorno pari a1 indica che le connessioni RDP sono disabilitate, mentre un valore di ritorno pari a 0 indica che sono abilitate):

Cscript %systemroot%\system32\scregedit.wsf /AR /v

In Windows Vista e Windows Server 2008 è stata introdotto un nuovo Credential Security Service Provider (CredSSP) ciò significa che il Remote Desktop è configurato per negoziare una cifratura con il client e se questo la supporta il traffico tra server e client verrà criptato evitando così lo sniffing dei tasti premuti per introdurre le credenziali che vengono digitate sul client e non sul server. Per connettersi al computer Server Core tramite il client RDP rilasciato con versioni precedenti precedenti a Windows Vista e Windows Server 2008 (Windows XP e Windows Server 2003) occorre disabilitare il CredSSP per Terminal Services tramite il seguente comando:

Cscript %systemroot%\system32\scregedit.wsf /CS 0

E’ consigliabile utilizzare il client di Terminal Services 6.0

E' possibile avviare una sessione RDP tramite il comando Mstsc una volta avviata la sessione è possibile accedere ai drive remoti tramite la share \\tsclient\ DriverLetter (per esempio \\tsclient\c), mentre per disconnettere la sessione è possibile utilizzare il comando Logoff.

Amministrazione remota tramite Windows Remote Management

Windows Remote Management (WinRM) è l'implementazione Microsoft del protocollo WS-Management basato su SOAP, di facile integrazione con i firewall, che consente ad hardware e a sistemi operativi di diversi fornitori di interoperare.

WinRM è disponibile in Windows Server 2003 R2, Windows 7 e Windows Server 2008 R2 e consente di gestire i computer su Internet tramite HTTP su porta TCP 80, una porta per servizi Internet standard che la maggior parte dei firewall lascia aperta in ogni caso la porta utilizzata può essere modificata. E' anche possibile utilizzare il protocollo HTTPS su porta TCP 443 modificabile, ma in questo caso occorrerà importare un certificato digitale rilasciato per il computer Server Core.

Per configurare WinRM su Server Core è possibile utilizzare il seguente comando che abilita il servizio di amministrazione da remoto tramite WS-Management mediante la creazione di un listener WinRM su HTTP per accettare richieste WS-Management su tutti gli IP del computer e l'abilitazione della group rule del firewall per WinRS Windows Remote Management (HTTP-in):

winrm quickconfig

In Windows Server 2008 R2 Windows Remote Management è installato per default e il servizio WinRM è impostato le l'avvio automatico ritardato, quindi per verificare se Windows Remote Management è abilitato è possibile utilizzare il seguente comando che elenca i listener:

winrm enumerate winrm/config/listener

Per disabilitare Windows Remote Management è necessario rimuovere il listener tramite il comando:

WinRM delete winrm/config/listener?Address=*+Transport=HTTP

Le impostazioni predefinite di Windows Remote Management sono:

  • Massimo di 5 utenti concorrenti
  • Massimo di due shell per utente
  • Massimo di 80 MB di memoria utilizzabile per shell
  • Massimo di 5 processi per shell

Per accedere a Server Core occorrerà utilizzare il comando WinRS disponibile in Windows Server 2003 R2, Windows 7 e Windows Server 2008 R2 mediante il seguente formato:

Winrs -r: NomeServerComando

Affinché sia possibile eseguire comandi tramite WinRS su HTTP è necessario utilizzare l'autenticazione Kerberos e i due computer devono appartenere allo stesso dominio, in caso contrario occorre utilizzare HTTPS o aggiungere il computer Server Core ai trusted hosts del client remoto tramite il comando:

WinRM set winrm/config/client @{TrustedHosts="IP Server Core or Hostname Server Core"}

Per eseguire i comandi remotamente è possibile utilizzare WinRS tramite il comando:

winrs -r: NomeServerComando

Se i due computer non appartenengono allo stesso dominio o non viene utilizzata l'autenticazione Kerberos occorre eseguire i comandi passando le credenziali di account locale o di dominio con privilegi amministrativi a meno che sul client remoto siano state memorizzate credenziali per il computer Server Core:

winrs -r: NomeServer –u: DomainName \ Username –p: PassWordComando

E' possibile aprire un prompt dei comandi relativo al computer Server Core sul client remoto tramite il comando:

winrs -r: NomeServercmd.exe

per chiudere il prompt dei comandi utilizzare il comando exit.

Gianluca Maestri
Sr Support Engineer
Microsoft Enterprise Platform Support