Goście Windows mają pewne ograniczenia, ale aby uruchomić aplikację gościa w trybie płynnym ze skryptu, który można umieścić w programie uruchamiającym, przetestowaliśmy następującą procedurę:
- Uruchom VirtualBox Manager
- Zaloguj się do systemu Windows za pomocą użytkownika i hasła
- Przełącz na tryb płynny Host+L
- W trybie płynnym zapisz stan maszyny
Teraz możemy uzyskać pełną kontrolę wiersza poleceń nad maszyną wirtualną za pomocą następujących poleceń:
Uruchom maszynę wirtualną ze stanu bezproblemowego zapisywania
VBoxManage startvm "<Name_of_VM>"
lub (dla nakładki Qt)
VirtualBox --startvm "<Name_of_VM>"
Uruchom aplikację na maszynie wirtualnej
VBoxManage --nologo guestcontrol "<Name_of_VM>" run --exe "C:\\full\\path\\to\\program.exe" --username windowsuser --password password --wait-stdout
Zakończ VM w stanie zapisu
VBoxManage controlvm "Name_of_VM" savestate
Umieść je w skrypcie, aby cieszyć się płynnymi oknami aplikacji Windows na pulpicie Ubuntu.
W przypadku skonfigurowania logowania systemu Windows bez hasła to nie zadziała. Zobacz w instrukcji Virtual Box ograniczenia i sposób konfiguracji systemu Windows, aby działał.
Ponadto, aby używać kont bez lub z pustym hasłem, zasady grupy gościa muszą zostać zmienione. Aby to zrobić, otwórz edytor zasad grupy w wierszu polecenia, wpisując gpedit.msc , otwórz klucz Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options
i zmień wartość Accounts: Limit local account use of blank passwords to console logon only
na Wyłączone.
W systemach operacyjnych bez Edytora zasad grupy (gpedit.msc), takich jak Domowe wersje systemu Windows, utworzenie DWORD na kluczu rejestru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\limitblankpassworduse
i ustawienie go na zero spowoduje osiągnięcie tego samego efektu, zgodnie z tą odpowiedzią .
To raczej podpowiedź niż odpowiedź, ale jest zbyt duża, by komentować.
Powinieneś spojrzeć na to . Zgodnie z dokumentacją to polecenie uruchom z systemu operacyjnego hosta (zakładając, że host Ubuntu i gość Windows):
Powinien otworzyć regedit w systemie Windows (gość), ale nigdy nie udało mi się go uruchomić.
Możesz także użyć
aby sprawdzić, czy maszyna wirtualna jest uruchomiona, czy nie.
źródło
VBoxManage guestcontrol Windows\ XP exec --image c:\\program\ files\\quicken\\qw.exe --username XXXXX --password XXXXX
gdzie XXXXX to moja nazwa użytkownika i hasło.Usunąłem oryginalny pomysł, kiedy zdałem sobie sprawę, że nie będzie działać, ponieważ Linux nie będzie mógł uzyskać dostępu do partycji Windows na maszynie wirtualnej, jeśli jeszcze nie działa. Może to być bardziej skomplikowany sposób, ale nie wiem, czy naprawdę warto.
Może być możliwe posiadanie wspólnego katalogu współdzielonego, a skrypt w systemie Windows zawsze sprawdza ten katalog, aby sprawdzić, czy jest pusty, czy nie. Jeśli nie, uruchomiłby skrypty w katalogu, który zostałby tam umieszczony przez system Ubuntu przed uruchomieniem maszyny wirtualnej.
Możesz mieć drugi skrypt, który usuwa pierwszy, więc nie będzie uruchamiany następnym razem.
źródło
Chciałem tego samego i ostatecznie rozwiązałem go bez użycia guestcontrol. Na moim hoście MacOS X mam folder (o nazwie Windows), który mój klient vbox z uruchomionym Win7 zamapował na Z :. Korzystam z plików zastępczych do komunikacji między hostem a moimi klientami w następujący sposób:
Na hoście Mac: - utworzyłem jeden skrypt powłoki wraz z ikoną dla każdej aplikacji Windows, którą chciałem uruchomić w Win-kliencie. Po prostu upewniają się, że VirtualBox nie został wcześniej uruchomiony, a następnie tworzy plik „uruchom tę konkretną aplikację” w folderze współdzielonym, który Windows może odczytać po uruchomieniu. Przykładem takiego skryptu jest:
Następnie na kliencie Windows mam odpowiedni skrypt (plik BAT) w folderze Autostart, który wygląda następująco:
W ten sposób, za każdym razem, gdy chcę dodać nową ikonę uruchamiania klienta na komputerze Mac, kopiuję skrypt powłoki, wymyślam nowy plik zastępczy i dodaje pasujące wiersze uruchamiania w skrypcie BAT na kliencie. Działa świetnie i myślę, że jest to zgodne z pomysłem Martys z poprzedniego postu.
źródło
pgrep
zamiastps | grep
. To ostatnie wiąże się z ryzykiem, że się dopasuje.MacMini:~ urban$ ps ax | grep -v grep | grep 'Windows 7' 10874 ?? R 4:38.49 /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/VirtualBoxVM --comment Windows 7 --startvm 24507412-789d-42ed-9c79-b4faf0c2d130 --no-startvm-errormsgbox
ale może masz na to sugestię?