web-dev-qa-db-ja.com

ローカルグループポリシーからIPSecルールをエクスポートするにはどうすればよいですか?

[〜#〜] local [〜#〜]グループポリシーでIPSecが構成されているServer 2008R2ドメインコントローラーがいくつかあります。エントリは、WindowsファイアウォールまたはネットワークGPOに存在しません。これらのポリシーは古くて複雑であり、新しいDCを追加することを妨げています。

別の環境で単純化してテストできるように、ルールをエクスポート/ダンプすることを検討しています。私が好む解決策は、CMD/PowerShellです。

2
spacenomyous

ローカルポリシーとグループポリシーのどちらにあるかは関係ありません。インポートされると、サーバーはローカルストアでそれを認識します。これはPOSHv2を搭載したServer2008 R2であるため、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

編集:より多くの情報を提供するためにスクリプトを書き直しました。詳細なfilterlistクエリのみが必要です。

1
spacenomyous