Windows Virtual PC
Opublikowany na:

Windows Virtual PC — nowa jakość wirtualizacji dla stacji roboczych
Wydanie najnowszej wersji systemu klienckiego Windows 7 wprowadziło liczne nowości oraz pokazało nowe podejście do już znanych rozwiązań. Aplikacja Virtual PC, dostarczana dotychczas jako niezależny komponent, została przebudowana do formy aktualizacji systemu, czyli jego opcjonalnego komponentu — Windows Virtual PC (WVPC). Jest to następstwo coraz większej popularyzacji wirtualizacji oraz konieczności poszukiwania nowych rozwiązań zwiększających kompatybilność.
Windows Virtual PC dołącza jako kolejny produkt do grupy rozwiązań wirtualizacji stacji roboczych, wyróżniając się od swoich poprzedników lepszą integracją z systemem zarówno samej aplikacji, jak i systemów wirtualnych.
Nowości i zmiany
Wymogi
Wymogi sprzętowe:
- Sprzętowe wsparcie wirtualizacji: Technologie Intel-VT lub AMD-V
- Minimalne wymogi sprzętowe:
- Procesor 32-bitowy lub 64-bitowy
- Taktowanie procesora 1GHz
- Pamięć RAM 1,25GB (zalecane 2GB)
- Dysk: w zależności od liczby wirtualnych maszyn i wielkości ich dysków
- System operacyjny: Windows 7 (wszystkie edycje)
Uwagi:
1. Tryb Windows XP Mode dostępny będzie jedynie dla wersji Professional, Enterprise, Ultimate.
2. Wirtualne aplikacje dostępne są jedynie wtedy, gdy maszyna wirtualna pracuje pod kontrolą systemów: Windows XP SP3, Windows Vista (Enterprise/Ultimate), Windows 7 (Enterprise/Ultimate).
3. Aby skorzystać z własnych maszyn wirtualnych mających udostępniać wirtualne aplikacje, trzeba dodatkowo zainstalować dodatek RAIL QFE — do pobrania na stronach Microsoft.
Interfejs
Pierwsze widoczne zmiany w stosunku do starszego rozwiązania to zmieniony interfejs oraz obsługa wirtualnego pulpitu systemu gościa.
Integracja z Windows Explorer
Windows Virtual PC został zintegrowany z systemem, a jego obsługa odbywa się za pośrednictwem Windows Explorer. Uruchomienie maszyny odbywa się poprzez wybór pliku konfiguracji oraz wybranie opcji Open z menu okna lub kontekstowego — akcję tę można też zrealizować poprzez dwuklik. Wybór ustawień maszyny wirtualnej — dostępna w analogiczny sposób opcja Settings. Tworzenie maszyny wirtualnej wymaga przejścia do folderu Virtual Machines w profilu użytkownika — dopiero wtedy menu okna pokaże opcję Create Virtual Machine.

