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) :[pastacode lang= »markup » manual= »Enable-PSRemoting%20-Force » message= » » highlight= » » provider= »manual »/]

  • Ensuite on déclare les machines qui ont le droits d’exécuter les script sur cette machine :

[pastacode lang= »markup » manual= »Set-Item%20wsman%3A%5Clocalhost%5Cclient%5Ctrustedhosts%20* » message= » » highlight= » » provider= »manual »/]

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

[pastacode lang= »markup » manual= »set-item%20wsman%3A%5Clocalhost%5CClient%5CTrustedHosts%20-value%20ORDINATEUR1%2CORDINATEURS2″ message= » » highlight= » » provider= »manual »/]

  • Puis on redémarre le service WinRM :

[pastacode lang= »markup » manual= »Restart-Service%20WinRM » message= » » highlight= » » provider= »manual »/]

 

Sur le pc qui va lancer les commandes :

  • Tester la connexion a la machine distante avec la commande

[pastacode lang= »markup » manual= »Test-WSMan%20ORDINATEUR1. » message= » » highlight= » » provider= »manual »/]

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

[pastacode lang= »markup » manual= »Invoke-Command%20-ComputerName%20sof75srv028%20-ScriptBlock%20%7B%20ipconfig%20%7D%20-credential%20tchevalier » message= » » highlight= » » provider= »manual »/]

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 :

[pastacode lang= »markup » manual= »Enter-PSSession%20-ComputerName%20ORDINATEUR%20-Credential%20utilisateur » message= » » highlight= » » provider= »manual »/]

 

Source