$ip = '5.18.249.234'
$rules = Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow | Where-Object {
($_ | Get-NetFirewallPortFilter).LocalPort -contains 3389
}
if (-not $rules) {
Write-Host "RDP allow-правило не найдено — создаю новое"
New-NetFirewallRule -DisplayName "RDP-allow-Anton" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3389 -RemoteAddress $ip
} else {
foreach ($r in $rules) {
$cur = @(($r | Get-NetFirewallAddressFilter).RemoteAddress)
if ($cur -contains 'Any' -or $cur -contains '*') {
Write-Host "$($r.DisplayName): открыт для ВСЕХ (Any) — значит режет не это правило (смотри панель провайдера / block-правило)"
} else {
$new = ($cur + $ip) | Where-Object { $_ } | Select-Object -Unique
Set-NetFirewallRule -Name $r.Name -RemoteAddress $new
Write-Host "$($r.DisplayName): добавлен $ip → теперь: $($new -join ', ')"
}
}
}