Rys. 1. Integracja WVPC z Windows Explorer
Wirtualna maszyna
Praca w ramach wirtualnego pulpitu systemu gościa nie uległa zmianie w widoczny sposób, główne modyfikacje dotyczą dostępności opcji i ich rozkładu, pozostałe zasady pracy pozostały bez znaczących zmian.
Opcje dostępne z poziomu okna maszyny wirtualnej — dostępność poszczególnych akcji zależna jest od aktualnego stanu, w jakim znajduje się maszyna:
Action:
- View Full Screen — przełączanie podglądu do pełnego ekranu;
- Sleep/Wake Up — wstrzymanie maszyny (pauza);
- Restart — przesłanie żądania ponownego rozruchu;
- Close — zamknięcie okna maszyny wirtualnej, równoważne jej wyłączeniu — możliwe do wyboru tryby:
- Hibernate (wyłączenie maszyny z zachowaniem jej aktualnego stanu),
- Shutdown (wysłanie żądania „wyłącz” do systemu gościa),
- Turn Off (natychmiastowe wyłączenie maszyny).
USB:
- <nazwa urządzenia> Attach — przekazanie urządzenia do maszyny wirtualnej — stanie się ono niedostępne z poziomu hosta;
- „nazwa urządzenia” Shared (wymaga włączonych komponentów integracyjnych) — współdzielenie urządzenia pomiędzy hostem i gościem.
Tools:
- Enable/Disable Integration Features (wymaga wcześniejszej instalacji komponentów integracyjnych) — włączenie/wyłączenie funkcji integracyjnych, np. współdzielenie dysków, przekierowanie drukarek (w zależności od ustawień maszyny wirtualnej);
- Settings — dostęp do ustawień maszyny wirtualnej;
- Install Integration Components (widoczne, gdy nie zostały wcześniej zainstalowane) — podłączenie do maszyny wirtualnej obrazu .iso z instalatorem komponentów integracyjnych.
Ctr+Alt+Del — przekazanie do maszyny kombinacji klawiszy.

Rys. 2. Wirtualny pulpit
Nowe funkcje
Jedną z nowych funkcji dostarczonych z WVPC jest możliwość obsługi urządzeń USB w maszynie wirtualnej. Funkcjonalność ta pozwala na przekazanie urządzenia pod kontrolę systemu gościa lub współdzielenie go pomiędzy systemami gościa i hosta.
Wirtualizacja USB
Maszyna wirtualna może pracować z urządzeniami w dwóch trybach:
Attach — tryb przekazania pełnej kontroli nad urządzeniem do systemu gościa i blokady jego dostępności z poziomu hosta. Przekazywana tak będzie większość urządzeń, np. karty sieciowe, urządzenia skanujące/drukujące. Jest to jednocześnie domyślny tryb działania — nie wymaga instalacji komponentów integracyjnych.
Shared — tryb współdzielenia danego urządzenia dotyczy przede wszystkim wszelkiego rodzaju pamięci dyskowych, np. pendrive, dyski usb. Do działania wymaga instalacji komponentów integracyjnych na systemie gościa oraz poprawnej obsługi przez oba systemy (host, gość).

Rys. 3. Przekazywanie USB
Funkcjonalności zaawansowane wymagają od systemu gościa odpowiedniego przygotowania, jakim jest instalacja komponentów integracyjnych. Podobnie jak w przypadku swojego poprzednika, WVPC w ten sposób dystrybuuje swoje „sterowniki”, a oprócz tego dodaje współpracę z usługami terminalowymi, dzięki którym uzyskuje się między innymi możliwość pracy z wirtualnymi aplikacjami czy przekierowaniem drukarek (funkcje dobrze znane z Windows Server 2008 Terminal Services).
Komponenty integracyjne
Wyboru funkcji, jakie mają być dostępne z daną maszyną wirtualną (domyślnie wszystkie), dokonuje się w jej ustawieniach, wybierając sekcję Integration Features. Domyślnie po określeniu konfiguracji komponenty integracyjne będą włączane podczas startu systemu operacyjnego, warto zwrócić uwagę, iż można nimi sterować manualnie — włączając lub wyłączając je podczas pracy maszyny, będzie to dotyczyć wszystkich ustawionych dla maszyny komponentów. Modyfikacja dostępnych komponentów integracyjnych w ustawieniach maszyny jest dostępna podczas jej pracy, jednak do zatwierdzenia wymaga wyłączenia i ponownego (zimnego) startu maszyny wirtualnej.

