Выполнение следующего кода приводит к ошибке, поскольку переменная, используемая для пути, разрешается как нулевое событие, хотя она определена в скрипте:
$ServerName = "test01"
$RemotePath = "C:\Test\"
$TestScriptBlock = { copy-item -Path $RemotePath -Destination C:\backup\ -Force -Recurse }
$CurrentSession = New-PSSession -ComputerName $ServerName
Invoke-Command -Session $CurrentSession -ScriptBlock $TestScriptBlock
Как мне вызвать $RemotePath, определенный в родительском скрипте, из ScriptBlock? Мне нужно использовать $RemotePath в других частях родительского скрипта. Обратите внимание, что это значение не меняется, поэтому оно может быть константой.
ОБНОВЛЕНИЕ — РАБОЧЕЕ РЕШЕНИЕ
Вы должны передать переменную в качестве параметра блоку сценария:
$ServerName = "test01"
$RemotePath = "C:\Test\"
$TestScriptBlock = { param($RemotePath) copy-item -Path $RemotePath -Destination C:\backup\ -Force -Recurse }
$CurrentSession = New-PSSession -ComputerName $ServerName
Invoke-Command -Session $CurrentSession -ScriptBlock $TestScriptBlock -ArgumentList $RemotePath
$using:RemotePath
работает? - person Dan Stevens   schedule 13.05.2016