Почему Вы хотите выполнить брандмауэр на самом сервере. Вы рассмотрели помещение брандмауэра (такого как IPCop, pfSense, Smoothwall, и т.д.) МЕЖДУ Вашими серверами и Интернетом?
В дополнение к iptables на самом сервере (всегда прекрасная идея) я считал бы взятие его одним шагом дальше и наличием физического устройства / брандмауэр, находящийся перед Вашим сервером (серверами).
Это очень наивно в этом нет никакой проверки ошибок / и т.д., но это делает то, что Вы хотите. Я предполагаю здесь, что Вы используете Powershell 2.0 с WinRM.
Принятие Вас имеет установку CSV как это:
server,path
server1,c:\path1
server2,c:\path2
server3,c:\path3
Решение было бы похоже так:
$csvdata = import-csv .\test.csv
foreach ($row in $csvdata) {
invoke-command $row.server { param($path) mkdir $path } -argumentlist $row.path
}
Единственная действительно странная часть здесь - то, как Вы передали путь в. Как правило, сценарий в вызывать-команде не может считать Ваши локальные переменные. Вы устанавливаете параметрический усилитель для него (названный $path
) и затем помещенный локальная переменная $row.path
в список аргументов - это позволяет команде mkdir на удаленных серверах использовать $path
переменная и это видят то, что было передано в из файла CSV.
если Ваше выполнение чего-то, это - wmi, базирующийся затем, можно использовать асинхронные вызовы!
мой ответ был полностью от основы, так или иначе если Вы не имеете psv2 или не реализуете winrm.
$csvdata = импортируют-csv.\test.csv
foreach ($row в $csvdata) {
md \\$row.server\c$\$row.path
}
Я делаю это первое, что пришло на ум, поэтому протестируйте это сначала!