Rys. 4. Ustawienia komponentów integracyjnych
Wykorzystanie usług terminalowych w Windows Virtual PC zaowocowało udostępnieniem funkcji Auto Publish generującej skróty w systemie hosta do zdalnych (wirtualnych) aplikacji pracujących w systemie wirtualnym. Najczęściej funkcjonalność ta pojawia się w kontekście Windows XP Mode, o którym można przeczytać w moim wcześniejszym artykule „Windows XP Mode sposobem na kompatybilność w Windows 7″. Funkcja ta jednak często przypisywana jest jedynie Windows XP, co jest mylnym podejściem, gdyż można wykorzystać ją także w przypadku systemów Windows Vista i Windows 7 (zgodnie z restrykcjami opisanymi na początku artykułu w sekcji — wymogi). Różnica między Windows XP Mode a teoretycznym „Windows Vista Mode” polega na warunkach licencjonowania — w pierwszym przypadku nie będzie wymagana dodatkowa licencja na wirtualny system pod warunkiem zakupienia odpowiedniej edycji oraz pobrania systemu z Windows Update (docelowo w wersji finalnej).
Wirtualne Aplikacje
W przypadku Windows XP Mode Wirtualne Aplikacje są sposobem na rozwiązanie problemu braku kompatybilności niektórych aplikacji z najnowszym systemem. Jednak patrząc na to zagadnienie szerzej, można określić je jako metodę dostarczania gotowego zestawu aplikacji do systemu klienckiego — wystarczy dodać wcześniej przygotowany obraz systemu z kompletem oprogramowania i w ten sposób szybko przygotować ją do pracy. Dystrybucję tak przygotowanych obrazów może ułatwić może takie rozwiązanie, jak MED-V, oczywiście można także zastosować metody zdalnej instalacji aplikacji w takiej maszynie np. SCCM 2007.

Rys. 5. Wirtualna aplikacja (Windows XP Mode)
Jak to działa?
Do używania maszyn wirtualnych pracujących pod kontrolą starszych rozwiązań (VPC 2007, Virtual Server 2005) wykorzystywane były dwa rodzaje plików: konfiguracyjne (.vmc) oraz dysków wirtualnych (.vhd). Obecnie zestaw ustawień został rozszerzony i dołączony został do niego plik konfiguracyjny o rozszerzeniu .vmcx, dodano także pliki .vpcbackup będące kopią zapasową plików .vmc.
Pliki konfiguracyjne
Domyślnie pliki konfiguracyjne (.vmc) i dyski wirtualne zapisywane są w profilu użytkownika \AppData\Local\Microsoft\Windows Virtual PC\, natomiast pliki bieżącej konfiguracji (.vmcx) zapisywane są w folderze \Virtual Machines bezpośrednio w folderze profilu.
Powiązanie plików można przedstawić w następujący sposób:
Nowe pliki .vmcx zawierają tylko podstawowe informacje, uaktualniane podczas pracy maszyny. Odwołują się do plików .vmc w celu pobrania szczegółowej konfiguracji.
Wykaz zawartości pliku .vmcx przykładowej maszyny wirtualnej:
<?xml version=”1.0″ encoding=”UTF-16″?>
<!– Microsoft Virtual Machine Description and Registration Settings –>
<vm_description>
<ram_size type=”string”>512 MB</ram_size>
<vmstate type=”string”>Running</vmstate>
<primary_disk1 type=”string”>C:\(…)\Vista_VM01.vhd</primary_disk1>
<secondary_disk1 type=”string”>E</secondary_disk1>
<notes type=”string” />
<vmc_path type=”string”>C:\(…)\Vista_VM01.vmc</vmc_path>
<guestos type=”string”>Windows&reg; Vista</guestos>
</vm_description>
Pliki .vmc zawierają pełne informacje o konfiguracji wirtualnej maszyny.
Wykaz fragmentu zawartości pliku .vmc przykładowej maszyny wirtualnej:
<?xml version=”1.0″ encoding=”UTF-16″?>
<!– Microsoft Virtual Machine Options and Settings –>
<preferences>
<version type=”string”>2.0</version>
<hardware>
<bios>
<base_board>
<serial_number type=”string”>9371-2117-3433-5822-8096-7904-83</serial_number>
</base_board>
<bios_guid type=”string”>{774649FD-94FC-4812-A2DC-E39C66E20976}</bios_guid>
<bios_serial_number type=”string”>9371-2117-3433-5822-8096-7904-83
</bios_serial_number>
<chassis>
<asset_tag type=”string”>9371-2117-3433-5822-8096-7904-83</asset_tag>
<serial_number type=”string”>9371-2117-3433-5822-8096-7904-83</serial_number>
</chassis>
Dodatkowo folder Windows Virtual PC zawiera:
- Virtual Applications — folder ze zbiorem ikon aplikacji wirtualnych;
- VMCXBackup — folder z kopiami zapasowymi plików .vmcx;
- Options.xml — plik z ustawieniami Windows Virtual PC;
- Options.xml.vpcbackup — kopia zapasowa w/w pliku.

