Du kennst das bestimmt: Du startest eine App, aber sie geht stur auf dem falschen Monitor auf. Oder schlimmer – sie landet halb im Off oder merkt sich eine unbrauchbare Fensterposition. Wenn du in solchen Fällen ein Fenster per Skript verschieben willst, stößt PowerShell schnell an Grenzen. Besonders bei Electron-Apps (Reolink, Teams, Discord…) wird das schnell zur Geduldsprobe.
In diesem Beitrag zeige ich dir, wie du Fenster gezielt per Skript verschieben kannst – auch wenn klassische Methoden wie PowerShell und MoveWindow()
versagen. Und warum NirCmd dabei dein neuer bester Freund wird.
Warum PowerShell oft nicht reicht
PowerShell hat über user32.dll
grundsätzlich Zugriff auf Fensterpositionen und kann diese auch verändern. Das funktioniert super bei klassischen Win32-Anwendungen – aber moderne UIs wie Electron- oder WebView-Apps machen das Spiel nicht mit:
MainWindowHandle
ist nicht zuverlässig verfügbar- Fenster reagieren nicht sauber auf
MoveWindow()
- Maximieren springt oft auf den falschen Monitor
👉 Genau das war bei meinem Test mit der Reolink-App der Fall. Obwohl das Fenster sichtbar war, ließ es sich per PowerShell nicht zuverlässig, per Script, auf einen anderen Monitor verschieben.
Lösung: NirCmd von NirSoft

NirCmd ist ein kleines, portables Tool – keine Installation nötig – das erstaunlich viele Aufgaben im Windows-System erledigen kann. Und das Beste: Es funktioniert auch mit zickigen Fenstern.
Vorteile von NirCmd für Fenstersteuerung:
- Funktioniert auch bei Electron- und modernen GUI-Anwendungen
- Verschiebt Fenster exakt per Koordinaten (
win move
,win setsize
) - Kann Mausklicks und Tastendrücke simulieren (
sendmouse
,sendkeypress
) - Keine Admin-Rechte nötig
- Ideal kombinierbar mit PowerShell oder Batch-Skripten
Praxisbeispiel: Reolink-App gezielt verschieben und Fullscreen aktivieren
Angenommen, du willst die Reolink-App auf Monitor 2 anzeigen (X=-1366, Y=-255, 1366×768 Auflösung) und per Skript automatisch in den Vollbildmodus bringen – per Klick auf den „Fullscreen“-Button.
🧰 PowerShell + NirCmd Skript
Start-Process "C:\Program Files\Reolink\Reolink.exe"
Start-Sleep -Seconds 5
$nircmd = "C:\Tools\NirCmd\nircmd.exe"
# Reolink-Fenster verschieben
& $nircmd win activate title "Reolink"
Start-Sleep -Milliseconds 300
& $nircmd win setsize title "Reolink" -1366 -255 1366 768
# Maus auf Fullscreen-Button bewegen und klicken
& $nircmd setcursor -44 477
Start-Sleep -Milliseconds 200
& $nircmd sendmouse left click
# Maus zurück parken (optional)
& $nircmd setcursor 10 10
✅ Das funktioniert auch, wenn PowerShell MainWindowHandle
nicht greifen kann.
Woher weiß ich die Koordinaten?
Tipp: Nutze diesen kleinen PowerShell-Snack, um deine Mausposition automatisch abzufragen:
Add-Type -AssemblyName System.Windows.Forms
Start-Sleep -Seconds 5
$pos = [System.Windows.Forms.Cursor]::Position
"X: $($pos.X), Y: $($pos.Y)"
Starte das Skript, bring die Maus in Position – z. B. über den Fullscreen-Button – und lies die Werte direkt im Terminal ab.
Weitere Möglichkeiten mit NirCmd
- Fenster in den Vordergrund holen:
win activate
- Immer im Vordergrund halten:
win settopmost
- Fenster minimieren/maximieren:
win max
,win min
- Fenster auf bestimmte Pixel setzen:
win move
oderwin setsize
- Fenster anklicken:
sendmouse
👉 Du kannst sogar die Lautstärke steuern, Monitore ausschalten, Hotkeys simulieren u. v. m.
Nützliches Zubehör
📘 Windows PowerShell: Grundlagen und Scripting-Praxis für den Einstieg* (bezahlter Link)
🎛️ Stream Decks* (bezahlter Link) – perfekt, um Skripte wie dieses auf Knopfdruck zu starten
Weiterlesen
Wenn dich interessiert, wie du mit PowerShell & Aufgabenplaner Fenster nur an Wochentagen automatisch starten und verschieben kannst, schau mal hier rein:
👉 Windows-Autostart nur an Wochentagen mit automatischer Fensterplatzierung (PowerShell + Aufgabenplaner)
Fazit: NirCmd ist klein, kostenlos und unglaublich vielseitig. Wenn PowerShell an seine Grenzen stößt, kommt der kleine Helfer zur Rettung – zuverlässig, nerdy, genial 💡
Wenn du’s selbst ausprobierst oder Fragen hast – schreibe einen Kommentar