Powershell : comment lancer des commandes à distance

Il est possible effectuer une commande powershell sur un pc distant.

Pour cela il faut juste faire quelques manipulations sur le pc distant pour l’autoriser a recevoir es commande provenant d’un autre ordinateur (sauf si vous êtes déjà dans un domaine entre le pc local et distant).

Sur le pc distant :

  • Pour activer les commandes distance, exécuter la commande suivant une invite de commande powershell ( lancer le en tant q’administrateur) :
    Enable-PSRemoting -Force

  • Ensuite on déclare les machines qui ont le droits d’exécuter les script sur cette machine :
Set-Item wsman:\localhost\client\trustedhosts *

Vous pouvez aussi autoriser tout un réseau avec la commande set-item wsman:\localhost\Client\TrustedHosts -value 172.16.0.0 ou avec les noms des machines avec la commande

set-item wsman:\localhost\Client\TrustedHosts -value ORDINATEUR1,ORDINATEURS2
  • Puis on redémarre le service WinRM :
Restart-Service WinRM

 

Sur le pc qui va lancer les commandes :

  • Tester la connexion a la machine distante avec la commande
Test-WSMan ORDINATEUR1.

Si la connecxion fonctionne vous aurez des informations sur le service (wsmid, procotolversion,productvendor et productversion)

  • Envoyer la commande voulu (ici hostname) en précisant le nom de l’ordinateur distant puis le login de l’utilisateur
Invoke-Command -ComputerName sof75srv028 -ScriptBlock { ipconfig } -credential tchevalier

La commande devrait vous répondre le nom du pc interrogé.

 

Vous pouvez avoir l’envie de lancer plusieurs commande sans exécuter la commande d’interrogation. Il est donc possible de lancer une session powershell a distance à l’aide de la commande suivant :

Enter-PSSession -ComputerName ORDINATEUR -Credential utilisateur

 

Source