Le fichier de commande Windows ne s'exécute pas dans PowerChute : Comment vérifier l'utilisation correcte de la syntaxe ?
Problème :
Un fichier de commandes ne s'exécute pas dans PowerChute.
Ligne de produits:
PowerChute Network Shutdown
PowerChute Business Edition
PowerChute Serial Shutdown
Environnement:
Tous les systèmes d'exploitation Windows pris en charge.
NOTE: Pour obtenir de l'aide sur les scripts Linux/Unix, consultez la FAQ de Schneider Electric PowerChute Network Shutdown pour UNIX/Linux n'exécute pas les scripts/commandes shell
Cause:
Syntax
Solution:
Le fichier de commandes s'exécute à l'aide du compte système local. PowerChute ne peut pas exécuter de programmes qui nécessitent une interaction avec le bureau ; seuls les programmes en ligne de commande sont pris en charge, par exemple, si vous essayez de lancer le Bloc-notes, cela échouera. Dans les versions antérieures de Windows, tous les services s'exécutent dans la session 0 en même temps que les applications. Cette situation présente un risque pour la sécurité. Dans Windows Vista et les versions ultérieures de Windows, le système d'exploitation isole les services dans la session 0 et exécute les applications dans d'autres sessions. PowerChute est exécuté dans la session 0. Par conséquent, si un fichier de commande lance un .exe, ce .exe sera lancé dans la session 0 et ne sera pas visible par les utilisateurs connectés. Pour vérifier que le fichier .exe a bien été lancé, ouvrez le Gestionnaire des tâches et consultez la liste des processus en cours d'exécution. Vous trouverez de plus amples informations sur la session Windows à l'adresse suivante: http://blogs.technet.com/b/askperf/archive/2007/04/27/application-compatibility-session-0-isolation.aspx.
NOTE: Avec la sortie de PowerChute Network, Shutdown 4.4, tous les fichiers de commande et les fichiers SSH doivent résider dans C:/Program Files/APC/PowerChute/user_files. Lors de l'ajout du fichier, le chemin complet doit être indiqué. Les alias de nom de dossier (par exemple, c:\progra~1\apc\...) ne sont pas acceptables.
Pour exécuter des fichiers de commandes à partir de PowerChute, vous devez utiliser la syntaxe correcte.
Si le fichier de commandes contient des instructions pour exécuter des fichiers exécutables (.exe), vous devez utiliser la commande appelée @START dans les instructions.
La commande @START utilise les règles syntaxiques suivantes :
Les exemples suivants illustrent l'utilisation correcte de la syntaxe pour l'utilisation des utilitaires d'arrêt d'APC en tant qu'exécutables :
Exemple:Un programme exécutable sans espace dans le chemin d'accès complet.
Aucun guillemet n'est requis:
@START C:\APC\Oracle\PWRFAIL.BAT
Les guillemets sont requis:
@START C:"\Program Files\APC\PWRFAIL.BAT"
* Les guillemets ne sont pas nécessaires lors de la saisie du chemin d'accès de PowerChute Network Shutdown 4.4 et supérieur.
Exemple : C:/Progam Files/APC/PowerChute/user_files/PWRFAIL.BAT
Vous pouvez tester le bon fonctionnement du fichier de commandes en exécutant un simple fichier de commandes.
- Créer un répertoire, nommé apctest, directement sur le lecteur C.
- Ouvrir un éditeur de texte, par exemple Notepad++ et entrer la ligne suivante time /T >> ; C:\Napctest\cmdtext.txt
- Enregistrer le fichier en tant que fichier batch
- Ajouter Test.bat à un événement PowerChute et déclenchez l'événement.
- PowerChute exécutera le fichier de commandes et ajoutera un fichier à C:\Napctest nommé cmdtext.txt.
- Ouvrez cmdtext.txt avec un éditeur de texte, et vous verrez la date et l'heure à partir desquelles Test.bat s'est exécuté.
Lorsque vous tentez d'éteindre un système distant, le compte du service PowerChute doit être remplacé par un compte disposant d'autorisations sur le système distant pour l'éteindre.
Dans la capture d'écran, le compte a été remplacé par wkadmin pour le service PowerChute Network Shutdown. Il faudrait faire de même pour le service PowerChute Business Edition Agent.
La syntaxe du fichier de commande utilisée pour arrêter un serveur distant est
shutdown /s /f /m \\server ip /c "PowerChute a initié un arrêt du système" ; /t 0 Les utilisateurs doivent entrer l'adresse ip appropriée de leur serveur et doivent ajuster le /t (délai) pour répondre à leurs besoins.
Voir Microsoft TechNet pour plus d'informations sur l'exécution de la commande shutdown https://technet.microsoft.com/en-us/library/bb491003.aspx
La syntaxe pour exécuter une commande à distance sur un système Linux à l'aide de Putty/plink est
C:"\Program Files (x86)\PuTTY\plink.exe" ; -batch username@<ip address> ; -pw <users password> ; "commande à exécuter sur le système Linux distant"
Exemple : C:"\Program Files (x86)\PuTTY\plink.exe" ; -batch myuser@192.168.0.100 -pw mypassword "shutdown -h now"