Windows 7 Групповая политика - сценарий Powershell создает правило, не отображается в редакторе GP - PullRequest
0 голосов
/ 04 августа 2020

Я запускаю команду Powershell, чтобы добавить правило в редактор локальной групповой политики для Windows Брандмауэр с повышенной безопасностью - объект локальной групповой политики.

Например, это из ConfigureRemotingFor Ansible. ps1 скрипт.

Function Enable-GlobalHttpFirewallAccess {Write-Verbose "Принудительный доступ к глобальному HTTP-файерволу" # это довольно наивная реализация; мог бы быть более сложным в отношении сопоставления / свертывания правил $ fw = New-Object -ComObject HNetCfg.FWPolicy2

# try to find/enable the default rule first
$add_rule = $false
$matching_rules = $fw.Rules | Where-Object  { $_.Name -eq "Windows Remote Management (HTTP-In)" }
$rule = $null
If ($matching_rules) {
    If ($matching_rules -isnot [Array]) {
        Write-Verbose "Editing existing single HTTP firewall rule"
        $rule = $matching_rules
    }
    Else {
        # try to find one with the All or Public profile first
        Write-Verbose "Found multiple existing HTTP firewall rules..."
        $rule = $matching_rules | ForEach-Object { $_.Profiles -band 4 }[0]

        If (-not $rule -or $rule -is [Array]) {
            Write-Verbose "Editing an arbitrary single HTTP firewall rule (multiple existed)"
            # oh well, just pick the first one
            $rule = $matching_rules[0]
        }
    }
}

If (-not $rule) {
    Write-Verbose "Creating a new HTTP firewall rule"
    $rule = New-Object -ComObject HNetCfg.FWRule
    $rule.Name = "Windows Remote Management (HTTP-In)"
    $rule.Description = "Inbound rule for Windows Remote Management via WS-Management. [TCP 5985]"
    $add_rule = $true
}

$rule.Profiles = 0x7FFFFFFF
$rule.Protocol = 6
$rule.LocalPorts = 5985
$rule.RemotePorts = "*"
$rule.LocalAddresses = "*"
$rule.RemoteAddresses = "*"
$rule.Enabled = $true
$rule.Direction = 1
$rule.Action = 1
$rule.Grouping = "Windows Remote Management"

If ($add_rule) {
    $fw.Rules.Add($rule)
}

Write-Verbose "HTTP firewall rule $($rule.Name) updated"

}

Однако, когда я запускаю его, кажется, что ничего не выходит из строя. Он действительно выполняет добавление правила. Для этого он входит в блокировку, но когда я проверяю свою групповую политику, там нет правила. Есть идеи, почему это может быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...