【问题标题】:PowerShell Running Remote Comman on a different pathPowerShell 在不同的路径上运行远程命令
【发布时间】:2013-02-07 21:26:35
【问题描述】:

我可以通过执行以下操作从本地计算机向不同域中的服务器运行远程 powershell 命令:

Invoke-Command -ComputerName serverName -ScriptBlock {Get-Process} -Credential $credential

但是由于某种原因,它在这个默认目录中运行 - c:\users\username\documents

我的实际情况略有不同。我有一个 powershell 脚本 (Test.ps1) 坐在这里:

C:\Data\Shared\Installation

我想远程运行这个脚本。我在 ScriptBlock 中尝试了不同的东西,但它总是出错。看起来像语法问题。例如我试过这个:

Invoke-Command -ComputerName serverName -ScriptBlock {cd "C:\Data\Shared\Installation" ./Test.ps1} -Credential $credential

但这会产生以下错误

A positional parameter cannot be found that accepts argument './Test.ps1'.

只是需要一些帮助。谢谢。

编辑

编辑 2

是的,感谢您的评论(现在已经消失了)- 在路径有效后加一个分号。感谢您的帮助。

【问题讨论】:

    标签: powershell path remoting


    【解决方案1】:

    如果您需要在一个脚本块中运行多个命令,您需要使用换行符或分号; 将它们分开。试试:

    Invoke-Command -ComputerName serverName -ScriptBlock {cd "C:\Data\Shared\Installation"; ./Test.ps1} -Credential $credential
    

    或者试试这个(如果您的脚本使用相对路径,这不是一个好的解决方案):

    Invoke-Command -ComputerName serverName -ScriptBlock {C:\Data\Shared\Installation\Test.ps1} -Credential $credential
    

    【讨论】:

    • 谢谢哥们。第一个有效,但第二个给出以下错误 - 术语“C:\Data\Shared\Installation\Test.ps1”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,如果包含路径,请验证路径是否正确并重试。
    • 奇怪:S 你确定路径正确吗?如果您使用{ . c:\data\... }{ & "c:\data\..." } 运行它有帮助吗?
    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 2018-05-27
    • 2021-12-22
    相关资源
    最近更新 更多