0

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

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

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

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

4

2 回答 2

1

VM 00000282, 00000283, 00000284 被认为是 vm 00000281 中当前用户的远程机器。

您必须通过将 4 台机器配置为运行远程 powershell 脚本,使用同一台机器的 powershell 远程进程在机器本身中运行脚本。

这是通过使每台机器都运行 powershell 远程服务WinRM来完成的

有关分步详细信息:

如何在远程计算机上运行 PowerShell 命令

修改 vm 00000281 中的脚本,将其添加为最后一行:

Invoke-Command -ComputerName 00000282, 00000283, 00000284 -FilePath path_to_script_file.ps1  

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

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

于 2016-10-11T15:20:44.200 回答
0

确定的解决方案:

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

于 2016-10-11T15:48:47.397 回答