Загрузка данных


$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 ', ')"
    }
  }
}