В случае сомнений прочитайте документацию :
-ArgumentList
Предоставляет значения локальных переменных в команде,Переменные в команде заменяются этими значениями до запуска команды на удаленном компьютере.Введите значения в списке через запятую.Значения связаны с переменными в том порядке, в котором они перечислены.Псевдоним ArgumentList - «Args».
Значения в ArgumentList могут быть фактическими значениями, такими как «1024», или они могут быть ссылками на локальные переменные, такие как «$ max».
Чтобы использовать локальные переменные в команде, используйте следующий формат команды:
{param($<name1>[, $<name2>]...) <command-with-local-variables>} -ArgumentList <value> -or- <local-variable>
Ключевое слово "param" перечисляет локальные переменные, которые используются в команде.Параметр ArgumentList предоставляет значения переменных в порядке их перечисления.
Первый элемент из массива -ArgumentList
становится значением первого именованного параметра в блоке сценария, второйЭлемент массива становится значением второго именованного параметра и т. д.
По сути, ваше утверждение должно выглядеть так:
Invoke-Command -ScriptBlock $Block -ArgumentList 'ABC'
Кроме того, синтаксис операции сравнения в вашем блоке сценариевнеправильно.Оператор сравнения на равенство в PowerShell - -eq
, а не ==
.