Der Windows-Autostart ist praktisch – bis er anfängt zu nerven. Programme starten immer, auch am Wochenende, auch zu unnötigen Zeiten und meistens genau dort, wo man sie nicht haben will. In diesem Beitrag zeige ich dir, wie du den Windows-Autostart nur an Wochentagen ausführst und Fenster automatisch auf dem richtigen Monitor platzierst.
Die Lösung besteht aus zwei Teilen: Einem PowerShell-Skript, das prüft, ob heute überhaupt ein Arbeitstag ist, und dem Windows-Aufgabenplaner, der das Skript bei der Anmeldung startet. Zusätzlich verschiebt das Skript ein Programmfenster automatisch auf den gewünschten Bildschirm.
👉 Tipp: Du nutzt PowerShell bereits für dein Smart Home? Dann schau dir auch meinen Beitrag zur automatisierten Gerätesteuerung mit ioBroker und PowerShell an.
Schnellnavigation
- Warum Autostart nur an Wochentagen sinnvoll ist
- Was du für die Lösung brauchst
- Das PowerShell-Skript für den Autostart
- Fenster automatisch auf Monitor 2 oder 3 platzieren
- PowerShell-Skript per Aufgabenplaner starten
- Pro-Tipps für mehrere Programme und Monitore
- Fazit
- FAQ zum Windows-Autostart an Wochentagen
Warum Windows-Autostart nur an Wochentagen sinnvoll ist
Der normale Windows-Autostart kennt meistens nur zwei Zustände: Ein Programm startet automatisch – oder eben nicht. Für viele Setups reicht das nicht aus.
Gerade bei Arbeitsrechnern, Homeoffice-Setups oder festen Multimonitor-Arbeitsplätzen möchte man oft genauer steuern, wann ein Programm startet.
- Arbeitstools sollen nur von Montag bis Freitag starten.
- Programme sollen nur in einem bestimmten Uhrzeitfenster geöffnet werden.
- Fenster sollen automatisch auf dem richtigen Monitor landen.
- Wochenende und Freizeit sollen nicht mit Arbeitssoftware zugemüllt werden.
Genau dafür eignet sich die Kombination aus PowerShell und Aufgabenplaner sehr gut. Der Aufgabenplaner startet das Skript bei der Anmeldung, und das Skript entscheidet dann selbst, ob heute überhaupt etwas passieren soll.
Weitere Informationen zur Aufgabenplanung findest du direkt bei Microsoft: Windows Aufgabenplanung bei Microsoft.
Was du für den Windows-Autostart an Wochentagen brauchst
Für diese Lösung brauchst du keine zusätzliche Software. Alles funktioniert mit Bordmitteln von Windows.
- Windows 10 oder Windows 11
- PowerShell
- den Windows-Aufgabenplaner
- optional ein Multimonitor-Setup
- den Pfad zum gewünschten Programm oder den Protokollnamen einer Store-App
Das Beispiel unten startet eine Windows-Store-App per Protokollaufruf und zusätzlich ein klassisches Programm über eine .exe-Datei. Danach wird das Fenster gesucht und automatisch auf einem bestimmten Monitor positioniert.
Wichtig: Die Fensterplatzierung funktioniert nur zuverlässig, wenn das Programm ein normales sichtbares Fenster mit erkennbarem Fenstertitel öffnet. Manche Apps starten verzögert, minimiert oder mit wechselnden Fenstertiteln. Deshalb enthält das Skript eine kleine Warteschleife.
Das PowerShell-Skript für Windows-Autostart nur an Wochentagen
Das folgende PowerShell-Skript prüft zuerst den Wochentag und die aktuelle Uhrzeit. Nur wenn Montag bis Freitag ist und die Uhrzeit im gewünschten Bereich liegt, werden die Programme gestartet.
Im Beispiel läuft der Autostart nur Montag bis Freitag zwischen 6 und 15 Uhr. Diese Werte kannst du natürlich anpassen.
# Informationen über angeschlossene Bildschirme abrufen
Add-Type -AssemblyName System.Windows.Forms
# Aktuelles Datum und Uhrzeit abrufen
$now = Get-Date
$weekday = $now.DayOfWeek
$hour = $now.Hour
# Nur an Wochentagen (Montag bis Freitag) zwischen 6 und 15 Uhr ausführen
if (
($weekday -ne 'Saturday' -and $weekday -ne 'Sunday') -and
($hour -ge 6 -and $hour -lt 15)
) {
# Beispiel 1: Windows-Store-App starten
# Store-Apps werden häufig über Protokolle gestartet, z. B. "msteams:" oder "spotify:"
Start-Process "msteams:"
# Beispiel 2: Klassisches Windows-Programm starten
$appPath = "C:\Programme\MeineApp\MeinTool.exe"
$appProc = Start-Process $appPath -PassThru
# Kurze Pause, damit das Fenster der Anwendung erscheinen kann
Start-Sleep -Seconds 5
# Windows-API einbinden, um Fenster verschieben zu können
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class WinAPI {
[DllImport("user32.dll")]
public static extern bool MoveWindow(
IntPtr hWnd,
int X,
int Y,
int nWidth,
int nHeight,
bool bRepaint
);
}
"@
# Alle Bildschirme abrufen
$screens = [System.Windows.Forms.Screen]::AllScreens
# Ziel: Monitor 3 (Index 2), falls vorhanden
# Falls weniger als drei Monitore vorhanden sind, wird der letzte Monitor verwendet
if ($screens.Count -ge 3) {
$screen = $screens[2]
} else {
$screen = $screens[$screens.Count - 1]
}
# Position und Größe berechnen
# In diesem Beispiel wird die untere Hälfte des Zielmonitors verwendet
$x = $screen.WorkingArea.X
$width = $screen.WorkingArea.Width
$halfHeight = [int]($screen.WorkingArea.Height / 2)
$yBottom = $screen.WorkingArea.Y + $halfHeight
# Fensterhandle suchen
# Manche Programme brauchen etwas Zeit, bis ein Fenster sichtbar ist
$handle = $null
for ($i = 0; $i -lt 20; $i++) {
$proc = Get-Process | Where-Object {
$_.MainWindowTitle -like "*MeinTool*"
} | Select-Object -First 1
if ($proc -and $proc.MainWindowHandle -ne 0) {
$handle = $proc.MainWindowHandle
break
}
Start-Sleep -Milliseconds 500
}
# Fenster verschieben, wenn ein gültiges Fensterhandle gefunden wurde
if ($handle -and $handle -ne 0) {
[WinAPI]::MoveWindow(
[intptr]$handle,
$x,
$yBottom,
$width,
$halfHeight,
$true
)
}
}
Den Pfad C:\Programme\MeineApp\MeinTool.exe und den Fenstertitel *MeinTool* musst du natürlich an dein eigenes Programm anpassen.
Weitere Details zur verwendeten Get-Date-Funktion findest du in der PowerShell-Dokumentation von Microsoft.
Fenster automatisch auf Monitor 2 oder 3 platzieren
Die automatische Fensterplatzierung ist besonders praktisch, wenn du mehrere Monitore nutzt. Vielleicht soll Teams immer auf den rechten Bildschirm, ein Kamera-Tool auf einen Hochkant-Monitor oder ein Dashboard auf den dritten Monitor.
PowerShell kann über System.Windows.Forms.Screen die angeschlossenen Bildschirme auslesen. Wichtig ist dabei: Die Monitore werden als Array gezählt. Der erste Monitor hat den Index 0, der zweite Monitor 1, der dritte Monitor 2.
| Monitor | Index im Skript | Beispiel |
|---|---|---|
| Monitor 1 | $screens[0] | Hauptmonitor |
| Monitor 2 | $screens[1] | rechter Monitor |
| Monitor 3 | $screens[2] | Hochkant-Monitor oder Dashboard |
Im Beispiel wird Monitor 3 verwendet, wenn er vorhanden ist. Falls nicht, nimmt das Skript automatisch den letzten verfügbaren Monitor. Das verhindert Fehler, wenn du den Rechner einmal ohne komplettes Monitor-Setup startest.
Falls du Fenster lieber maximieren, zentrieren oder auf eine feste Größe setzen möchtest, kannst du die Werte für $x, $yBottom, $width und $halfHeight entsprechend anpassen.
PowerShell-Skript mit dem Aufgabenplaner starten
Damit das Skript automatisch ausgeführt wird, legst du im Windows-Aufgabenplaner eine neue Aufgabe an. Der Aufgabenplaner startet das Skript zum Beispiel bei deiner Anmeldung. Die eigentliche Wochentagsprüfung übernimmt dann PowerShell.
- Öffne den Aufgabenplaner mit
taskschd.msc. - Klicke rechts auf „Aufgabe erstellen“.
- Im Reiter „Allgemein“ vergibst du einen Namen, z. B.
Autostart Wochentage. - Aktiviere optional „Mit höchsten Privilegien ausführen“, falls dein Programm erhöhte Rechte benötigt.
- Im Reiter „Trigger“ erstellst du einen neuen Trigger „Bei Anmeldung“.
- Optional kannst du den Start um 30 Sekunden verzögern, damit Windows erst vollständig geladen ist.
- Im Reiter „Aktionen“ wählst du als Programm
powershell.exe. - Als Argument verwendest du den Pfad zu deinem Skript.
Die Argumente können zum Beispiel so aussehen:
-ExecutionPolicy Bypass -File "C:\Scripts\autostart-wochentage.ps1"
Der Parameter -ExecutionPolicy Bypass sorgt dafür, dass das Skript trotz restriktiver PowerShell-Ausführungsrichtlinie gestartet werden kann. Das ist praktisch, sollte aber bewusst eingesetzt werden. Speichere solche Skripte nur an Orten, an denen nicht jeder Benutzer unbemerkt Änderungen vornehmen kann.

