在多个虚拟机上执行 powershell 脚本

execute powerhsell script on multipl vm

我有一个 powershell 脚本,运行 在用户登录一台 VM (00000281) 时: 获取内容 C:/sample.txt -TotalCount 1) |设置内容 C:\sample.txt

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

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

我的脚本 运行niing 目前只在 00000281 上运行。技巧如下: 我需要从 00000281 开始的脚本也在其余的基础设施服务器 00000282、00000283、00000284 上执行,我知道该脚本将仅存储在我的第一台基础设施服务器 000002821 上。我相信给脚本一些条件并概述路径VM (00000281) 中的其他 3vms 应该工作正确吗?由于我是 Powershell 的新手,有人可以帮忙吗?

VM 00000282、00000283、00000284 被视为远程计算机w.r.t 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  

通过这种方式,您 运行 在所有机器上同时执行相同的脚本。

登录用户应该在这些机器上有权限。

确定的解决方案:

$文件="C:\sample.txt" 获取内容 $File -TotalCount 1 |设置内容 $File "00000282", "00000283", "00000284" | %{ $FileUnc = "\$($_)\$($File.Replace(':', '$'))" 获取内容 $FileUnc -TotalCount 1 |设置内容 $FileUnc }