2016-10-11 59 views
0

我有一個PowerShell腳本執行powerhsell腳本,該運行的用戶在登錄上一臺虛擬機(00000281): 獲取內容C:/sample.txt -totalcount 1)| Set-Content C:\ sample.txt對含多處VM

要自動執行腳本,我已經創建了一個.cmd文件並將它放在以下文件夾中: C:\ Users \ vs_domadmin \ AppData \ Roaming \ Microsoft \ Windows \ Start菜單\程序\啓動

上述VM(00000281)駐留在我的紅外線包含其他四個虛擬機(下文服務器)虛擬機集羣。我總共有四臺服務器,我希望該腳本也可以運行。 00000281,00000282,00000283,00000284

我的腳本runniing只在00000281.這裏的那一刻是招: 我需要從00000281該腳本還執行對紅外線的服務器00000282,00000283的其餘部分, 00000284,知道該腳本就會被我的第一個紅外線服務器000002821.上只存儲我相信,給劇本一定的條件,並概述其他3vms的VM的路徑(00000281)應該做的工作是否正確?由於我對PowerShell非常陌生,有人可以幫忙嗎?

回答

1

VM 00000282,00000283,00000284被認爲是遠程計算機WRT在VM當前用戶00000281.

你必須使用同一臺機器的PowerShell的遠程過程通過配置運行機器本身的腳本4臺機器運行遠程PowerShell腳本。

這通過使每一臺機器進行運行PowerShell的遠程服務WinRM的

一步一步的細節:

How to Run PowerShell Commands on Remote Computers

修改VM 00000281劇本,將其添加爲最後一行:

Invoke-Command -ComputerName 00000282, 00000283, 00000284 -FilePath path_to_script_file.ps1 

以這種方式,您可以同時運行相同的腳本在所有機器中。

登錄用戶應該在這些機器上的權限。

+0

這個答案只是正常工作,如果你都安裝在服務器上的WinRM。以前的解決方案也可以工作,而無需安裝WinRm。不過,我更喜歡調用命令解決方案,因爲它很清楚,代碼較短且有效。謝謝 – Manu2287

0

識別解決方案:

$文件= 「C:\ sample.txt的」 獲取內容$文件-totalcount 1 | Set-Content $ File 「00000282」,「00000283」,「00000284」| %{$ = FileUnc 「\ $($ _)\ $($ File.Replace( ':', '$'))」 獲取內容$ FileUnc -totalcount 1 |設置內容$ FileUnc }