我有一个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的新手,有人可以帮忙吗?
答案 0 :(得分:1)
您必须使用同一台计算机的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 =" C:\ sample.txt" Get-Content $ File -TotalCount 1 | Set-Content $ File " 00000282"," 00000283"," 00000284" | %{ $ FileUnc =" \ $($ _)\ $($ File.Replace(':',' $'))" Get-Content $ FileUnc -TotalCount 1 | Set-Content $ FileUnc }