Bonjour,
J'essai d'éteindre un Serveur ESXi a distance via un script.
J'ai deux fichiers :

un script.bat qui fait appel à un script.ps1
Le script.ps1 lui, envoi l'ordre d'extinction à l'ESXi placé sur le même réseau.

Lorsque je lance le script.bat à la main (via double clic), tout fonctionne, l'ESXi s'éteint.

Le fait est que j'ai un onduleur avec un logiciel qui lance mon script lorsqu'il repère qu'il n'y a plus de courant.

Après des tests, je peux voir que sur coupure secteur, mon script.bat est lancé, celui-ci lance par la suite mon script.ps1 mais une ligne dans le script me bloque.

Voici mes deux scripts :

le script.bat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
cd C:\Users\Administrateur\Desktop\
mkdir script_bat_lance
powershell -executionpolicy bypass -file "c:\Users\Administrateur\Desktop\script.ps1"
le script.ps1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mkdir C:\Users\Administrateur\Desktop\script_powershell_lance
Add-PSSnapin VMware.VimAutomation.Core

mkdir C:\Users\Administrateur\Desktop\script_powershell_vmware

$server = "ip.add.re.ss"
$username = "rootname"
$password = "rootpass"
mkdir C:\Users\Administrateur\Desktop\script_powershell_connection_server

connect-viserver -server $server -User $username -Password $password
sleep 10
$ESXSRV = Get-VMHost
$ESXSRV | Foreach {Get-View $_.ID} | Foreach {$_.ShutdownHost_Task($TRUE)}

sleep 10
mkdir C:\Users\Administrateur\Desktop\script_powershell_termine
la ligne qui me fait bloquer est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Add-PSSnapin VMware.VimAutomation.Core
En effet, la création de dossier juste avant fonctionne, mais pas celle d'après.

2 choix se proposent à moi :

Soit il faut trouver comment executer cette commande via mon script.ps1 (peut-être manque-t-il un argument, ou un droit...)

Soit au lieu de passer par le powershell, je passe par VMware vSphere PowerCLI (le script.bat ne lancera plus le powershell mais lancera PowerCLI, et mettra les commandes qui suivent dedans)
Le fait est que je ne sait pas comment appeler PowerCLI...
J'ai essayé un start C:\Windows\System32\WindowsPowerShell\v1.0
Mais il me lance le powershell... et Add-PSSnapin VMware.VimAutomation.Core n'est donc pas implémenté dedans...

Si vous avez une solution, je suis preneur...

Merci beaucoup !