Pour ceux qui ont l'habitude de travailler sous Linux, vous utilisez certainement le couple "Shell - SSH" pour administrer votre machine à distance. Sous Windows, on trouve l'équivalent "PowerShell - WinRM", nous verrons par la suite ce qu'est WinRM.
Procédure :
Présentation :
L'administration à distance via PowerShell, appelée également PowerShell remoting, s'effectue par une connexion via WinRM sur l'hôte distant, il faut donc que WinRM soit activé sur l'hôte distant. Par défaut, WinRM est actif sur Windows Server 2012, Windows Server 2012 R2 et Windows Server 2008 R2 faisant référence à la "Gestion à distance".
A l'inverse, sur les versions plus anciennes de Windows Server et sur les versions clientes (Windows 7, Windows 8 et Windows 8.1), la gestion à distance est désactivée par défaut pour des raisons de sécurité.
WinRM, Windows Remote Management, repose sur du HTTP et il est l'implémentation chez Microsoft du standard WS-Management, basé sur SOAP. Ceci implique qu'il n'est plus un protocole RPC et peut donc passer plus facilement les firewalls.
Au niveau des ports utilisés, on en trouve deux :
- HTTP : 5985
- HTTPS : 5986
Il est préférable d'utiliser le port 5986 basé sur une connexion HTTPS, qui sera plus sécurisée.
Certaines versions de Windows ne disposent pas de WinRM par défaut, il faudra donc l'installer. Pour vérifier si le service WinRM existe ou non sur votre machine, il faut taper la commande suivante :
Get-Service WinRM
Si vous n'obtenez pas de résultat, cela signifie que le service n'est pas installé.
Pour installer WinRM, il faut installer la dernière version du Windows Management Framework.
Connexion à une machine distante :
Pour se connecter, on utilisera le commandlet PowerShell nommé Enter-PSSession.
Enter-PSSession -ComputerName SERVER_NAME.lab.microsoft.com
Lorsque la connexion sera établie, vous obtiendrez un shell PowerShell sur la machine distante :
Il est maintenant possible d'ajouter des groupes AD dans les groupes locaux du serveurs en tapant les commandes suivantes :
net localgroup "Administrateurs" "GROUP_NAME" /add
net localgroup "Utilisateurs du Bureau à distance" "GROUP_NAME" /add
Ensuite, pour quitter la session PowerShell distante, il suffit de taper la commande suivante :
Exit-PSSession