2016-12-15 193 views
0

我這個問題已經有好幾天了。完成並研究與使用winrm在本地機器上執行powershell腳本有關的所有內容。使用winrm執行/調用本地ps1文件

我的目標是從我的本地執行這些ps1腳本到目標遠程機器。 winrm已經配置並且使用它的基本命令,但是我找不到任何使用winrm運行powershell腳本(* .ps1)的東西。

winrm {execute ps1 file} -r:http://<IPaddress>:5985 -auth:basic -u:'username' -p:'password' -encoding:utf-8 

任何幫助和建議大加讚賞。

謝謝你們!

+0

我建議儘量抓住這個倉庫和觀察事物是如何工作的有關Windows Azure中的PowerShell:混帳回購協議鏈接](https://github.com/Azure/azure-sdk-tools-samples) –

+0

@Nelson:它運行在PowerShell中。事情是我無法找到一種方法來執行我的ps1文件本地到遠程機器上使用winrm。老闆告訴我可能使用winrm,而不是ps-session – Jeff

+0

[閱讀本文](https://www.opsgility.com/blog/windows-azure-powershell-reference-guide/introduction-remote-powershell-with -windows-azure /) –

回答

1

首先 - 我相信你正在嘗試使用winrs而不是winrm--後者通常用於配置winrm,前者用於運行遠程命令。

考慮到這種假設:我敢肯定,您必須將腳本傳遞給powershell.exe並處理轉義的命令元素。爲我工作(不是基本身份驗證,但是這無關緊要,我認爲)的例子:

winrs -r:ComputerName powershell -file c:\temp\test.ps1 
winrs -r:ComputerName powershell -file "c:\temp\test with space.ps1" 

爲什麼會有人想這樣做的是不同的東西,我猜。任何你需要去的理由: powershell - > native命令 - > cmd.exe在遠程和 - >遠程調用PowerShell?

做這就像你鬆:

  • 任何合理的輸出(你文)
  • 保持狀態腳本運行
  • 性能(你產生新的PowerShell實例與後每通電話

您獲得:

  • 複雜
+0

謝謝,但我該如何執行本地計算機上的腳本。似乎winrs將在遠程機器 – Jeff

+0

上查找文件,客戶端規格是執行本地存儲的powershell腳本(* .ps1),而不是在目標機器上覆制。 – Jeff

+0

好吧,所以到「你鬆」的列表中添加「僅存在於客戶機上的運行腳本」。 'winrs'無法爲你複製腳本,你必須複製它,或者將整個腳本轉換爲base64,並將其與-encodedCommand一起使用(如果腳本很短 - 否則將由於char限制而失敗cmd) – BartekB