Unable to pass variable to invoke-sshcommand

Hello People

I’m trying to pass local variable to execute a command in Linux OS, it is not working. Could you help me what did I miss?

$Path = “/na/testy/vol/home_01/home/” + “$AccName”
write-host “Creating home directory for $AccName”
$result = $null
$ScriptBlock = {
param ($Path)
sudo mkdir $Path }
$result = Invoke-SSHcommand -ComputerName $ComputerName -ScriptBlock $ScriptBlock -ArgumentList $Path

You cannot, by design use a local variable in a remote call without ensuing the scope meets that use case.
Take a look at the about_Scopes help information and the way to use the ‘Using’ option.

Specifically the section on ‘Using’, which leads you too ‘Remote Variables’
about Remote Variables - PowerShell | Microsoft Docs

All the above comes down to, this…

Windows PowerShell assumes that the variables used in remote commands are defined in the session in which the command runs.

In the following example, the $ps variable is defined in the temporary session in which the Get-WinEvent command runs.

You can also use local variables in remote commands, but you must indicate that the variable is defined in the local session.
Beginning in Windows PowerShell 3.0, you can use the Using scope modifier to identify a local variable in a remote command.
The syntax of Using is as follows:


Did this resolve your issue friend?