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

[玩转系统] 查找并修复 Active Directory 中的错误

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

查找并修复 Active Directory 中的错误


[玩转系统] 查找并修复 Active Directory 中的错误

使用 PowerShell 可以很好地管理 Active Directory。 PowerShell 不仅可以创建用户和配置组,而且在故障排除和优化领域用于 Active Directory 时也会变得有趣。在这里,PowerShell 提供了图形界面工具几乎不可能实现的可能性。 PowerShell cmdlet 对于查找 Active Directory 中的几乎所有错误非常有用,最重要的是可以以简单的方式修复它们。在本文中,我们将向您展示最重要的命令以及它们的用途。

用于AD管理的PowerShell模块

集成 Active Directory 管理 cmdlet 的 PowerShell 模块会自动安装在域控制器上。但是,您也可以在 Windows 10 和 Windows 11 中轻松安装 cmdlet。在这种情况下,您可以从工作站方便地管理 Active Directory 和排除故障。无需下载即可安装 PowerShell 模块,您所需的一切都已包含在 Windows 10/11 专业版和企业版中。


可以通过“设置\应用程序”在 Windows 10 和 Windows 11 中找到可选功能。在“可选功能”和“添加可选功能”下,可以使用“RSAT:Active Directory 域服务和轻量级目录服务工具”。通过“安装”按钮,即可进行模块的集成。通过安装该功能,还可以使用 Active Directory 的 PowerShell 模块。


如果服务器上没有安装 Active Directory 服务,也可以在服务器上进行集成。为此,请使用服务器管理器或 Windows 管理中心。在这里,可以通过“远程服务器管理工具\角色管理工具\AD DS 和 AD LDS 工具”找到 Active Directory 的 PowerShell 模块。当然,最简单的方法是使用 PowerShell 自行安装。为此,使用命令“Install-WindowsFeature RSAT-AD-PowerShell”。安装后,可以使用 cmdlet“Get-Command -Module ActiveDirectory”显示单个命令。

[玩转系统] 查找并修复 Active Directory 中的错误

查看用于使用 PowerShell 管理 Active Directory 的各个 cmdlet

故障排除前读取数据

要对 Active Directory 进行故障排除,首先需要隔离错误。这需要可以从 PowerShell 快速轻松地读取信息。您可以使用“Get-ADDomaincontroller”cmdlet 获取域控制器的概述。

[玩转系统] 查找并修复 Active Directory 中的错误

在 PowerShell 中查看域控制器

要读出域和林的操作主机,请使用:

 
Get-ADDomain | Select InfrastructureMaster, RID-Master, PDCEmulator

Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster


在PowerShell中移动操作大师也很容易。 “Move-ADDirectoryServerOperationMasterRole”cmdlet 用于此目的。有关域控制器的更全面信息,请使用以下命令:

 (Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ }

或者写出:

Get-ADForest |
Select-Object -ExpandProperty Domains |
	ForEach-Object {
		Get-ADDomainController -Filter * -Server $_
	}

该代码读取 AD 林中所有域的所有域控制器的属性。与本文中的其他命令一起,这有助于查找错误。这些通常是由错误的组策略触发的。在这种情况下,将组策略保存为 HTML 报告可能会很有用:

 Get-GPOReport -All -Domain "joos.int" -ReportType HTML -Path "C:\temp\report.html"

设置测试环境

可以在测试环境中练习故障排除。域控制器的安装速度很快。要在测试环境中一次创建一定数量的用户,请使用以下简短脚本:

$pass= "kennw0rt" | ConvertTo-SecureString -AsPlainText -Force

$Nummer=1..20

Foreach ($z in $Nummer) {New-AdUser -Name Schulung$z -Path "OU=Schulung, DC=Joos, DC=int" -enabled $True -ChangePasswordAtLogon $true -AccountPassword $pass}

或者 :

