Typing text on a virtual machine keyboard via PowerShell CIM Cmdlets
PublishedRetail Windows media contains a boot loader that requires keyboard input before setup begins. In automation scenarios, you can use CIM Cmdlets to type keys over WinRM. (This is preferred over deprecated WMI Cmdlet use.)
// ...
$CimSession = New-CimSession `
-ComputerName $VmHost `
-Credential $VmHostCredentials
$CimInstance = Get-CimInstance `
-CimSession $CimSession `
-Namespace "root\virtualization\v2" `
-ClassName Msvm_ComputerSystem `
-Filter "ElementName = '$VmName'"
$Keyboard = Get-CimAssociatedInstance $CimInstance `
-CimSession $CimSession `
-ResultClassName Msvm_Keyboard
Invoke-CimMethod $Keyboard `
-CimSession $CimSession `
-MethodName TypeText `
-Arguments @{ asciiText = " "}