Fix the black screen on AnyDesk, Steam Link, Moonlight, RustDesk, Parsec, TeamViewer, VNC or RDP when your Windows PC has no monitor connected (headless). One-click, free, open-source virtual display installer for Windows 10 / 11 — works with NVIDIA (GeForce/RTX), AMD and Intel GPUs. No dummy HDMI plug needed.
English | Español
You remotely connect to your Windows PC and only get a black screen — even though the PC is on and everything works. This happens when no physical monitor is connected (or it is turned off / disconnected):
- AnyDesk: black screen, mouse and keyboard work but no image.
- Steam Link / Steam Remote Play: black screen on the client.
- Moonlight (with Sunshine or GeForce Experience): black screen on a headless PC.
- RustDesk: "No display available" or black screen.
- Parsec / TeamViewer / Chrome Remote Desktop / VNC: black screen or capture errors.
- Microsoft RDP (mstsc): black screen on a machine with no monitor.
- It only works when a monitor or a dummy HDMI plug is attached — and you don't have one.
Why it happens: with no active display output, Windows has nothing to render/compose the desktop on, so screen-capture software (DXGI Desktop Duplication, etc.) receives black or no frames.
The fix: this project installs a small, Microsoft-signed virtual display driver and a background keeper that plugs in a permanent virtual monitor (1920x1080). Windows renders normally, and every remote tool can capture the screen again — even with zero physical monitors.
Requirements: Windows 10 or 11 (64-bit) + administrator rights. Internet only for the download (the driver is included in this repo).
Open PowerShell and paste:
irm https://raw.githubusercontent.com/jonnyck-dev/headless-display-fix/main/install-online.ps1 | iexAccept the UAC prompt and wait ~15 seconds. Done.
- Click the green Code button → Download ZIP, then unzip it anywhere.
- Double-click
install.batand accept the UAC prompt.
- The virtual display driver (usbmmidd, Microsoft WHQL-signed catalog included — copied from the RustDesk distribution, no RustDesk required).
- One virtual monitor at 1920x1080, automatically set as primary while the PC is headless.
- A tiny keeper daemon (hidden, single instance, event-driven) that re-creates the virtual monitor automatically if it ever disappears — survives reboots, GPU driver updates and remote sessions.
Test it: connect with AnyDesk / Steam Link / Moonlight. You should now see the desktop instead of a black screen.
Double-click uninstall.bat. It removes the keeper, the virtual monitor(s), the driver and the scheduled task.
Do I need RustDesk, a dummy HDMI plug, or any paid software? No. The driver is bundled in this repository. No dummy plug, no RustDesk, no payment, no account.
Will it interfere with my real monitor when I connect one? No. The keeper only forces the virtual monitor as primary while the PC is headless (no physical monitor detected). When a real monitor is present, your primary display is left untouched; the virtual monitor simply stays available as an extra display.
Can I have more than one virtual monitor?
Yes — up to 4. Run as administrator, once per extra monitor:
"C:\Program Files\HeadlessDisplayFix\deviceinstaller64.exe" enableidd 1
Does it work with NVIDIA RTX 50-series (5070/5080/5090), 40-series, 30-series, AMD, Intel? Yes. It is GPU-agnostic: it gives Windows a display, which is the missing piece on headless machines.
Is it safe? Antivirus / SmartScreen warnings? All code here is open source and readable. SmartScreen may warn because the ZIP/BAT is downloaded from the internet — choose "More info → Run anyway". The display driver is the same signed driver used by RustDesk.
Will it break gaming or anti-cheat? It is a display driver (like a monitor), not an injector. Games render to the virtual monitor when the PC is headless. The keeper is fully event-driven and does not create windows or processes on a timer, so it will not minimize your fullscreen games.
Does it survive reboots and driver updates? Yes. The keeper runs at logon (scheduled task, hidden, restarts on failure) and re-creates the monitor within seconds whenever it disappears.
Does Windows RDP already do this? Native RDP can create its own virtual display on some systems, but GPU-capture tools (AnyDesk, game streaming) still see black. This fix covers all of them at once.
- Driver: installs
usbmmidd(Indirect Display Driver, IDD) via its owndeviceinstaller64.exe— the same driver RustDesk bundles. - Monitor: plugs in one virtual monitor (
enableidd 1) and callsChangeDisplaySettingsExto make it primary — but only while no physical monitor is detected. - Keeper:
keep_vdisplay_daemon.ps1runs hidden at logon as a single instance. It subscribes to WMI device-deletion events (Win32_PnPEntity) and re-creates the virtual monitor within seconds if it disappears (for example, when software removes it). No polling process is spawned, so fullscreen games are never interrupted. - Auto-start: a hidden scheduled task (
HeadlessDisplayFix) launches the keeper at logon with highest privileges.
Files after install (in C:\Program Files\HeadlessDisplayFix): driver files, keep_vdisplay_daemon.ps1, launch-daemon.vbs, deviceinstaller64.exe, daemon.log.
powershell -ExecutionPolicy Bypass -File "C:\Program Files\HeadlessDisplayFix\status.ps1"Shows: driver present, active virtual monitors, physical monitors, keeper running, task state, desktop resolution, last log lines.
- Still black after install → disconnect and reconnect the client; some tools cache display info. Also make sure you reconnected after the installer finished.
- Fullscreen game minimizes periodically → you are running an old polling version; the current keeper is event-driven. Re-run the installer to update.
- Logs →
C:\Program Files\HeadlessDisplayFix\daemon.log - Driver removal blocked → run
uninstall.batafter a reboot, or use-KeepDriverto leave the driver in place.
- Virtual display driver: usbmmidd v2 © 2014-2021 Amyuni Technologies Inc. (https://www.amyuni.com) — bundled unmodified with its license (see
driver/License.txt), as distributed in the RustDesk project. The origin of this software is not misrepresented; it is used here under its redistribution terms. - Installer, keeper daemon, documentation: MIT License (see
LICENSE). - This is an independent project, not affiliated with Amyuni, AnyDesk, Valve, Moonlight, RustDesk, Parsec or NVIDIA.
anydesk black screen no monitor · anydesk black screen windows 11 · steam link black screen headless · moonlight black screen no display · rustdesk no display available fix · nvidia black screen headless remote desktop · virtual display driver windows 10/11 · dummy hdmi plug alternative software · remote desktop black screen without monitor · headless pc remote access · parsec black screen fix · teamviewer black screen no monitor · RTX 5070 no monitor remote desktop · GPU black screen remote access · windows headless virtual monitor · idd driver virtual display · remote gaming black screen fix