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
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
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
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
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
Pages Web
Site Web | Description |
---|---|
Blogs.technet.microsoft.com | PowerShell Remoting |
Technet.microsoft.com | Enable and Use Remote Commands in Windows PowerShell |
Msdn.microsoft.com | Installation and Configuration for Windows Remote Management |
ss64.com | Invoke-Command |