ответ Здана содержит критический указатель: параметр -FilePath
предназначен только для использования в контексте remoting , поэтому вы не можете его использоватьесли только вы не укажете параметр -ComputerName
.
Однако использование -ComputerName
только для того, чтобы вы могли нацелиться на локальный компьютер, (а) неэффективно и (б), что более важно, требует работает как администратор (с повышенными правами).
Вам вообще не нужен Invoke-Command
;вместо этого вызовите ваш сценарий с параметром -File
CLI , передав аргументы как обычно, разделенные пробелами:
powershell.exe -File C:\temp\TestParams2.ps1 myserver "\\server1\folder name\file.txt" 9999
Если вам также необходимо обойти эффективную политику исполнения :
Предупреждение : Если эффективная политика выполнения контролируется Групповой политикой , она не может быть переопределена.
powershell.exe -ExecutionPolicy Bypass -File C:\temp\TestParams2.ps1 myserver "\\server1\folder name\file.txt" 9999
Обратите внимание, что-ExecutionPolicy Bypass
должен быть помещен перед параметром -File
(применяется аналогично использованию параметра -Command
) - все, что после -File
считается путем к целевому сценарию плюс любые аргументы для его передачи.