1..20 | ForEach-Object {
	New-AdUser -Name "Schulung$_" -Path "OU=Schulung, DC=Joos, DC=int" -Enabled $True -ChangePasswordAtLogon $true -AccountPassword $pass  
}

您可以在脚本的各个部分中自定义各个环境数据,包括您希望脚本创建的用户数量。

在 PowerShell 中查找复制错误

Active Directory 中最常见的错误是复制问题。要找到这些,您可以首先使用 Get-ADReplicationConnection 在 PowerShell 中显示所有复制连接。

[玩转系统] 查找并修复 Active Directory 中的错误

查看 Active Directory 中的复制连接

根据此信息,您可以开始排除故障。例如,如果要查看域控制器的复制错误,请使用以下命令。同样,您需要在-Target参数中指定特定的域控制器:

Get-ADReplicationFailure -Target dc01

如果错误没有完全缩小到一台域控制器,您还可以包括林,从而包括环境中的所有域控制器:

Get-ADReplicationFailure -Target "joos.int" -Scope Forest

[玩转系统] 查找并修复 Active Directory 中的错误

查看 Active Directory 环境中的所有复制错误

这使您可以快速查看环境的复制错误是否集中在各个域控制器上,并且可以让您着手进行故障排除。您还可以在此处查看各个域控制器是否无法连接。在这种情况下,请检查哪个 DC 导致了错误。您还可以使用“Sync-ADObject”cmdlet 复制各个对象,以找出哪些域控制器之间存在哪些问题。

测试服务器之间的网络连接

在 PowerShell 中,您还可以测试计算机之间的网络连接并验证某些端口是否打开并允许目标服务器和源服务器之间的通信。例如,如果要测试从 DC01 到 DC02 的连接,请首先在 DC01 上的 PowerShell 中输入以下命令:

Test-NetConnection dc02

如果连接正常,您还可以测试各个端口的连接。为此,请使用“-Port”参数。此时,您可以在两个域控制器之间测试的最重要的端口是:

LDAP: 389 (TCP, UDP)
LDAP: (SSL) 686 (TCP)
Globaler Katalog: 3268 (TCP)
Globaler Katalog (SSL): 3269 (TCP)

[玩转系统] 查找并修复 Active Directory 中的错误

在 PowerShell 中验证域控制器之间的网络连接

域控制器和域之间的安全通道也与此相关。这对于成员服务器和域控制器同样重要。同样,您可以在 PowerShell 中测试服务器,然后在必要时修复连接。如果出现错误,“-verbose”参数将为您提供更多信息:

Test-ComputerSecureChannel -Server dc01 -verbose

您可以使用“Test-ComputerSecureChannel -Repair”cmdlet 测试通道的修复。要测试网络连接,可能还需要将默认网关的当前外部 IP 地址保存为 PowerShell 中的变量。然后,您可以在脚本中使用变量的内容,或者也可以通过输入变量来简单地显示内容,在本例中为“$ip”:

$ip = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
$ip

[玩转系统] 查找并修复 Active Directory 中的错误

在 PowerShell 中显示默认网关的外部 IP 地址

DNS 和 PowerShell

在 PowerShell 中,您还可以显示计算机的 DNS 缓存并清除它。如果您出于故障排除目的对 DNS 选项进行了调整,然后想要清除缓存,则这尤其有用:

Get-DNSClientServerAddress

Clear-DnsClientCache

您可以使用“Get-NetIPConfiguration”在PowerShell中读出完整的网络配置。对于 DNS 服务器,读出 DNS 区域也很重要。您还可以在 PowerShell 中执行此操作,例如:

Get-DnsServerZone -ComputerName dc01

结论

在查找和修复 Active Directory 中的错误时,PowerShell 是一个强大的工具。在大多数情况下,这些命令并不复杂,并且提供了故障排除所需的所有必要信息。管理员有必要熟悉最重要的命令。这些 cmdlet 还非常适合快速诊断以及对 Active Directory 环境的设置和结构进行初步概述。

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

取消回复欢迎 发表评论:

关灯