Jump to content
HeizungAuf5

APC PowerChute Shutdown Script

Recommended Posts

Hallo zusammen,

 

ich versuche seit geraumer Zeit ein PowerShell Script in unsere APC PowerChute einzubinden. Nur leider scheint das nicht so wirklich zu funktionieren.

 

Ich möchte, dass die CMD Datei (was anderes kann PowerChute scheinbar nicht ausführen) eine PowerShell Datei - die im gleichen Verzeichnis liegt ausführt, die dann die Aktionen durchführt. In native-batch lässt sich das, was ich möchte nicht umsetzen.

 

Meine CMD-Datei sieht aktuell so aus. Nur eine Zeile:

powershell -command .\test.ps1

In der "test.ps1" steht dann der eigentliche Code drin. Wenn ich die CMD-Datei mit einem doppelklick ausführe tut sie auch das was sie soll -> Die CMD-Datei startet die PS1 Datei und die läuft durch.

 

Wenn ich die CMD-Datei nun aber per PoerChute starte, läuft die CMD-Datei auch durch, die ps1-Datei wird aber scheinbar übersprungen. Lustiger weise werden aber die CMD-Commands, die nach dem PS-Aufruf sind noch ausgeführt.

 

Den Dienst habe ich bereits entsprechend angepasst.

image.png.90951b184f5123cb460ccfcaad04c0e0.png

 

 

Jemand eine Idee, wie ich das lauffähig bekommen kann?

 

Grüße und Danke!

Share this post


Link to post
Share on other sites
vor 3 Minuten schrieb Dukel:

Logs Fehlermeldungen? 

Leider nein. Weder dass er eine Datei durchlaufen hat (was für die reine .CMD Datei ja stimmen würde), noch dass etwas nicht funktioniert hat.

 

Grüße!

Share this post


Link to post
Share on other sites

Hi,

 

keine Ahnung ob "-command" auch funktionieren sollte. Ein Script sollte allerdings mit "-File <Pfad zum Script>" gestartet werden. Ansonsten würde ich noch "-NoProfile" nutzen. Testweise kannst du mal "-ExecutionPolicy Bypass" versuchen.

 

Gruß

Jan

Share this post


Link to post
Share on other sites
vor einer Stunde schrieb testperson:

Ansonsten würde ich noch "-NoProfile" nutzen. Testweise kannst du mal "-ExecutionPolicy Bypass" versuchen.

Hab jetzt mal den Holzhammer raus geholt. Funktioniert leider weiterhin nicht

 

powershell -ExecutionPolicy Bypass -NoProfile  -File "C:\Program Files (x86)\APC\PowerChute Business Edition\agent\cmdfiles\test.ps1"

 

Grüße!

Share this post


Link to post
Share on other sites

Ohne Logs was genau schief geht wird es schwirig.

Wie sieht die Execution Policy aus? Wie sieht diese in der 64bit Powershell aus?

 

Versuche mal:

 

powershell.exe -ExecutionPolicy Unrestricted -NoProfile -NonInteractive -file "C:\Program Files (x86)\APC\PowerChute Business Edition\agent\cmdfiles\test.ps1"

Share this post


Link to post
Share on other sites

Hallo,

eine Idee wäre es eine Batch zu starten, aus der eine PS mit entsprechenden Berechtigungen instanziert wird.

Hatte bei einer Dell UPS (gibt es zwischenzeitlich nicht mehr) ähnliche Probleme und mir damals über die Hauruckaktion geholfen.

 

Batchdatei startet PowerShell Skript "Anlauf Skript"

"Anlauf Skript"  startet separate Instanz von PowerShell mit entsprechenden Credentials - die Credentials wurden verschlüsselt übermittelt.

Dahinter liefen dann die eigentlichen Skript der mehrere Shutdown Skripte (Threads) parallel angestartet hat.

 

Edit: Die Batch war sehr einfach:


