Chrome does not automatically enter fullscreen mode when launched via Task Scheduler because the scheduler runs in Session 0, a non-interactive service environment that lacks a visible desktop. To force Chrome into fullscreen, you must launch it as a logged-in user in an interactive session and use command-line arguments like --kiosk or --fullscreen, while ensuring the task is configured to run only when the user is logged on.
Understanding Session 0 Isolation
The root cause of this issue lies in how Windows manages processes. Since Windows Vista, the Task Scheduler service operates in Session 0, which is isolated from the interactive user sessions (Session 1, 2, etc.). Services running in Session 0 cannot interact with the graphical user interface. If you configure a scheduled task to start Google Chrome without specifying a user context, it may attempt to run in a hidden or service-like state where window management behaviors are undefined or suppressed. Furthermore, even if the task appears to start, the Chrome process might not receive the necessary input signals to maximize or go fullscreen. The browser expects a standard desktop environment to render its UI correctly. Without this, it often defaults to a minimal or windowed state, or simply fails to display properly. This architectural separation means that any workaround must bridge the gap between the non-interactive scheduler and the interactive user desktop.Why Previous Advice Failed
Some older guides suggest using Group Policy Objects (GPO) to enforce kiosk modes or relying on batch files that do not properly handle user contexts. These methods are flawed because GPOs applied to the system account do not translate to the interactive user's browser profile settings. Additionally, simple batch files executed by the scheduler inherit the non-interactive nature of the service unless explicitly instructed otherwise. You must ensure the task runs under the specific user account that owns the Chrome installation and profile.Configuring the Scheduled Task Correctly
To resolve the issue, you need to create a scheduled task that explicitly runs in the user's interactive session. This ensures that Chrome has access to the desktop environment required for fullscreen rendering. Follow these steps to configure the task properly:- Open Task Scheduler: Press
Win + R, typetaskschd.msc, and press Enter. - Create a New Task: In the right-hand pane, click "Create Task" (not "Basic Task" to access advanced options).
- General Tab: Name the task clearly. Under "Security options," select "Run whether user is logged on or not" if you need background execution, but note that this may still prevent fullscreen visibility. For visible fullscreen, choose "Run only when user is logged on."
- Actions Tab: Click "New." Set the action to "Start a program." Browse to your Chrome executable, typically located at
C:\Program Files\Google\Chrome\Application\chrome.exe. - Add Arguments: In the "Add arguments" field, include
--kiosk https://example.comor--fullscreen. The--kioskflag forces fullscreen and hides toolbars, which is often what users mean by "fullscreen." Use--disable-infobarsto prevent the "Chrome is being controlled by automated test software" message.
Handling User Credentials
If you selected "Run whether user is logged on or not," you must provide the correct username and password. However, even with valid credentials, the task might not render visually if it tries to attach to a session that isn't actively displaying. It is generally more reliable to set the task to trigger only when the user logs in. You can achieve this by setting the trigger to "At log on" for the specific user account. This guarantees that the Chrome process starts within the active graphical session.Alternative Approaches for Kiosk Mode
If your goal is to have a dedicated screen display information or a web application, consider using Windows' built-in Kiosk mode or specialized shell replacements. These are designed specifically for persistent fullscreen displays and are more robust than a simple scheduled task. For simpler needs, you can also use PowerShell scripts to manage the window state after Chrome launches. However, this introduces latency and potential race conditions. A more stable approach involves using a wrapper script that waits for the Chrome process to initialize before sending a maximize command viaSendKeys or similar automation tools. This method requires careful error handling to ensure the script does not interfere with normal user interaction.
Another viable option is to configure Chrome's shortcut properties directly on the desktop. Right-click the Chrome shortcut, select Properties, and add the --kiosk argument to the Target field. Then, schedule a task to simply open this shortcut. While this is less flexible than passing arguments directly in the task scheduler, it leverages Windows' native shortcut handling, which often resolves path and permission issues.
Debugging Visibility Issues
If Chrome still does not appear fullscreen, check the Event Viewer for errors related to the task. Look for events from the Source "SchTasks" or "Application Error." Ensure that no other group policies are overriding the window state. You can also try launching Chrome manually with the same arguments to verify that they work in your current session. If manual launch works, the issue is definitely tied to the task scheduler's configuration.Frequently Asked Questions
Why does my scheduled Chrome task fail to show?
It likely failed because the task ran in Session 0, which has no graphical interface. You must configure the task to "Run only when user is logged on" to ensure it attaches to the visible desktop session.Can I use --fullscreen instead of --kiosk?
Yes,--fullscreen maximizes the window but keeps the address bar and tabs. --kiosk removes all UI elements except the content area, which is usually preferred for dedicated displays. Choose based on whether you need navigation controls.
Does this work on Windows 11?
Yes, the Session 0 isolation behavior is consistent across Windows 10 and 11. The steps to configure the task remain the same, though the Task Scheduler interface may look slightly different in terms of layout.What if I need multiple tabs open?
You can pass multiple URLs separated by spaces in the arguments field, like--kiosk url1 url2. Chrome will open each URL in a new tab within the single fullscreen window.
Is there a way to auto-start Chrome on login without Task Scheduler?
Yes, you can add Chrome to the Startup folder located atshell:startup. Create a shortcut to Chrome with your desired arguments and place it there. This bypasses Task Scheduler entirely and runs directly in the user session.