Назад | Перейти на главную страницу

Как я могу экспортировать правила IPSec из ЛОКАЛЬНОЙ групповой политики?

У меня есть несколько контроллеров домена Server 2008 R2, на которых настроен IPSec. МЕСТНЫЙ Групповая политика. Записи отсутствуют в брандмауэре Windows или в сетевом объекте групповой политики. Эти политики старые и запутанные и не позволяют нам добавлять новые контроллеры домена.

Я хочу экспортировать / сбрасывать правила, чтобы можно было упростить и протестировать в отдельной среде. Я предпочитаю использовать CMD / PowerShell.

Не имеет значения, находится ли он в локальной или групповой политике, после импорта сервер видит его в своем локальном хранилище. Поскольку это Server 2008 R2 с POSHv2, мы ограничены использованием netsh команды, однако я заключил вывод в PowerShell, чтобы создать объекты, которые можно было экспортировать для анализа на удаленном компьютере.

$OutFile = "$env:temp\IPsecRules.csv"
$objects = @()
netsh ipsec static show filterlist all level=verbose |
  Select-String ':' |
    ForEach-Object {
      $split = $_.Line.Split(':')
      $name  = $split[0].Trim()
      $value = $split[1].Trim()
      switch ($name) {
        'Description'            {${Description}            = $value}
        'Store'                  {${Store}                  = $value}
        'Last Modified'          {${Last Modified}          = $value}
        'GUID'                   {${GUID}                   = $value}
        'No. of Filters'         {${No. of Filters}         = $value}
        'Mirrored'               {${Mirrored}               = $value}
        'Source IP Address'      {${Source IP Address}      = $value}
        'Source Mask'            {${Source Mask}            = $value}
        'Source DNS Name'        {${Source DNS Name}        = $value}
        'Destination IP Address' {${Destination IP Address} = $value}
        'Destination Mask'       {${Destination Mask}       = $value}
        'Destination DNS Name'   {${Destination DNS Name}   = $value}
        'Protocol'               {${Protocol}               = $value}
        'Source Port'            {${Source Port}            = $value}
        'Destination Port'       {${Destination Port}       = $value}
        #'FilterList Name'        {${FilterList Name}        = $value}
      }
      If (${Destination Port}) {
        $object = New-Object psobject -Property @{
          'Description'            = ${Description}
          'Store'                  = ${Store}
          'Last Modified'          = ${Last Modified}
          'GUID'                   = ${GUID}
          'No. of Filters'         = ${No. of Filters}
          #'Description'            = ${Description}
          'Mirrored'               = ${Mirrored}
          'Source IP Address'      = ${Source IP Address}
          'Source Mask'            = ${Source Mask}
          'Source DNS Name'        = ${Source DNS Name}
          'Destination IP Address' = ${Destination IP Address}
          'Destination Mask'       = ${Destination Mask}
          'Destination DNS Name'   = ${Destination DNS Name}
          'Protocol'               = ${Protocol}
          'Source Port'            = ${Source Port}
          'Destination Port'       = ${Destination Port}
          #'FilterList Name'        = ${FilterList Name} 
        }
        $objects += $object
        ${Destination Port} = ""
      }
    }
$objects | Export-Csv -Path "c:\temp\IPsecRules.csv" -NoTypeInformation -Force

Отредактировано: Переписан скрипт, чтобы дать больше информации. Требуется только подробный запрос списка фильтров.