echo Shutdown of all VM’s and ESX hosts is launched at >> C:\tools\usv_shutdown\log\alert.txt
echo %date% %time% >> C:\tools\usv_shutdown\log\alert.txt
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\tools\usv_shutdown\runasAdministrator.ps1'" -PSConsoleFile "C:\tools\usv_shutdown\vim.psc1"

 

 

Edited by PowerShellAdmin

Share this post


Link to post
Share on other sites

Wenn nirgendwo geloggt wird, musst du wohl was Logging einbauen. Evtl. mal ganz "stumpf" vor der PowerShell Zeile ein "pause" und danach auch.

Um zu prüfen, ob das Skript gestartet wird oder auch nicht, kannst du im PowerShell Script auch einmal ein "pause" einbauen.

Share this post


Link to post
Share on other sites

hat die USV eine Managementkarte? Wenn ja würde ich Powercute network Shutdown verwenden und nicht mit nem Script arbeiten

Share this post


Link to post
Share on other sites

Hallo zusammen

 

vor 45 Minuten schrieb Dukel:

Ohne Logs was genau schief geht wird es schwirig. 

Leider bekomme ich von der APC ebenfalls keine Logs. Die Datei wird ja aber gestartet.

 

 

vor 45 Minuten schrieb Dukel:

Versuche mal:

 

powershell.exe -ExecutionPolicy Unrestricted -NoProfile -NonInteractive -file "C:\Program Files (x86)\APC\PowerChute Business Edition\agent\cmdfiles\test.ps1" 

Leider auch nicht. Genau das gleiche.

 

 

vor 43 Minuten schrieb testperson:

Wenn nirgendwo geloggt wird, musst du wohl was Logging einbauen

So habe ich herausgefunden, dass die CMD-Datei durchläuft. Zwar nicht mit PAUSE, sondern mit Message-Boxen. Einne in der ersten Zeile der CMD Datei, eine in der ps1-Datei und eine dritte in der letzten Zeile der CMD-Datei. Wenn ich die CMD Datei händisch starte, bekomme ich alle 3 Boxen angezeigt, wenn APC die startet nur die erste und die letzte.

 

 

vor 8 Minuten schrieb Squire:

hat die USV eine Managementkarte?

Leider nein, ist eine Smart 1000.

 

 

Grüße!

Share this post


Link to post
Share on other sites
2 minutes ago, HeizungAuf5 said:

Leider nein, ist eine Smart 1000.

Wieso kauft man einen USV ohne Managementkarte?

Share this post


Link to post
Share on other sites
vor 3 Minuten schrieb Dukel:

Wieso kauft man einen USV ohne Managementkarte?

Ich sag mal so: An dem Techniker (mir) hätts nicht gelegen.

 

Wobei ich auch ehrlich gesagt bei einem einzelnen angebundenen Gerät (hier, ein Server) keine netzbasierte USV bevorzuge, sondern eine mit einer direkten Verbindung. Eine Netzwerkinfrastruktur kann ausfallen, eine direkte USB Verbindung eher weniger.

Share this post


Link to post
Share on other sites

Was interessieren mich deine Fehler von gestern.

Zur Frage - Schau dir mal meinen Vorschlag an...  Das müsste eigentlich so noch laufen. Die Umsetzung ist nicht so kompliziert :)

Edited by PowerShellAdmin

Share this post


Link to post
Share on other sites
vor 1 Minute schrieb Dukel:

Was soll denn das Script machen

- Email schreiben

- einen Switch runterfahren (da haben wir uns vom Hersteller ein Script basteln lassen, dass das kann)

- zum Schluss den Server runterfahren (werde mit der APC-Eigenen Shutdown-Automatik nicht ganz warm)

 

vor 2 Minuten schrieb PowerShellAdmin:

Schau dir mal meinen Vorschlag an...  Das müsste eigentlich so noch laufen

Jup, da bin ich gerade dabei, mir so etwas zu basteln. Nur irgendwie scheinen die WWW-Lösungen nicht so richtig zu wollen. Kannst Du eine gute Anleitung, bzw einen "Vorlagen"-Code empfehlen, der das ordentlich kann?

 

 

Grüße!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...