Rys. 6. Pliki konfiguracyjne
By skorzystać z zaawansowanych funkcji Windows Virtual PC, konieczne jest zainstalowanie Integration Components oraz wybór, które z nich mają być dostępne w ramach maszyny wirtualnej. Spośród funkcjonalności jakie udostępniają bardzo przydatne mogą okazać się przekierowania drukarek oraz przekazywanie dysków hosta.
Komponenty integracyjne
W celu udostępnienia systemowi wirtualnemu — a poprzez to aplikacjom wirtualnym — możliwości drukowania konieczne jest oddanie mu do dyspozycji drukarek. Oczywiście, możliwa jest bezpośrednia instalacja drukarki w takim systemie, jednak jest to niewygodne i pracochłonne. Aby ułatwić to zadanie, została zastosowana kolejna funkcja znana z usług terminalowych, czyli przekierowanie drukarek z fizycznego hosta. Drukarka zainstalowana na hoście fizycznym jest automatycznie widziana w systemie wirtualnym.

Rys. 7. Przekierowanie drukarek
Podobny problem dotyczy przekazania dysków hosta, co można zrealizować, udostępniając poprzez sieć te zasoby lub wykorzystując funkcję dostarczoną przez komponenty integracyjne. Możliwe jest mapowanie lokalnych zasobów dyskowych hosta w maszynie wirtualnej jako zasobów sieciowych bez dodatkowego ich udostępniania. W przypadku wirtualnych aplikacji zostają zmapowane także dobrze znane foldery z profilu użytkownika, takie jak Moje Dokumenty — w momencie, gdy zapiszemy do nich plik w wirtualnej aplikacji, trafi on na dysk hosta, a nie do maszyny wirtualnej — funkcja ta nie działa, gdy pliki dodawane są z poziomu wirtualnego systemu operacyjnego.

Rys. 8. Przekazanie dysków hosta
Jedną z najbardziej wyczekiwanych funkcji jest przekazywanie urządzeń USB, zrealizowane w Windows Virtual PC dzięki wirtualizacji portów USB. Pozwala ona na współdzielenie urządzenia lub przekazanie pełnej nad nim kontroli do systemu gościa. Może okazać się to bardzo przydatne w przypadku starszego sprzętu, dla którego nie zostały wydane sterowniki dla Windows 7.
USB Virtualization
Dla każdego urządzenia mającego pracować w trybie wirtualizacji USB musi zostać doinstalowany sterownik USB Virtualization Stub Driver. Jego instalacja następuje automatycznie przy pierwszym uruchomieniu danego urządzenia w trybie wirtualizacji.

Rys. 9. Instalacja sterownika dla urządzenia USB
Gdy urządzenie zostanie podłączone do maszyny wirtualnej, nie będzie już dostępne z poziomu Device Manager. Warto zauważyć, że do przekazania urządzenia nie jest konieczna jego instalacja na systemie host — zostanie wtedy przekazane jako niezidentyfikowane urządzenie.

