PowerShell的远程处理:如何运行多个机器与个别参数的指令?

例如:

比方说,我有10个服务器(服务器1-Server10)和一个csv列表,其中我有服务器名称和每个服务器的个人文件夹名称/path。

我将如何在每台机器上创build这些文件夹?

a)打开所有10个连接并运行基于csv的命令? b)通过1by1

请指点我最有效的方法

这是非常天真的,没有错误检查/等,但它做你想要的。 我假设你在WinRM中使用Powershell 2.0。

假设你有这样的CSV设置:

server,path server1,c:\path1 server2,c:\path2 server3,c:\path3 

解决scheme将如下所示:

 $csvdata = import-csv .\test.csv foreach ($row in $csvdata) { invoke-command $row.server { param($path) mkdir $path } -argumentlist $row.path } 

这里唯一很奇怪的部分是如何获得传入的path。通常,invoke-command中的脚本无法读取本地variables。 你为它设置了一个参数(叫做$path ),然后把局部variables$row.path放到参数列表中,这样远程服务器上的mkdir命令就可以使用$pathvariables,它可以看到从CSV文件。

如果你做的东西是基于WMI的,那么你可以利用asynchronous调用!

我的答案是完全离开基地,无论如何,如果你没有psv2或不执行winrm。

$ csvdata = import-csv。\ test.csv

foreach($ csvdata中的$ row){

 md \\$row.server\c$\$row.path 

}

我正在做我的头顶,所以请先testing一下!