1

Bildschirm ausschalten mit PowerShell

Letztens bin ich über eine Frage eines Users gestolpert, der gefragt hat, wie man mit PowerShell den Bildschirm ausschalten kann. In der Regel ist mit PowerShell alles realisierbar, allerdings ist das mit den Monitoren nicht ganz so einfach.

Bildschirm ausschalten mit Powershell

Bildschirm ausschalten mit PowerShell

Wie oben schon erwähnt ist es mit Umwegen möglich, den Monitor ausschalten zu lassen. Hierzu wird Code mit dem Add-Type cmdlet ausgeführt. Das komplette PowerShell Script sieht folgendermaßen aus:

Add-Type -TypeDefinition '
using System;
using System.Runtime.InteropServices;
 
namespace Utilities {
   public static class Display
   {
      [DllImport("user32.dll", CharSet = CharSet.Auto)]
      private static extern IntPtr SendMessage(
         IntPtr hWnd,
         UInt32 Msg,
         IntPtr wParam,
         IntPtr lParam
      );
 
      public static void PowerOff ()
      {
         SendMessage(
            (IntPtr)0xffff, // HWND_BROADCAST
            0x0112,         // WM_SYSCOMMAND
            (IntPtr)0xf170, // SC_MONITORPOWER
            (IntPtr)0x0002  // POWER_OFF
         );
      }
   }
}
'

Aufgerufen kann die definierte Methode dann mit [Utilities.Display]::PowerOff() um den Bildschirm auszuschalten. Doch was dann? Naja mit einer einfachen Mausbewegung aktiviert Windows den Monitor wieder.

Energie sparen: Monitor ausschalten

Im privaten Umfeld sehe ich kein Einsatzgebiet. In Unternehmen mit vielen hundert oder sogar tausend Computern kann das allerdings hilfreich sein. Wenn man zentral die Bildschirme der Computer ausschalten lässt, kann man einiges an Energie sparen. Das ganze sollte natürlich zeitgesteuert über Nacht passieren. Das kann mit PowerShell und der Aufgabenplanung realisiert werden.

Johannes
 

  • TE sagt:

    Wie genial ist das denn? Genau diese Funktionalität habe ich schon länger für meinen Heimstudio-PC mit mehreren Bildschirmen gesucht, perfekt für meinen (privaten 🙂 Zweck, herzlichen Dank dafür!

  • sidebar
    >