Я пытаюсь создать сценарий PowerShell (OS Целевого уровня 2008 R2), что 1.Как отключить/включить правила брандмауэра Windows на основе связанного номера порта
- прогонов через массив портов
- Списка все политики брандмауэра, связанные с портами
- Захват «Правило имен» в массив в настоящее время застрял здесь
- Run через каждый «Имя правила», либо отключить или включить политики на основе текущего состояния.
Я застреваю в пункте 3 моего списка выше. Кто-нибудь может помочь или, возможно, направить меня в правильном направлении?
Текущий код:
$array = @("3050", "300", "8080","7080","5090")
for ($i=0; $i -lt $array.length; $i++) {
$searchPort = "(LocalPort.*" + $array[$i] + ")"
$front = netsh advfirewall firewall show rule dir=in name=all |
Select-String -Pattern ($searchPort) -Context 9,4
Write-Host $front
}
Копия результата на основе моего скрипта:
Rule Name: interbase port ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public Grouping: LocalIP: Any RemoteIP: Any Protocol: TCP LocalPort: 3050 RemotePort: Any Edge traversal: No Action: Allow Rule Name: MT ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public Grouping: LocalIP: Any RemoteIP: Any Protocol: UDP LocalPort: 300 RemotePort: Any Edge traversal: No Action: Allow Rule Name: medtech port ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public Grouping: LocalIP: Any RemoteIP: Any Protocol: UDP LocalPort: 300 RemotePort: Any Edge traversal: No Action: Allow
Да = Нет и Нет = Да –
Спасибо вам большое, что мне нужно! Если когда-либо в QT, NZ, я должен вам пиво! –
Привет, Просто добавил быстрое примечание я обнаружил, что переключение не сквозная в «включить» поэтому я сделал новую переменную, которая пошла как это: \t Netsh ... | Select-String -Pattern $ searchPort -Context 9,4 | ForEach-Object { \t \t $ правило = $ _ Context.PreContext [0] -replace. Имя правила: \ с * ' \t \t $ включено = $ _ Context.PreContext [2] -replace «включено:. \ s * \t \t $ NEWSTATUS = $ тумблер [$ включен] \t \t & Netsh имя advfirewall брандмауэра набор правил = "$ правило" новый включить = "$ NEWSTATUS" \t} Еще раз спасибо –