PowerShellでADセキュリティグループのネストを調べる

タイトルの通りなのですが、Active Directory でセキュリティ グループ(Security Group)を管理していると、メンバーを管理するのが大変ですよね。
CSV形式で一括出力するするスクリプトを作成しました。

使い方は、変数「$FilterName」へ対象となるキーワードを設定します。
設定したキーワードをプレフィックスとした、セキュリティグループを一覧で出力し、メンバーも一緒に出力します。指定したキーワードをファイル名として、カレントフォルダにCSVファイルを出力します。

Import-Module ActiveDirectory
$FilterName="SEC"
$filter1 = "(name=" + $FilterName + "*)"
$csvName = $FilterName + ".csv"
Get-ADGroup -LDAPFilter $filter1 | sort name |
%{
    $name1 = $_.name
    $admember = Get-ADGroupMember -Identity $_
    if ($admember -eq $null)
    {
        %{Write-Output("{0}," -f $name1)}  | Out-File $csvName -append
    } else
    {
         foreach ($property in $admember)
        {
            %{Write-Output("{0},{1}" -f $name1,$property.name)}  | Out-File $csvName -append
        }
    }
}