例如:
比方说,我有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一下!