Включить правило брандмауэра с PowerShell только для домена


1

Как получить CimInstance определенного NetFirewallProfile с powershell 4?

Я пытаюсь автоматизировать включение существующего правила брандмауэра, которое позволяет использовать MS DTC для домена "тип сети", как через GUI введите описание изображения здесь

Enable-NetFirewallRule –DisplayGroup “Distributed Transaction Coordinator”

устанавливает все флажки

В командлете Enable-NetFirewallRuleесть AssociatedNetFirewallProfileпараметр, но его типа CimInstanceнет String. Существует также, Get-NetFirewallProfileно я не могу использовать его для заполнения параметра, ни через конвейер, ни в качестве переменной.

Ответы:


2

Вместо того, чтобы пытаться получить профиль и предоставить его, вы можете использовать, Get-NetFirewallRuleчтобы найти правило (вместе с профилем) и передать его в Enable-NetFirewallRule.

В качестве примера вы можете использовать следующее, предполагая, что «Координатор распределенных транзакций» является именем фактического правила:

Get-NetFirewallRule | Where {$_.Name -eq "Distributed Transaction Coordinator" -and $_.Profile -eq "Domain"} | Enable-NetFirewallRule

Кроме того, вы должны быть в состоянии использовать Get-NetFirewallProfileдля извлечения объекта профиля в переменную и предоставить его.


Фильтрация Get-NetFirewallRuleрешила мою проблему. Благодарю. Ваше второе предложение я упомянул в последнем предложении моего первоначального поста - оно не работает для меня.
SerG

Теперь я понял, что эти правила существовали благодаря моим первым экспериментам с GUI. На чистой системе мне нужно создать их, а не просто включить.
SerG

1
Осторожно с $_Profile -eq "Domain"- Profileна самом деле перечисление, и если для него задано Домен и другой профиль (например, Личный), то -eqне сработает.
CJBS

1
Хорошая точка зрения. Profileна самом деле, Microsoft.PowerShell.Cmdletization.GeneratedTypes.NetSecurity.Profileно, кажется, неявное преобразование в строку. Как такой простой обходной путь будет использовать -like '*Domain*'вместо -eq.
Сет
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.