A lightweight PowerShell-based web dashboard designed to bridge the gap between Windows Session 0 (Services) and your interactive desktop.
Windows isolates services in Session 0 for security reasons. When VirtualBox runs as a service (e.g., via Local Service), its management process (VBoxSVC.exe) is invisible to your user desktop (Session 1). The result: Your VirtualBox GUI shows VMs as "Powered Off", even though they are running. Managing snapshots or checking the status becomes a nightmare of command-line tools and permission errors.
The VirtualBox-Session0-Manager runs as a tiny web server within the same context as your service. It talks directly to the "hidden" VirtualBox instance and provides a clean, web-based dashboard to:
- Monitor real-time status of all VMs.
- Create Live-Snapshots (including RAM state).
- Delete/Merge snapshots safely.
- Stay Secure: Run everything under the restricted Local Service account.
Windows prevents service accounts from hosting web servers by default. Open CMD as Administrator and run:
:: For English Windows:
netsh http add urlacl url=http://+:8080/ user="NT AUTHORITY\LOCAL SERVICE":: For German Windows:
netsh http add urlacl url=http://+:8080/ user="NT-AUTORITÄT\LOKALER DIENST"To keep the dashboard always available, set it up as a background task:
- Create a new Task in Task Scheduler.
- User: Set to LOCAL SERVICE.
- Trigger: At system startup.
- Action: Start a program
- Program: powershell.exe
- Arguments:
-WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Path\To\vbox-session0-manager.ps1"
- Arguments:
- Privileges: Enable "Run with highest privileges".
schtasks /create /tn "VirtualBox-Session0-Manager" /tr "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -File 'C:\vbox-session0-manager.ps1'" /sc onstart /ru "NT AUTHORITY\LOCAL SERVICE" /rl highest /fFor debugging or temporary use, you can start the manager manually:
psexec -s -u "NT AUTHORITY\LOCAL SERVICE" powershell -ExecutionPolicy Bypass -File "C:\vbox-session0-manager.ps1"New-Service -Name "VBoxWebDashboard" `
-BinaryPathName 'powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Scripts\vbox-session0-manager.ps1"' `
-DisplayName "VirtualBox Web Dashboard" `
-StartupType Automatic `
-Credential "NT AUTHORITY\Local Service"nssm install VBoxWebDashboard "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-ExecutionPolicy Bypass -File \"C:\Path\To\vbox-session0-manager.ps1\""
nssm set VBoxWebDashboard ObjectName "NT AUTHORITY\Local Service"
nssm start VBoxWebDashboardhttp://127.0.0.1:8080
The script features an Auto-Discovery mode for your VirtualBox configuration. It scans the C:\Users directory for existing .VirtualBox folders. If you have a non-standard setup, simply adjust the variable in the script:
$env:VBOX_USER_HOME = "C:\Custom\Path\.VirtualBox"The dashboard listens on port 8080 by default. If your server is exposed to a network, ensure your Windows Firewall only allows trusted IPs to access this port. This tool does not include built-in authentication yet.