Context: This script/function lives on my local machine. I want to pass variables to the function, then pass them into an invoke-command script block to be run on a remote machine.
This code works, but I don't feel like its good practice, or the best way of doing it, as I have to pass my params around multiple times, and it all just feels a bit clunky.
Do I need to supply $params
4 times here to achieve my outcome?
function Create-NewVM
{
param($param1, $param2, $param3, $param4)
$ScriptBlock =
{
param ($param1, $param2, $param3, $param4)
# do a bunch of stuff on my remote machine
}
$s = New-PSSession hypervhost.fqdn
Invoke-Command -Session $s -ScriptBlock $ScriptBlock -ArgumentList $param1, $param2, $param3, $param4
}
Create-NewVM -ComputerName "vm01" $param1 $param2 $param3 $param4