2013-02-07 127 views
1

我可以從我的本地機器在不同領域做這樣的事情運行遠程PowerShell命令在服務器上運行遠程Comman原因 - c:\users\username\documentsPowerShell中不同的路徑

我的實際情況有點不同。我有一個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'. 

只需要對此有所幫助。謝謝。

編輯

enter image description here

編輯的評論2

是感謝(現在已經消失) - 把一個分號道路工程後。謝謝您的幫助。

回答

3

如果您需要在scriptblock中運行多個命令,則需要使用換行符或分號;來分隔它們。嘗試:

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 
+0

謝謝哥們。第一個工作,但第二個提供以下錯誤 - 術語'C:\ Data \ Shared \ Installation \ Test.ps1'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。 – VVV

+1

奇怪:你確定路徑正確嗎?如果用'{運行它,它會有幫助嗎? c:\ data \ ...}或'{&「c:\ data \ ...」}'? –