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

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

提问人:Laurie Dickinson 提问时间:3/17/2022 最后编辑:Ken WhiteLaurie Dickinson 更新时间:3/17/2022 访问量:541

问:

我正在尝试在另一台服务器上运行一个非常简单的脚本,并收到一个 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\
}

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

PowerShell 调用命令 远程执行

评论


答:

4赞 Mathias R. Jessen 3/17/2022 #1

该参数需要本地文件路径-FilePath

如果路径引用远程计算机上的文件,则需要改用以下参数:-ScriptBlock

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

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

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

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