Invoke-Command 找不到脚本,但它在那里

Invoke-Command not finding script, but it's there

我正在尝试 运行 在另一台服务器上运行一个非常简单的脚本,但遇到了 ItemNotFoundException。这是我的脚本:

Invoke-Command  -ComputerName myserver -FilePath C:\laurietest\testthis.ps1  
Invoke-Command -ComputerName myserver  -ScriptBlock {
    Write-Output "Directory before copying:"
    Get-ChildItem C:\laurietest\
    Copy-Item -Path C:\laurietest\output.txt -Destination C:\laurietest\output2.txt
      Write-Output "Directory after copying:"
      Get-ChildItem C:\laurietest\
}

这是我 运行 命令时得到的输出: 它列出了目录的内容和文件 testthis.ps1 肯定在那里,但 Invoke-Command 似乎找不到它。有什么想法吗?

-FilePath参数expects a local file path

如果路径引用远程计算机上的文件,您需要使用 -ScriptBlock 参数:

Invoke-Command -ComputerName myserver -ScriptBlock { C:\laurietest\testthis.ps1 }

或者,如果您需要传递可变路径:

$remoteScriptFilePath = 'C:\laurietest\testthis.ps1'

Invoke-Command -ComputerName myserver -ScriptBlock { & $using:remoteScriptFilePath }