Activer WinRM sur chaque machine cible :
Enable-PSRemoting
Hors domaine — ajouter les machines dans TrustedHosts :
Set-Item WSMan:\Localhost\Client\TrustedHosts -Value "ip_ou_nom"
Test-WSMan "ip_ou_nom" # vérifier la connectivité
La valeur
*pour-Valueest possible mais déconseillée pour des raisons de sécurité.
Exécute un bloc de script sur une ou plusieurs machines distantes (protocole WinRM, ports TCP 5985/5986).
Invoke-Command -ComputerName "serveur01" { Get-Service | Where-Object { $_.Status -eq "Running" } }
Utile pour des connexions répétées ou interactives.
$session = New-PSSession -ComputerName "serveur01"
Enter-PSSession $session # entrer dans le prompt distant
exit # quitter (la session reste active)
Get-PSSession # lister les sessions actives
Remove-PSSession $session # fermer une session
Disable-PSRemoting # désactiver WinRM
Fermer les sessions inutiles et désactiver WinRM quand le travail est terminé.
Gérer des VMs locales depuis l'hôte, sans réseau. Disponible depuis Windows 10 / Hyper-V 2016.
Get-VM # lister les VMs et leurs IDs
# Exécuter une commande dans une VM
Invoke-Command -VMName "MaVM" { Get-EventLog -LogName System -Newest 10 }
# Ouvrir une session interactive dans une VM
$session = New-PSSession -VMName "MaVM"
Enter-PSSession $session
Prérequis : activer les services d'intégration sur la VM.
Get-VMIntegrationService -VMName "MaVM" # vérifier
Enable-VMIntegrationService -VMName "MaVM" -Name "Interface de services d'invité"
Copy-VMFile -VMName "MaVM" -SourcePath "C:\fichier.txt" -DestinationPath "C:\fichier.txt" -CreateFullPath -FileSource Host