2012-05-04 144 views
17

我正試圖在遠程計算機上執行腳本。如何執行遠程機器中可用的powershell腳本?

我在遠程機器上做了「Enable-PSremoting」。

我在遠程機器上放置了一個腳本hello.ps1

[我的客戶機是Windows XP和遠程電腦在Windows 2003]

然後從我的客戶端計算機上我試圖執行腳本。

invoke-command -computer $MachineName -filepath "C:\hello.ps1" 

我得到了以下錯誤。

調用命令:找不到路徑'C:\ hello.ps1',因爲它不存在 。

我認爲它試圖從客戶端機器上查找腳本。

如果我嘗試運行

invoke-command -computer $MachineName -command { C:\hello.ps1 },它執行客戶端在遠程計算機中可用的腳本。

但我想在遠程機器本身執行遠程腳本。

如何讓它運行遠程機器上可用的腳本?

更新時間:

其實這個命令「invoke-command -computer $MachineName -command { C:\hello.ps1 }」在遠程端的工作並返回結果給客戶端。我誤解了它在客戶端執行的返回值。

+0

我愛你。在你的帖子發佈5年後,經過幾天和幾天的谷歌搜索和溢出,並嘗試Invoke-yadayada的每一個配置,幾乎準備放棄,我看到你的「更新:」部分上面,並嘗試這一點。它給了我同樣的錯誤,但我在你的代碼中的一個變量上掛了一個遠程會話,最後得到了一些工作:::::::::: $ s = New-PSSession -ComputerName「WTxxxxxL32」-Credential $ credential :: ::: Invoke-Command -Session $ s -Command {D:\ ServerDLLDev \ RemoteCOMInstall.ps1} – JustJohn

回答

1

請參閱這裏的quick start on PowerShell remoting

+0

它對遠程處理有基本的解釋。我已經嘗試了這些基本的東西。但在遠程端執行腳本存在挑戰 – Samselvaprabu

+0

@Samselvaprabu你是如何通過本地腳本執行遠程機器上託管的文件/腳本的? – Abdul

9

當你寫:

invoke-command -computer $MachineName -filepath "C:\hello.ps1" 

腳本C:\hello.ps1將從客戶端計算機之後又到服務器上執行。所以你有錯誤文件不存在,因爲Invoke-Command正在客戶端計算機中查找該文件。

+0

給遠程腳本提供參數如何? –

+2

看看'-ArgumentList'。 – JPBlanc

+0

@JPBlanc我很難找到如何使用'-ArgumentList'選項來執行指定的遠程機器上的遠程文件 – Abdul

0

我有完全相同的探針,並用[WMICLASS] 's create()Start-Process的組合解決。我的回答here

0

我得到了同樣的錯誤,但我在你的代碼中的變量掛鉤的遠程會話終於有一些作品:

$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential 

Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1} 

有100萬調用,等solutons但最簡單終於爲我工作。謝謝你。

+0

這意味着您正在本地計算機上運行VM上的powershell命令? – ChanGan

+0

沒有涉及虛擬機。客戶端電腦和服務器。 New-PSSession創建會話以在遠程服務器上運行代碼。會話的Invoke-Command然後運行駐留在服務器上的腳本。在我有客戶端上的代碼之前,但這造成了一個錯誤。 – JustJohn

+0

我的服務器機器位於其他域。這個解決方案將工作? – ChanGan

相關問題