Tags: PowerShell, Kommandozeile, WMI
Wenn man die aktuelle Bildschirmauflösung in einem Script oder auf der Kommandozeile auslesen möchte, dann geht das recht einfach mit WMI. Will man sie jedoch verändern, dann bietet Windows dafür kaum brauchbare Mittel an.
Für die automatisierte Bearbeitung der Bildschirmauflösung gibt es nicht allzu viele Anwendungsfälle. Am ehesten tritt die Notwendigkeit dafür unter Server Core auf, der keine GUI-Mittel zu diesem Zweck bietet. Die meisten Tipps bestehen darin, diverse Registry-Schlüssel von Hand zu setzen.
Werte für die Anzeige per WMI auslesen
Möchte man die Werte für die Bildschirmdarstellung ermitteln, dann erhält man diese Daten relativ einfach über WMI. Auf der Kommandozeile lässt sich dafür wmic nutzen, das ein eigenes Alias namens desktopmonitor für diesen Zweck bereitstellt:
wmic desktopmonitor get screenheight, screenwidth
Die Entsprechung dazu würde in PowerShell unter Verwendung von Get-WmiObject (Alias gwmi) so aussehen:
gwmi Win32_DesktopMonitor | select ScreenHeight, ScreenWidth | fl
Wie immer hat die Powershell-Variante den Vorzug, dass man die ermittelten Werte mit Hilfe von Vergleichsoperatoren prüfen oder an zur Weiterverarbeitung an andere Cmdlets weiterreichen kann:
$sr = gwmi Win32_DesktopMonitor
if($sr.ScreenWidth -lt 1280) {write "Monitor zu klein"}
Auflösung ändern
Schwieriger wird es, wenn man die Bildschirmauflösung von der Kommandozeile oder aus einem Script ändern möchte. Hier kommt man ohne externe Tools schlecht zurecht. Mit wmic gelangt man gar nicht ans Ziel und in PowerShell artet diese Aufgabe in aufwändiges Scripting aus.
Am einfachsten klappt es mit der schon ziemlich betagten Freeware qres.exe, die aber auch unter neueren Versionen von Windows ihren Dienst tut. Beispielsweise ändert
qres.exe /x:1280 /y:1024
die Auflösung zu 1280 x 1024. Damit man weiß, welche Werte aktuell eingestellt sind, kann man qres mit dem Schalter /s starten. Bei Verwendung von /r zeigt es alle verfügbaren Modi an, so dass man nicht experimentieren muss, um herauszufinden, welche überhaupt unterstützt werden.
Unter Windows Server Core 2008 (R2) existiert noch eine weitere Option, wenn man den kostenlosen Core Configurator verwendet, um das System zu verwalten. Er erlaubt auch die Änderung der Bildschirmauflösung, die allerdings erst nach einem Neustart greift.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- Programme (remote) mit PowerShell deinstallieren
- Windows Terminal 1.6 Preview erhält GUI für Einstellungen, v1.5 nun offizielles Release
- PowerShell 7.1 (als Store-App) verfügbar, Updates für PSReadLine, SecretManagement und PowerShellGet
- Fehler beim Ändern der Zeitzone in Windows Server 2019: Kommandozeile als Alternative
- Get-ComputerInfo: Systeminformationen auslesen mit PowerShell
Weitere Links
1 Kommentar
Vielen Dank für den Tipp, welche ich für meinen Photobooth gut brauchen kann!