在多个虚拟机上执行 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
}
我有一个 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 }