Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

如何使用 PowerShell 收集 AD 站点信息

如何使用 PowerShell 收集 AD 站点信息

Mar 17, 2023

老牌的 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 Sharma

Nirmal 是 MCSEx3、MCITP,并因其在目录服务和 Windows 网络方面的贡献而获得 Microsoft MVP 奖项。他专长于 PowerShell 脚本编写、Microsoft Azure、Office 365、目录服务、故障转移群集、Hyper-V 以及 System Center 产品。