TUTOS.EU

Comment exécuter des commandes PowerShell sur une machine distante

Lancer des commandes powershell sur un ordinateur distant

En pré requis, sur la machine distante, les cartes réseaux ne doivent pas être marquées comme faisant parti d'un réseau public. Si c'est le cas, modifiez cela.

Le service WinRM doit être en place.

Si ce n'est pas le cas, passez cette commande dessus :

Winrm quickconfig
Lien vers le fichier : cliquez ici Copier le code

Voici ce que donne l'exécution de la commande :

Exemple simple de commande lancée à distance sans obtenir le retour

Invoke-command -ComputerName "nommachine" -ScriptBlock {Start-ADSyncSyncCycle -PolicyType Delta}
Lien vers le fichier : cliquez ici Copier le code

Pour exécuter des commandes powershell à distance sur une machine, il faut utiliser la commande
Enter-PSSession

Tapez ensuite les commandes à exécuter sur le serveur distant.
Terminez par la commande Exit

Enter-PSSession NomDuServeur

#Vos commandes Powershell

Exit
Lien vers le fichier : cliquez ici Copier le code

Une autre façon d'exécuter du code powershell à distance est d'utilise Invoke-command.

Ici on va jouer un script powershell contenu dans un fichier et le jouer sur un serveur distant :

clear-host
$job = Invoke-command -ComputerName "NomServeurDistant" -filepath C:\Admin\Script\Citrix\Modifier_priorite_process.ps1  -AsJob
Wait-Job $job

#$job | GM

$MonResultat = Receive-Job $job
#Write-host $MonResultat.Error
#Write-host $MonResultat.State
#Write-host $MonResultat.Finished
Lien vers le fichier : cliquez ici Copier le code

Toujours avec Invoke-command, on peut passer des paramètres au script que l'on joue à distance.

Dans l'exemple ci-dessous on interroge un serveur SCVMM :

$NomVm = "NomDomaine\NomVM"

#Récupération de l'ID de la machine dans l'Hyperviseur
$job = Invoke-command { param($NomVm) Get-SCVirtualMachine | Where-Object {$_.Name -match $NomVm} | select Name, ID, Status } -ArgumentList $NomVm -ComputerName NomMachineDistante -AsJob

Wait-Job $job
$MonResultat = Receive-Job $job
Write-host $MonResultat.ID
Lien vers le fichier : cliquez ici Copier le code

Pages Web

Site WebDescription
Blogs.technet.microsoft.comPowerShell Remoting
Technet.microsoft.comEnable and Use Remote Commands in Windows PowerShell
Msdn.microsoft.comInstallation and Configuration for Windows Remote Management
ss64.comInvoke-Command

2