例如:
假设我有 10 台服务器(服务器 1-Server10)和一个 csv 列表,其中我有服务器名称和每个服务器的单独文件夹名称/路径。
我将如何在每台机器上创建这些文件夹?
a) 打开所有 10 个连接并运行基于 csv 的命令?b) 单步执行 1by1
请指点我最有效的方法
例如:
假设我有 10 台服务器(服务器 1-Server10)和一个 csv 列表,其中我有服务器名称和每个服务器的单独文件夹名称/路径。
我将如何在每台机器上创建这些文件夹?
a) 打开所有 10 个连接并运行基于 csv 的命令?b) 单步执行 1by1
请指点我最有效的方法
这是非常幼稚的,因为没有错误检查/等,但它可以满足您的需求。我在这里假设您使用的是带有 WinRM 的 Powershell 2.0。
假设您有这样的 CSV 设置:
解决方案是这样的:
这里唯一真正奇怪的部分是您如何获取传入的路径。通常,invoke-command 中的脚本无法读取您的局部变量。您为其设置了一个参数(称为
$path
),然后将本地变量$row.path
放入参数列表中 - 这允许远程服务器上的 mkdir 命令使用该$path
变量并查看从 CSV 文件传入的内容。如果您做的事情是基于 wmi 的,那么您可以使用异步调用!
无论如何,如果您没有 psv2 或没有实施 winrm,我的回答完全不符合标准。
$csvdata = 导入-csv .\test.csv
foreach ($csvdata 中的 $row) {
}
我正在做这件事,所以请先测试一下!