Rys. 10. Widok w Menedżer urządzeń
Auto Publish i Wirtualne aplikacje
Zasady działania zdalnych aplikacji zostały już omówione, jednak warto dodatkowo przyjrzeć się mechanizmowi i zasadom przypisywania skrótów zarówno do maszyn wirtualnych, jak i wirtualnych aplikacji. Domyślnie w menu start tworzone są skróty do aplikacji, podzielone w folderach, zawierających w swojej nazwie informacje o publikującej maszynie wirtualnej. W przypadku samych maszyn nie tworzą się w tym miejscu odwołania do nich, a ich uruchomienie wymaga wejścia do folderu Virtual Machines i odnalezienia pliku .vmcx (wyjątkiem jest domyślny skrót do Virtual Windows XP) — wystarczy w tym wypadku własnoręcznie wykonać skrót do pliku .vmcx.

Rys. 11. Automatyczna publikacja wirtualnych aplikacji
Odwołania do wirtualnych aplikacji są bardziej skomplikowane. Przyglądając się celowi przykładowego skrótu wirtualnej aplikacji, można określić następującą ogólną składnię:
%WinDir%\System32\vmsal.exe „Nazwa maszyny wirtualnej” „||identyfikator aplikacji” „Opis”
Co dla przykładowej aplikacji można odnieść jako:
%SystemRoot%\system32\vmsal.exe „Virtual Windows XP” „||7f7a3c64″ „Microsoft Office Excel 2003″
lub wykorzystując składnię automatycznie tworzonych skrótów:
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\VMCPropertyHandler.dll,LaunchVMSal „Virtual Windows XP” „||7f7a3c64″ „Microsoft Office Excel 2003″

Rys. 12. Skrót do aplikacji wirtualnej
Identyfikatory aplikacji są kluczowe, by można było poprawnie odwołać się do aplikacji w systemie wirtualnym. Domyślnie każda aplikacja opublikowana przez system jako aplikacja usług terminalowych (remote app) otrzymuje własny identyfikator, który można odnaleźć w rejestrze:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList\Applications

Rys. 13. Identyfikator wirtualnej aplikacji
Problematyczne w kontekście publikacji mogą okazać się aplikacje niewymagające instalacji, uruchamiane poprzez plik wykonywalny. Aby opublikować taką aplikację, należy ręcznie utworzyć skrót do jej pliku wykonywalnego w ścieżce C:\Documents and Settings\All Users\Start Menu\Programs. Taki mechanizm jest skuteczny także w przypadku komponentów systemu, przykładem może być tutaj Internet Explorer.

Rys. 14. Tworzenie skrótów dla aplikacji wirtualnych
Podsumowanie
Funkcje prezentowane przez Windows Virtual PC były wyczekiwane od długiego czasu, dodatkowo rozszerzone zostały możliwe scenariusze użycia tego rozwiązania wirtualizacji. Developerzy uzyskują możliwość testowania swoich aplikacji na wielu systemach i wersjach aplikacji oraz mogą wykonywać łatwiej swoją pracę w ramach starszych narzędzi programistycznych, jednocześnie pracując na najnowszym systemie. Ogólnie rozumiane środowiska biznesowe mogą wykorzystać wirtualne aplikacje do szybszej i łatwiejszej migracji swoich dotychczasowych rozwiązań. Pozostać może tylko jeden problem: przekonanie się do Windows 7 i przyzwyczajenie do nowego interfejsu i większych możliwości Windows Virtual PC.
dzień dobry,
czy jest możliwe zainstalowanie Windows Virtual PC w systemie Windows 2008 R2 server
sprzęt nie wspiera sprzetowej wirtualizacji, więc odpalenie Hyper-V ni e powiodło się
działa tylko Microsoft Virtual PC 2007 (ale nie ma USB)
czy wersja dysków VHD jest kompatybilna dla systemów z lat 2003, 2007 i 2010, tzn czy ststemy utworzone w poszczególnych wersjach da się używac na wersjach niższych?