Public/Invoke-VirtualMachine.ps1
|
<#
.SYNOPSIS Invokes a script block on a remote PowerShell session on the user preferred virtual machine. .DESCRIPTION This function uses the Invoke-Command cmdlet to run a script block on the virtual machine specified by the user. The user must have previously registered the virtual machine aliases using the Register-VirtualMachineAliases function. .EXAMPLE # Register the virtual machine aliases for the WDK VM Register-VirtualMachineAliases -Name "Windows 11 WDK Environment" -Credential (Import-Clixml "${env:USERPROFILE}\.cert\wdkcert.xml") # Invoke a script block on the WDK VM Invoke-VirtualMachine -ScriptBlock { Get-Process } #> function Invoke-VirtualMachine { [CmdletBinding()] param( [Parameter(Mandatory = $false, Position = 0)] [scriptblock] $ScriptBlock ) if (-not $script:VirtualMachineManager) { throw "Virtual Machine aliases are not registered. Run Register-VirtualMachineAliases first." } Invoke-Command -Credential $script:VirtualMachineManager.Credential -VMName $script:VirtualMachineManager.VMName @PSBoundParameters } |