This is basically a duplicate of this question, but the accepted answer was "no" and I would like to keep this question open until getting an actual answer instead of accepting "NO" and giving up.
Stephen Rose told me via Twitter DM to use PowerShell to start and stop Virtual PC VM's and do things like run installations, automatic updates and virus scans, but he hasn't yet responded to my request for any links to resources that describe how to do so.
I've started learning PowerShell, but I can't figure out how to get or work with any information on the list of VM's within Virtual PC.
Edit: Windows Virtual PC (Windows 7 XP Mode) is not the same as Virtual PC 2007. I am running Windows 7 as my host OS, but I'm still using Virtual PC 2007 because I need to maintain the ability to run the guest machines on Vista or XP hosts that won't have the new Windows Virtual PC. I installed Windows Virtual PC briefly to check it out and it had to do a bunch of conversions on my virtual images. The suggestion by @x0n ($vpc = new-object -com virtualpc.application
) produces the following error on my system:
New-Object : Cannot load COM type virtualpc.application.
At line:1 char:18
+ $vpc = new-object <<<< -com virtualpc.application
+ CategoryInfo : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : CannotLoadComObjectType,Microsoft.PowerShell.Commands.NewObjectCommand
Edit 2: I used Jeff's code from this answer to list all the COM objects on my system and couldn't find any that looked like they were Virtual PC. So now I'm thinking that the "it's not possible" answer may be correct, but I'm still going to leave this question open in case anyone has any further suggestions for getting PowerShell to work with Virtual PC 2007. In the mean time, I'm strongly considering making the jump to the new Windows Virtual PC in Windows 7 and just not worrying about keeping all my virtual machines compatible with earlier versions of Windows.
To test some of my own software within a VM I use AutoIt (http://www.autoitscript.com/autoit3/) to start the VM, and within the VM I use it again to start and control my application. Communication is done using a shared folder within the VM (writing the AutoIt script to execute, output of the application like a log).
It's not Powershell, but maybe this helps anyway. :)
Regards,
Sebastiaan
Is this what you're looking for? I'm on Windows 7 that has the "virtual windows xp" feature installed (which is effectively vpc 2007).
[E] PS> $vpc = new-object -com virtualpc.application
[E] PS> $vpc
HostInfo : System.__ComObject
VirtualMachines : System.__ComObject
VirtualNetworks : System.__ComObject
UnconnectedNetworkAdapters : System.__ComObject
SupportDrivers : System.__ComObject
Tasks : System.__ComObject
MinimumMemoryPerVM : 4
MaximumMemoryPerVM : 3071
SuggestedMaximumMemoryPerVM : 2763
MaximumFloppyDrivesPerVM : 1
MaximumSerialPortsPerVM : 2
MaximumParallelPortsPerVM : 1
MaximumNetworkAdaptersPerVM : 4
MaximumNumberOfIDEBuses : 2
DefaultVMConfigurationPath : G:\Users\Oisin\AppData\Local\Microsoft\Windows Virtual PC\Virtual Machines\
SearchPaths : {}
USBDeviceCollection : System.__ComObject
Name : Windows Virtual PC
Version : 6.1.7084.0
UpTime : 2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With