Pro-Tipps für mehrere Programme und Monitore
Das Beispiel lässt sich problemlos erweitern. Du kannst mehrere Programme starten, unterschiedliche Fenstertitel suchen und jedes Fenster auf einen anderen Monitor verschieben.
- Nutze eindeutige Fenstertitel, damit PowerShell das richtige Fenster findet.
- Baue zwischen Programmstart und Fensterplatzierung kurze Wartezeiten ein.
- Verwende für Store-Apps den passenden Protokollaufruf, zum Beispiel
msteams:oderspotify:. - Prüfe bei Multimonitor-Setups die Monitor-Reihenfolge in Windows.
- Speichere das Skript an einem festen Pfad, zum Beispiel unter
C:\Scripts\.
Wenn du noch mehr Kontrolle über Fenster brauchst, können Tools wie AutoHotkey oder NirCmd von NirSoft interessant sein.
📚 Weitere Beispiele findest du auch über die PowerShell-Suche auf GitHub.
PowerShell ist mächtig, aber nicht immer die bequemste Lösung. Wenn du Fenster besonders gezielt per Skript verschieben willst, schau dir auch meinen Beitrag Fenster per Skript verschieben – wenn PowerShell nicht mehr reicht an.
Und wenn du Automatisierung nicht nur unter Windows, sondern auch mit KI und Smart Home weiterdenken möchtest, findest du hier meinen Überblick: Künstliche Intelligenz verstehen und nutzen.
Fazit: Windows-Autostart nur an Wochentagen automatisieren
Mit PowerShell und dem Windows-Aufgabenplaner kannst du deinen Autostart deutlich sauberer steuern als mit dem normalen Autostart-Ordner. Programme starten nur dann, wenn du sie wirklich brauchst – zum Beispiel Montag bis Freitag in deinem Arbeitszeitfenster.
Besonders praktisch wird das Ganze in Kombination mit automatischer Fensterplatzierung. So landen wichtige Programme direkt auf dem richtigen Monitor, ohne dass du nach jedem Start alles von Hand zurechtschieben musst.
Das Ergebnis ist ein aufgeräumterer Windows-Start, weniger unnötige Programme am Wochenende und ein Arbeitsplatz, der sich ein Stück weit selbst sortiert.
Nützliche Tools für dein Windows-Autostart-Setup
Wenn du dein Setup weiter ausbauen willst, passen diese Werkzeuge gut zum Thema:
- Windows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger (bezahlter Link)
Ein deutschsprachiges Buch für den Einstieg in PowerShell und Automatisierung. - Elgato Stream Deck MK.2 (bezahlter Link)
Praktisch, wenn du Skripte, Fensteranordnungen oder Arbeitsprofile per Tastendruck starten möchtest. - BONTEC Monitorhalterung für zwei Monitore (bezahlter Link)
Sinnvoll für aufgeräumte Multimonitor-Setups, besonders wenn ein Monitor hochkant genutzt wird.
FAQ: Windows-Autostart nur an Wochentagen
Kann Windows Programme nur an bestimmten Wochentagen automatisch starten?
Ja. Am einfachsten funktioniert das über den Windows-Aufgabenplaner in Kombination mit PowerShell. Der Aufgabenplaner startet das Skript, und PowerShell prüft dann, ob heute Montag bis Freitag ist.
Warum nicht einfach den normalen Autostart-Ordner verwenden?
Der normale Autostart-Ordner startet Programme bei jeder Anmeldung. Er unterscheidet nicht nach Wochentag, Uhrzeit oder Arbeitsprofil. Für einfache Starts reicht das, für gezielte Automatisierung ist der Aufgabenplaner besser geeignet.
Kann ich mit PowerShell auch Fenster automatisch verschieben?
Ja. Über die Windows-API-Funktion MoveWindow kann PowerShell Fenster an eine bestimmte Position verschieben und auf eine bestimmte Größe setzen. Dafür muss das Programm allerdings ein sichtbares Fenster mit gültigem Fensterhandle haben.
Funktioniert das auch mit mehreren Monitoren?
Ja. PowerShell kann über System.Windows.Forms.Screen alle angeschlossenen Monitore auslesen. Danach kannst du ein Fenster gezielt auf Monitor 1, 2 oder 3 platzieren.
Kann ich auch Windows-Store-Apps automatisch starten?
Ja, aber oft nicht über einen klassischen Dateipfad. Viele Store-Apps werden über Protokolle gestartet, zum Beispiel msteams: oder spotify:. Welcher Protokollaufruf funktioniert, hängt von der jeweiligen App ab.
Was mache ich, wenn das Fenster nicht gefunden wird?
Dann solltest du zuerst den Fenstertitel prüfen. Viele Programme haben andere oder wechselnde Titel als erwartet. Außerdem kann es helfen, die Wartezeit nach dem Programmstart zu erhöhen, damit das Fenster vollständig geladen ist.
Ist -ExecutionPolicy Bypass gefährlich?
Der Parameter ist nicht automatisch gefährlich, sollte aber bewusst eingesetzt werden. Er erlaubt das Ausführen des angegebenen Skripts trotz restriktiver Ausführungsrichtlinie. Deshalb sollte das Skript an einem geschützten Ort liegen und nicht von unbefugten Personen verändert werden können.
GrayTheZebra ist Entwickler und Betreiber von prokrastinerd.de mit Fokus auf Smart Home ohne Cloud, ESP32 und MQTT-basierte Systeme. Alle Projekte basieren auf praktischer Umsetzung und eigener Hardwareentwicklung.
Autorprofil und Hintergrund:
Über GrayTheZebra

