2016-10-11 21 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 }