Headless Display Emulator | Black Screen Fix
Table of Contents
INTRO
After using some RMM solutions over the years such as Datto RMM, ConnectWise Automate, others may include Dualmon, Teamviewer, or AnyDesk, sometimes I run into an endpoint where when I remotely connect the screen is black. These are always computers with no monitor attached but the issue does not occur for every endpoint without a monitor.
I’ve noticed this usually occurs with certain drivers where a generic monitor driver is not used when no monitor is attached, or configurations where the on-board integrated graphics controller is disabled in the BIOS for the primary use of a dedicated graphics card.
HARDWARE SOLUTION
To solve this issues with a hardware solution one could use a different BIOS configuration that solves the issue, or purchase a monitor emulator device like the one here. This little device makes the Windows OS believe there is a monitor attached and thus the black screen issue when remoting to the device is fixed.
SOFTWARE SOLUTION
There can be cases where the physical location of the endpoint makes the hardware solution not a fast resolution. This led me to research a possible software solution and I did find one. I created a script that will accomplish this fix but it will not stick after a reboot. The only way to get it to stick after a reboot would be to configure the script to run at Windows startup with either Group Policy, Task Scheduler, or the Startup folder.
The software solution also allows you to run the script multiple times to have more than one monitor available when remoting which for some may be very helpful when working remotely. The script pulls down a file and extracts it, then runs the arguments to the program to implement the fix.
POWERSHELL SCRIPT
# Define the URL of the file to download
$URL = "https://www.amyuni.com/downloads/usbmmidd_v2.zip"
# Make directory
$Destination = "C:\TEMP"
New-Item -Path $Destination -ItemType Directory -Force -ErrorAction SilentlyContinue | Out-Null
# Download the file from the URL
$DownloadPath = Join-Path $Destination "usbmmidd_v2.zip"
Invoke-WebRequest -Uri $URL -OutFile $DownloadPath
# Extract file downloaded from URL
$ExtractPath = Join-Path $Destination "usbmmidd_v2"
Expand-Archive -LiteralPath $DownloadPath -DestinationPath $ExtractPath -Force -ErrorAction SilentlyContinue
# Change directory to the extracted folder
Set-Location -Path "C:\TEMP\usbmmidd_v2\usbmmidd_v2"
# Determine processor architecture and execute appropriate commands
$Architecture = $env:PROCESSOR_ARCHITECTURE
if ($Architecture -eq "AMD64") {
Start-Process -FilePath ".\deviceinstaller64.exe" -ArgumentList "install usbmmidd.inf usbmmidd" -Wait
Start-Process -FilePath ".\deviceinstaller64.exe" -ArgumentList "enableidd 1" -Wait
} elseif ($Architecture -eq "x86") {
Start-Process -FilePath ".\deviceinstaller.exe" -ArgumentList "install usbmmidd.inf usbmmidd" -Wait
Start-Process -FilePath ".\deviceinstaller.exe" -ArgumentList "enableidd 1" -Wait
} else {
Write-Host "Unsupported architecture: $Architecture"
}
To uninstall simply change the value of enableidd 1 to enableidd 0 to remove the fake monitor.
CONCLUSION
I hope this helps someone out there that gets irritated when this happens. Another workaround for this issue is to use Remote Desktop to the device. Datto RMM and the ConnectWise Automate thick client have the ability to interface and RDP to the computers if this issue were to occur.
Hey folks, my name is Dex and you’ve landed on my website. Ponder this; was it by coincidence or did God bring you here? Either way, I hope you find something of value. We may not agree on everything, but that’s just part of the fun here!
It’s my hope here that you also become inspired to join the good fight against evil. There are no ads here, just truth bombs. So change your tune because the best is yet to come, and nothing can stop what’s coming!
John 3:16: For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
Leave a Reply
Want to join the discussion?Feel free to contribute!