老牌的 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 命令 尽在一篇博客文章中。
分享到
了解更多
关于作者
Nirmal Sharma
Nirmal 是 MCSEx3、MCITP,并因其在目录服务和 Windows 网络方面的贡献而获得 Microsoft MVP 奖项。他专长于 PowerShell 脚本编写、Microsoft Azure、Office 365、目录服务、故障转移群集、Hyper-V 以及 System Center 产品。