Envoyer une commande dans une VM avec Invoke-VMScript

Lancer powercli

connectez-vous à votre vCenter

Récupérer le nom de la vm

Get-VM -name NOM-DE-LA-VM

Si vous utilisez des certificats auto-signé, passer la commande suivante pour ne pas avoir de soucis de SSL/TLS :

add-type @"
using System.Net;

using System.Security.Cryptography.X509Certificates;

public class TrustAllCertsPolicy : ICertificatePolicy {

  public bool CheckValidationResult(

  ServicePoint srvPoint, X509Certificate certificate,

  WebRequest request, int certificateProblem) {

  return true;

  }

}

"@

[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

Puis créez votre commande :

$vm = Get-vm -name 'le nom de la VM'
$command = 'ma commande'
$gc = Get-Credential # les identifiants des la VM
Invoke-VMScript -vm $vm -ScriptText $command -GuestCredential $gc