昔ながらの PowerShell は、 AD サイト情報 を収集したい場合に役立ちます。たとえば Active Directory のサイトの場所、構成されたサイト オプション、そのサイトに割り当てられた ISTG、サイト リンク、ブリッジヘッド サーバーなどです。以下の PowerShell スクリプトは New-Object 関数を使用して Directory Context に接続し、その後すべての Active Directory サイトを取得します。すべての Active Directory サイトは変数に格納されます。スクリプトは ForEach ループで変数内の各サイトを巡回し、サイト情報を CSV ファイルに追記します。
$ReportFile = "C:TempADSiteInfo.CSV"
Remove-item $ReportFile -ErrorAction SilentlyContinue
$ThisString="AD Site,Location,Site Option,Current ISTG,Subnets,Servers,In Site Links,Bridgehead Servers"
Add-Content "$ReportFile" $ThisString
$CurForestName = "Netwrix.com"
$a = new-object System.DirectoryServices.ActiveDirectory.DirectoryContext("Forest", $CurForestName)
[array]$ADSites=[System.DirectoryServices.ActiveDirectory.Forest]::GetForest($a).sites
$ADSites
ForEach ($Site in $ADSites)
{
$SiteName = $Site.Name
$SiteLocation = $site.Location
$SiteOptions = $Site.Options
$SiteISTG = $Site.InterSiteTopologyGenerator
[array] $SiteServers = $Site.Servers.Count
[array] $SiteSubnets = $Site.Subnets.Count
[array] $SiteLinks = $Site.SiteLinks.Count
[array] $SiteBH = $Site.BridgeheadServers.Count
$FinalVal=$SiteName+","+'"'+$SiteLocation+'"'+","+'"'+$SiteOptions+'"'+","+$SiteISTG+","+$SiteSubnets+","+$SiteServers+","+$SiteLinks+","+$SiteBH
Add-Content "$ReportFile" $FinalVal
}
上記の PowerShell スクリプトを実行すると、“C:TempADSiteInfo.CSV” ファイルに各 Active Directory サイトの情報が保存されます。なお、スクリプトはデフォルトで現在の Active Directory フォレストに接続します。レポート ファイルの保存場所を変更したい場合は、$ReportFile 変数を変更してください。
Active Directory 用の PowerShell スクリプトがもっと必要ですか?人気の高いすべての Active Directory 用 PowerShell コマンドを 1つのブログ記事でまとめて紹介します。
共有する
もっと詳しく
著者について
Nirmal Sharma
Nirmal は MCSEx3、MCITP で、ディレクトリ サービスおよび Windows ネットワーキング分野で Microsoft MVP 賞を受賞しています。PowerShell スクリプト作成、Microsoft Azure、Office 365、ディレクトリ サービス、フェイルオーバー クラスタ、Hyper-V、System Center 製品を専門としています。