Como criar uma definição de grupo de regras do Windows 2008 Advanced Firewall por meio do prompt de comando

7

Existe uma maneira de criar um grupo ou adicionar a um grupo existente a uma regra no Firewall Avançado do Windows (preferível por meio de um prompt de comando ou script WSH).

Editar:

    
por frogstarr78 28.10.2011 / 02:27

3 respostas

3

Encontrei uma solução para essa pergunta antiga que também tem me incomodado há muito tempo!

A New-NetFirewallRule O artigo do TechNet informa isso sobre o parâmetro -Group do commandlet New-NetFirewallRule:

[...] This parameter specifies the source string for the DisplayGroup parameter. [...] Rule groups can be used to organize rules by influence and allows batch rule modifications. Using the Set-NetFirewallRule cmdlets, if the group name is specified for a set of rules or sets, then all of the rules or sets in that group receive the same set of modifications. It is a good practice to specify this parameter value with a universal and world-ready indirect @FirewallAPI name.

Note: The DisplayGroup parameter cannot be specified upon object creation using the New-NetFirewallRule cmdlet, but can be modified using dot-notation and the Set-NetFirewallRule cmdlet.

Parece que há uma chance, certo? Ao tentar descobrir como fazer isso sozinho, eu corri o seguinte:

Get-NetFirewallRule -DisplayName "Core Networking - IPv6 (IPv6-In)" | Get-Member

... e observou que a propriedade DisplayGroup tem apenas um método Get, mas a propriedade Group (com seus RuleGroup alias) tem um método Get e um Set.

A solução PowerShell é a seguinte:

Graças a @maoizm, esta solução agora funciona quando 1 ou mais regras com o mesmo DisplayName existem:

$RuleName = "NameOfYourFirewallRuleGoesHere"
$RuleGroup = "YourGroupNameGoesHere"
Get-NetFirewallRule -DisplayName $RuleName | ForEach { $_.Group = '$RuleGroup'; Set-NetFirewallRule -InputObject $_ }

E isso realmente criará um novo nome de grupo atribuído à sua regra.

Observação : o comando netsh não possui o comando add group . Consulte a sintaxe dos Comandos do Netsh AdvFirewall Firewall aqui.

    
por 11.07.2016 / 19:49
5

As regras do Firewall do Windows podem ser agrupadas e ativadas ou desativadas como um grupo.

Com o comando netsh advfirewall você pode adicionar regras ao Firewall. Use a opção group= para gerenciar os grupos AdvFirewall.

Use algo assim:

netsh advfirewall firewall set rule profile=domain group="Remote Desktop" new enable=Yes
    
por 28.10.2011 / 04:02
2

Enquanto você menciona especificamente

... through the command prompt

Eu vou supor que você quer dizer usando um script. Com 2008, você pode usar o powershell. É bem simples:

function Add-FirewallRule {
   param( 
      $name,
      $tcpPorts,
      $appName = $null,
      $serviceName = $null
   )
    $fw = New-Object -ComObject hnetcfg.fwpolicy2 
    $rule = New-Object -ComObject HNetCfg.FWRule

    $rule.Name = $name
    if ($appName -ne $null) { $rule.ApplicationName = $appName }
    if ($serviceName -ne $null) { $rule.serviceName = $serviceName }
    $rule.Protocol = 6 #NET_FW_IP_PROTOCOL_TCP
    $rule.LocalPorts = $tcpPorts
    $rule.Enabled = $true
    $rule.Grouping = "@firewallapi.dll,-23255"
    $rule.Profiles = 7 # all
    $rule.Action = 1 # NET_FW_ACTION_ALLOW
    $rule.EdgeTraversal = $false

    $fw.Rules.Add($rule)
}

# Sample Usage
Add-FirewallRule "Test port 1234" "1234" $null $null
Add-FirewallRule "Test port 5555-6666" "5555-6666" $null $null
Add-FirewallRule "Test port 2222 Calc" 2222 "c:\windows\system32\calc.exe" $null
Add-FirewallRule "Test port 3333 W3SVC" 3333 $null "W3SVC"

Veja este artigo para mais detalhes ...

    
por 22.03.2016 / 22:33