2016-03-26 122 views
2

我在Ubuntu 14.04上運行VirtualBox 5.0.16。我有32位版本的Windows7虛擬機。我想要做的是在客人上運行程序。首先,我嘗試使用Python腳本用於此目的:在VirtualBox中的客戶操作系統上運行程序

vbox = virtualbox.VirtualBox() 
session = virtualbox.Session() 
vm = vbox.find_machine('Windows7') 
vm.launch_vm_process(session, 'gui', '').wait_for_completion() 

session = vm.create_session() 
time.sleep(35) 
gs = session.console.guest.create_session('win7', '') 
process, stdout, stderr = gs.execute('C:\\Windows\\System32\\cmd.exe', ['/C', 'tasklist']) 
print stdout 

機開始很好,但由於一些引發以下錯誤,我不能運行任何程序:

Traceback (most recent call last): File "runonguest.py", line 39, in gs = session.console.guest.create_session('win7', '') File "/usr/local/lib/python2.7/dist-packages/virtualbox/library_ext/guest.py", line 24, in create_session raise SystemError("GuestSession failed to start") SystemError: GuestSession failed to start

我嘗試使用命令行後爲了在客人上運行程序。所以,我正在運行的虛擬機,並試圖執行以下命令:

VBoxManage guestcontrol "Windows7" --username win7 run --exe C:\Windows\System32\cmd.exe --wait-stdout -- "C:\Windows\System32\cmd.exe" "/C" "tasklist" 

但它給我帶來了一個錯誤:

VBoxManage: error: VERR_ACCOUNT_RESTRICTED VBoxManage: error: Details: code VBOX_E_IPRT_ERROR (0x80bb0005), component GuestSessionWrap, interface IGuestSession, callee nsISupports VBoxManage: error: Context: "WaitForArray(ComSafeArrayAsInParam(aSessionWaitFlags), 30 * 1000, &enmWaitResult)" at line 938 of file VBoxManageGuestCtrl.cpp

我正在尋找可能的解決方案,但大多爲舊版本的VirtualBox其中命令運行根本不存在。 如果有人知道任何可能的解決方案,這將是很好的。 謝謝。

回答

4

訪問[開始菜單]和[搜索程序和文件]類型運行。 Inside [Run line]類型gpedit.msc。 在那裏,進入Windows設置 - >安全設置 - >本地策略 - >安全選項 - > [帳戶:限制本地帳戶使用空白密碼到控制檯登錄只有]並將其設置爲已禁用。虛擬機重啓後,應該解決。

+0

謝謝。我甚至沒有想到這個方向。現在它工作得很好。 – aGGeRReS

+0

我沒有在此刻我有這個問題:) – EugenG

0

到目前爲止,我設法在VirtualBox中的客戶操作系統上啓動程序。 這個解決方案基於VBox API在用戶帳戶沒有密碼的情況下不會啓動會話(基於我看到的無證)事實。所以我在客人的Windows7上創建了帶密碼的新用戶帳戶。

對於Python這樣寫:

In [15]: gs = session.console.guest.create_session('user', 'user') 

    In [16]: process, stdout, stderr = gs.execute('C:\\Windows\\System32\\cmd.exe', ['/C', 'tasklist']) 

    In [17]: print stdout 

    Image Name      PID Session Name  Session# Mem Usage 
    ========================= ======== ================ =========== ============ 
    System Idle Process    0 Services     0   12 K 
    System       4 Services     0  528 K 
    smss.exe      264 Services     0  688 K 
    csrss.exe      340 Services     0  2,824 K 
    wininit.exe     388 Services     0  3,128 K 
    csrss.exe      400       1  3,572 K 
    winlogon.exe     440       1  5,556 K 
..... 

對於控制檯使用只寫:

VBoxManage guestcontrol "Windows7" --verbose --username user --password user run --exe "C:\\ 
Windows\\System32\\cmd.exe" -- cmd.exe /c tasklist 

Image Name      PID Session Name  Session# Mem Usage 
========================= ======== ================ =========== ============ 
System Idle Process    0 Services     0   12 K 
System       4 Services     0  532 K 
smss.exe      264 Services     0  688 K 
csrss.exe      340 Services     0  2,848 K 
wininit.exe     388 Services     0  3,128 K 
csrss.exe      400       1  3,572 K 
winlogon.exe     440       1  5,556 K 
...... 

啓動細節:

蟒蛇2.7.6
pyvbox 1.0.0
主機OS - Ubuntu 14.04
Guest OS - Windows7 x32

的VirtualBox 5.0.16

UPD:根據iugene的答案真正的解決辦法是在Windows中的安全策略。

Access [Start menu] and in [search program and files] type Run. Inside [Run line] type gpedit.msc. There, go to Windows Settings -> Security Settings -> Local Policies -> Security Options -> [Accounts: Limit local account use of blank passwords to console logon only] and set it to Disabled. After a VM restart, should be solved.

相關問題