Es gibt viele Lösungen, um die Anzeige lokal auf einem Windows10-Computer zu deaktivieren. Sie sind alle eine Form der folgenden SendMessage-Zeile. Es gibt auch kleine ausführbare Dateien wie nircmd, die dies tun. Es scheint jedoch einige Einschränkungen zu geben, wenn Sie eines dieser Programme über OpenSSH ausführen. Da mein OpenSSH so konfiguriert ist, dass er genau die gleichen Anmeldeinformationen wie mein lokaler Benutzer verwendet, kann ich nicht wirklich herausfinden, warum nichts passiert. Die ps-Skriptversionen geben eine einfache 1 zurück, und Lösungen wie nircmd geben überhaupt nichts zurück. Nicht einmal ein Fehler. Wissen Sie, was hier passieren kann und wie es funktioniert?
Beispielskript:
Powershell (Add-Type '[DllImport (\ "user32.dll \")] ^ public static extern int SendMessage (int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas) :: SendMessage (- 1,0x0112,0xF170,2)
edit: vielleicht sollte ich das andere hinzufügen nircmd Optionen wie Stummschaltung funktionieren problemlos.
quelle
Antworten:
Dies liegt daran, dass die interaktive Windows-Sitzung nicht die aktuelle Sitzung ist und daher nicht in einem Kontext ausgeführt wird, in dem die physische Anzeige aktiv verbunden ist. Sound und andere Funktionen sind, aber das Display ist an eine Sitzung gebunden. Sie können sich entweder interaktiv anmelden oder psexec verwenden, um den Powershell-Prozess im Kontext des Benutzers auszuführen. Wenn Sie mit psexec einverstanden sind, können Sie Folgendes verwenden:
Dafür benötigen Sie allerdings psexec.
Wenn es mehr als eine interaktive Sitzung gibt, wird diese mehr als einmal ausgeführt.
Wenn Sie von der Stapelverarbeitung aus arbeiten, müssen Sie beide% s durch %% s ersetzen.
Dies ist der Teil, der die interaktive Sitzung sammelt:
quelle