当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 从 Active Directory 站点和服务导出子网

作者:精品下载站 日期:2024-12-14 08:13:53 浏览:15 分类:玩电脑

从 Active Directory 站点和服务导出子网


有人问我是否可以从我们的环境中生成所有子网。我很快就转向 PowerShell 来解决这个请求。只要您将所有子网正确关联到 Active Directory 中的站点,就可以利用 PowerShell 来获取子网。获取此信息的命令取决于您运行的操作系统,因此我提供了两种方法。

如果您使用的是Windows 7/2008,您可以使用以下方法:

步骤#1:以下命令生成所有 Active Directory 站点及其详细信息的列表。

[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites

[玩转系统] 从 Active Directory 站点和服务导出子网

步骤#2:现在我们只需为命令分配一个变量,允许我们从其属性中选择和提取子网。我们利用自定义对象和 foreach 循环将每个子网和站点名称添加到列表中。

$sites = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites

$sitesubnets = @()

foreach ($site in $sites)
{
	foreach ($subnet in $site.subnets){
	   $temp = New-Object PSCustomObject -Property @{
	   'Site' = $site.Name
	   'Subnet' = $subnet; }
	    $sitesubnets += $temp
	}
}

$sitesubnets

[玩转系统] 从 Active Directory 站点和服务导出子网

步骤#3:如果您想将此信息导出到电子表格,只需将 Export-CSV 添加到管道即可。

$sites = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites

$sitesubnets = @()

foreach ($site in $sites)
{
	foreach ($subnet in $site.subnets){
	   $temp = New-Object PSCustomObject -Property @{
	   'Site' = $site.Name
	   'Subnet' = $subnet; }
	    $sitesubnets += $temp
	}
}

$sitesubnets | Export-CSV subnet.csv

如果您运行的是 Windows 8/Windows Server 2012,那么生活会更轻松一些,因为您可以使用内置的 Active Directory commandlet 来管理 Active Directory 站点和服务。只需安装 Active Directory 模块或使用以下 commandlet 从域控制器运行它们即可。如果您计划远程运行这些服务,则必须确保您的域控制器正在运行 Active Directory Web 服务。

步骤#1:以下命令返回 Active Directory 站点和服务中的所有子网。

Get-ADReplicationSubnet -Filter *

[玩转系统] 从 Active Directory 站点和服务导出子网

步骤#2:现在我们只需选择要包含的适当属性即可。在本例中,我选择了子网的名称和站点。

Get-ADReplicationSubnet -Filter * | Select-Object Name, Site

[玩转系统] 从 Active Directory 站点和服务导出子网

步骤#3:如果您想将此信息导出到电子表格,只需将 Export-CSV 添加到管道即可。

Get-ADReplicationSubnet -Filter * | Select-Object Name, Site | Export-CSV subnets.csv

我希望您遇到过此内容并发现它很有用。请随时对您的问题或需求发表评论,我将用解决方案更新帖子。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