在multipl vm

时间:2016-10-11 11:49:34

标签: powershell vmware vmware-server window-server

我有一个powershell脚本,用户登录一个VM(00000281): Get-Content C:/sample.txt -TotalCount 1)| Set-Content C:\ sample.txt

为了自动执行脚本,我创建了一个.cmd文件并将其放在以下文件夹中: C:\ Users \ vs_domadmin \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup

上述VM(00000281)驻留在我的基础VM集群中,该集群包含四个其他Vm(下层服务器)。我总共有四台服务器,我希望该脚本也可以运行。 00000281,00000282,00000283,00000284

我的脚本目前只在00000281上运行。这是诀窍: 我需要来自00000281的脚本也可以在其余的基础设施服务器00000282,00000283,00000284上执行,因为我知道该脚本将只存储在我的第一个基础设施服务器000002821上。我相信给脚本一些条件并概述路径VM中的其他3vms(00000281)应该正常工作吗?作为powershell的新手,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

<00> VM 00000282,00000283,00000284在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  

通过这种方式,您可以在所有计算机上同时运行相同的脚本。

登录用户应该拥有这些计算机的权限。

答案 1 :(得分:0)

确定解决方案:

$ File =&#34; C:\ sample.txt&#34; Get-Content $ File -TotalCount 1 | Set-Content $ File &#34; 00000282&#34;,&#34; 00000283&#34;,&#34; 00000284&#34; | %{     $ FileUnc =&#34; \ $($ _)\ $($ File.Replace(&#39;:&#39;,&#39; $&#39;))&#34;     Get-Content $ FileUnc -TotalCount 1 | Set-Content $ FileUnc }