Entfernten Windows-Rechner aus IPS herunterfahren

Ich überlege gerade, wie ich folgendes am einfachsten und zuverlässigsten umsetzen kann: Ich habe überall da wo es einen Fernseher gibt einen PC daran angeschlossen als einzige Quelle. Ich würde gerne diese PCs ferngesteuert herunterfahren bzw. in Standby oder auch Ruhezustand versetzen können. Umgekehrt geht es schon ganz gut mittels WOL, aber ich bin bislang immer daran gescheitert, entfernt entweder Prozesse auf einem Windows-System zu starten oder dieses herunter zu fahren (beides wäre hilfreich).

1 „Gefällt mir“

schau dir mal in der Eingabeaufforderung den Befehl: shutdown /? an.
Damit solltes du andere PCs oder auch den eigenen herunterfahren oder auch in Standby schicken können. So fern du die nötigen Rechte auf den PCs hast.

Gruß
Rainer

1 „Gefällt mir“

Falls der Symcon Host ein Linux ist muss der „net“ Befehl zur Verfügung stehen, ist im Samba Paket beinhaltet.

apt install samba-common
$Hostname = "pc1";
shell_exec('net rpc shutdown -C "Shutdown durch ip-Symcon initiert.." -S ' . $Hostname . ' -t 2 -f -U Domain/Username%Password');
1 „Gefällt mir“

Danke für euren Input. Hier meine aktuelle Lösung, die zumindest keine spezielle Software auf dem Zielsystem erfordert. IPS läuft bei mir aus Gründen auch unter Windows.

  1. PsTools hier herunterladen und an einen geeigneten Ort auf dem IPS-Rechner, der die anderen herunterfahren soll, entpacken. Einmal PsExec ausführen und EULA bestätigen!
  2. Einen lokalen Useraccount mit Adminrechten auf dem Zielsystem anlegen. Natürlich kann auch der vorhandene Adminaccount benutzt werden, aber eleganter ist wohl, hierfür einen speziellen Account zu benutzen.
  3. Datei- und Druckerfreigabe auf dem Zielsystem muss aktiviert sein.
  4. Den Befehl reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f auf dem Zielsystem ausführen.
  5. Zielsystem neu starten.
  6. Folgender Befehl löst den Ruhezustand aus: PsExec \\hostnameOderIP -i AdminUserName -p AdminUserPassword shutdown /h (für andere Herunterfahrmodi siehe shutdown /? auf der Konsole)

So geht’s aus IPS heraus:

$cmd = "shutdown /h";

$pstools_path = "C:\PsTools";
$path = $pstools_path . "\PsExec.exe";
$par = "\\\\" . $host . " -accepteula -i -u " . $username . " -p " . $password . " " . $cmd;

echo $path . " " . $par . "\n";
IPS_Execute($path, $par, false, false);

(Hatte zuvor ohne den Schalter -accepteula probiert, was aber dann nicht funktioniert weil jeder Nutzer einmal die Bestätigung machen muss und der Prozess von IPS aus unter dem User SYSTEM ausgeführt wird)

Moin zusammen,

PC runterfahren funktioniert bei mir ganz ohne Zusatzsoftware bei meinen Win 10 PCs:

$DeviceIP = ‚192.168.178.79‘;
IPS_ExecuteEx(‚C:/Windows/System32/shutdown.exe‘, ‚/s /f /m \\‘ . $DeviceIP . ’ /t 0’, false ,false, 1);

Neustart mache ich so:

$DeviceIP = ‚192.168.178.47‘;

IPS_ExecuteEx(‚C:/Windows/System32/shutdown.exe‘, ‚/r /f /m \\‘ . $DeviceIP . ’ /t 1’, false ,false, 1);

Das haben die Rechner bei mir rechtemäßig irgendwie nicht mitmachen wollen. Ich musste PsExec benutzen, weil ich da die Credentials für den anderen Rechner angeben kann.