Typing a string on a virtual machine
This weekend I did a bunch of virtual machine automation - and wanted to share some code snippets. The first snippet is some code that will simply type a string on a virtual machine:
$VMName = "Windows 10 Enterprise"
$VMCS = Get-WmiObject -Namespace root\virtualization\v2 -Class Msvm_ComputerSystem -Filter "ElementName='$($VMName)'"
$keyboard = $VMCS.GetRelated("Msvm_Keyboard")
$keyboard.TypeText("Hello!") | out-null
This is a chunk of PowerShell code. What it does is get the WMI object for the virtual machine that I am controlling; from there it gets the keyboard object for the virtual machine. Finally it calls "TypeText" and hands in a string.
Nice and simple. However, it should be noted that since this is literally sending keystrokes through the virtual machines keyboard - you will not see these keystrokes if you are using enhanced mode. If you are in basic mode - then you will see everything as expected.
Cheers,
Ben
Comments
- Anonymous
March 15, 2016
Its possible to send ENTER and TAB also?Regards,Andre- Anonymous
March 15, 2016
Yes! I blogged on how to do this here: https://blogs.msdn.microsoft.com/virtual_pc_guy/2016/03/09/typing-special-characters-on-a-virtual-machine/
- Anonymous