So speichern Sie den Status einer VirtualBox-Gastbetriebssystem-VM auf einem Windows-Host-Logout
Ich verwende ein Ubuntu VM-Gastbetriebssystem im Headless-Modus auf einem Windows 7-Host. Ich habe ein Batch-Skript geschrieben, das VBoxManage verwendet, um den Status der VM basierend auf dem übergebenen Argument zu starten oder zu speichern. Ich kann die VM einfach starten, indem Sie eine Verknüpfung zum Skript in meinem Startordner ablegen, aber ich habe Probleme, die VM beim Abmelden vorübergehend anzuhalten.
Ich habe verschiedene Methoden ausprobiert:
- Beim Erstellen eines Eintrags für Benutzerabmeldescripts im Editor für lokale Gruppenrichtlinien (gpedit.msc) wird mein Skript ausgeführt, der VBoxManage-Prozess meldet jedoch, dass die VM nicht ausgeführt wird. Ich gehe davon aus, dass der Logout-Prozess die VM abtötet, bevor mein Skript darauf zugreifen kann.
- Beim Erstellen einer Aufgabe über den Taskplaner, die beim Ereignis 7002 ausgelöst wird (was als Abmeldeereignis bezeichnet wird), wird das Skript ausgeführt. VBoxManage meldet jedoch Folgendes:
VBoxManage.exe: Fehler: Fehler beim Erstellen des VirtualBox-Objekts!
VBoxManage.exe: Fehler: Code E_ACCESSDENIED (0x80070005) - Fehler allgemeiner Zugriff verweigert (erweiterte Informationen nicht verfügbar)
VBoxManage.exe: Fehler: Der VirtualBox COM-Server wird wahrscheinlich nicht ausgeführt oder konnte nicht gestartet werden.
Gibt es eine bessere Möglichkeit, den Status einer VM beim Abmelden von Windows automatisch auszusetzen?
Der Inhalt des Batch-Skripts:
@echo off setlocal rem list of VMs to start/stop set vm_list=Ubuntu set action=%1 if not "%action%" == "start" if not "%action%" == "stop" exit /B set command="C:\Program Files\Oracle\VirtualBox\VboxManage.exe" set logfile="C:\bin\vm_log.txt" if exist %logfile% echo.>> %logfile% echo %date% %time%>> %logfile% for %%A in (%vm_list%) do ( if "%action%" == "start" ( echo Starting %%A>> %logfile% 2>&1 %command% startvm %%A --type headless >> %logfile% 2>&1 ) else if "%action%" == "stop" ( echo Suspending %%A>> %logfile% 2>&1 %command% controlvm %%A savestate >> %logfile% 2>&1 ) ) endlocal
Ich habe die Ausgabe der Befehle umgeleitet, unter vm_log.txt
denen ich die Meldungen sehen kann, die gemeldet wurden.
0 Antworten auf die Frage
Verwandte Probleme
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
4
Wie sperre ich rechtsbündige Symbolleisten in Windows 7, ohne dass sie schrecklich aussehen
-
6
Virtualbox, VMware, KVM oder andere für Ubuntu-Virtualisierung?
-
4
Windows 7 "Aero Snap" -Funktion für Ubuntu GNOME
-
3
Meine zweite Festplatte ist in Windows 7 nicht sichtbar
-
7
Wie ersetze ich Notepad in Windows 7?
-
2
Wie werden Windows 7-Taskleistensymbole in zwei Reihen angeordnet?
-
1
Probleme beim Standby unter Windows 7
-
6
Wie steuern Sie die Windows 7-Snap-Funktion mit zwei Monitoren?