Windows AD PowerShell(八):Kerberos 与票据
这是 Windows AD PowerShell 学习记录的第八节,主要整理 Kerberos 认证流程、TGT 与服务票据、klist 的常用操作,以及“改完权限仍然不生效”一类问题的排查方法。
2026 年 9 月 22 日,本节通过 VMware Tools 在 QYNET-CORE01 上进行了只读实机核验。来宾命令以 QY\Administrator 的临时 Batch 登录会话运行,因此票据缓存与桌面交互式用户并不相同。文中标注“实机输出”的内容来自本次 VM;其余故障场景与变更命令均明确作为教学示例,没有在 VM 上执行。
klist purge 会删除目标登录会话的票据,可能暂时中断已经建立的网络访问,本次没有执行。
八、Kerberos 与票据
8.1 Kerberos 解决了什么问题
Kerberos 让用户登录域后,可以在不反复向每个服务提交密码的情况下访问文件服务器、Web 服务、SQL Server 等域内资源。
一次典型的认证过程可以简化为:
用户登录域 ↓ AS-REQ / AS-REPKDC 验证用户并签发 TGT ↓客户端访问 CIFS、HTTP、MSSQLSvc 等服务 ↓ TGS-REQ / TGS-REP客户端用 TGT 向 KDC 申请目标 SPN 的服务票据 ↓客户端把服务票据交给目标服务 ↓目标服务使用自身账户密钥解密并验证票据Windows 域中的 KDC 运行在域控制器上,包含两个逻辑部分:
| 服务 | 交换过程 | 作用 |
|---|---|---|
| Authentication Service | AS Exchange | 验证用户并签发 TGT |
| Ticket-Granting Service | TGS Exchange | 根据 TGT 为具体 SPN 签发服务票据 |
Kerberos 认证涉及三个主要角色:
| 角色 | 示例 | 作用 |
|---|---|---|
| 客户端主体 | QY\qianyue | 发起访问 |
| KDC | QYNET-CORE01.qy.net | 验证主体并签发票据 |
| 服务主体 | cifs/fileserver.qy.net | 接收并验证服务票据 |
8.2 TGT 与服务票据的区别
Kerberos 缓存中最常见的是两类票据:
| 票据 | 常见 Server 字段 | 用途 |
|---|---|---|
| TGT(Ticket-Granting Ticket) | krbtgt/QY.NET | 向 KDC 继续申请其他服务票据 |
| 服务票据(Service Ticket) | cifs/server.qy.net、HTTP/web.qy.net | 向指定服务证明身份 |
可以把 TGT 理解为“向售票处继续购票的凭证”,把服务票据理解为“进入某个具体服务的门票”。拿到 TGT 不等于已经拥有所有资源权限;目标服务仍会根据票据中的身份信息和资源 ACL 决定是否允许访问。
常见服务与 SPN 的对应关系:
| 访问对象 | 常见 SPN |
|---|---|
| SMB 共享 | cifs/fileserver.qy.net |
| IIS / Web 服务 | HTTP/web.qy.net |
| SQL Server | MSSQLSvc/sql.qy.net:1433 |
| LDAP | LDAP/dc01.qy.net |
| WinRM | WSMAN/server.qy.net |
DNS 与 SPN 的注册、查重方法已经在第七篇:DNS、SPN 与 Kerberos 排障中整理。本节主要从客户端票据和登录会话的角度继续排查。
8.3 查看当前登录会话的全部票据
直接运行 klist。本次 VMware Tools 刚创建的 Batch 会话最初没有缓存票据:
# 查看当前登录会话缓存的 Kerberos 票据klist
当前登录 ID 是 0:0xac0d8
缓存的票证: (0)这是实机输出,不表示 DC 没有 Kerberos 票据,只表示这个刚建立的临时登录会话尚未请求票据。执行 klist get 后,同一会话会按需取得 TGT 与服务票据。
klist tickets 与直接执行 klist 的作用相同:
klist tickets
当前登录 ID 是 0:0xac0d8缓存的票证: (0)查看输出时优先关注:
| 字段 | 含义 | 排查用途 |
|---|---|---|
Current LogonId | 当前登录会话的 LUID | 区分用户、服务和 SYSTEM 的票据缓存 |
Client | 获得票据的安全主体 | 确认是否使用了预期账户 |
Server | 票据对应的服务主体 | 确认实际申请了哪个 SPN |
KerbTicket Encryption Type | 票据加密类型 | 排查 AES、RC4 等兼容性问题 |
Start Time | 票据开始生效时间 | 判断是否仍在使用修改前的旧票据 |
End Time | 票据失效时间 | 判断票据是否已经过期 |
Renew Time | 最晚续订时间 | 判断票据还能否续订 |
Ticket Flags | 票据属性 | 排查续订、转发和委派等问题 |
Windows 中不要使用 klist -e
在部分 Linux 或 MIT Kerberos 教程中,klist -e 用于显示加密类型;Windows 自带的 klist.exe 不支持这个参数。Windows 的普通 klist 输出已经包含 KerbTicket Encryption Type 与 Session Key Type。
klist -e
用法: klist.exe [command]
命令列表: [tickets] [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>] tgt [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>] purge [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>] sessions [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>] kcd_cache [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>] get <SPN> [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>] add_bind <DOMAIN> <DC> query_bind purge_bind以上为 Server 2016 的实机输出。它没有执行 -e,而是直接显示帮助;关键点是:在 Windows 上直接使用 klist 查看加密类型。
8.4 只查看当前 TGT
初始会话没有 TGT,klist tgt 返回“安全包中没有可用的凭证”。在下一节执行 klist get 后,同一实机会话再次查询:
# 查看当前登录会话的 TGTklist tgt
当前登录 ID 是 0:0xac0d8
缓存的 TGT:
服务名 : krbtgt目标名(SPN) : krbtgt客户端名 : Administrator域名 : QY.NET目标域名 : QY.NET票证标志 : 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize会话密钥 : 密钥类型 0x12 - AES-256-CTS-HMAC-SHA1-96开始时间 : 9/22/2026 15:14:37 (本地)结束时间 : 9/23/2026 1:14:37 (本地)在以下时间之前续订 : 9/29/2026 15:14:37 (本地)TimeSkew : + 0:00 分钟如果当前域用户已经正常登录,但 klist tgt 找不到 TGT,可以依次检查:
- 当前窗口是否运行在另一个账户或登录会话中。
- 计算机是否能够找到并联系 KDC。
- 客户端 DNS 是否指向 AD DNS。
- 客户端与 DC 的时间是否相差过大。
- 用户是否使用了本地账户、缓存登录或其他凭据方式。
以下为后续排障命令示例,本次没有再次执行:
whoami
QY\qianyue
nltest /dsgetdc:qy.net /KDC
DC: \\QYNET-CORE01.qy.net Address: \\10.0.0.10 Dom Guid: 4b237c46-8b33-4a8e-a4cf-3d64e957f4a1 Dom Name: qy.net Forest Name: qy.net Dc Site Name: QYNET-CORE Flags: GC DS LDAP KDC TIMESERV WRITABLE DNS_DC DNS_DOMAIN DNS_FORESTThe command completed successfully
w32tm /query /status
Leap Indicator: 0(no warning)Stratum: 4 (secondary reference - syncd by (S)NTP)Source: QYNET-CORE01.qy.net8.5 主动申请指定服务的票据
klist get 可以直接向 KDC 请求指定 SPN 的服务票据,很适合验证“这个主体能否为该 SPN 获得票据”。
# 主动申请本机 CIFS 服务票据klist get cifs/QYNET-CORE01.qy.net
当前登录 ID 是 0:0xac0d8已成功检索 cifs/QYNET-CORE01.qy.net 的票证。
缓存的票证: (2)
#0> 客户端: Administrator @ QY.NET 服务器: krbtgt/QY.NET @ QY.NET Kerberos 票证加密类型: AES-256-CTS-HMAC-SHA1-96 票证标志 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize 开始时间: 9/22/2026 15:14:37 (本地) 结束时间: 9/23/2026 1:14:37 (本地) 续订时间: 9/29/2026 15:14:37 (本地) 调用的 KDC: QYNET-CORE01
#1> 客户端: Administrator @ QY.NET 服务器: cifs/QYNET-CORE01.qy.net @ QY.NET Kerberos 票证加密类型: AES-256-CTS-HMAC-SHA1-96 票证标志 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize 开始时间: 9/22/2026 15:14:37 (本地) 结束时间: 9/23/2026 1:14:37 (本地) 续订时间: 9/29/2026 15:14:37 (本地) 调用的 KDC: QYNET-CORE01实机结果说明:初始 Batch 会话虽然没有票据,但在主动请求 CIFS 票据时,Windows 先取得了 TGT,再取得目标服务票据;两张票据均使用 AES-256。
请求成功后再次查询:
klist
#1> 客户端: Administrator @ QY.NET 服务器: cifs/QYNET-CORE01.qy.net @ QY.NET Kerberos 票证加密类型: AES-256-CTS-HMAC-SHA1-96 开始时间: 9/22/2026 15:14:37 (本地) 结束时间: 9/23/2026 1:14:37 (本地)下面是不存在 SPN 时的教学示例,本次没有执行:
klist get HTTP/notexist.qy.net
Current LogonId is 0:0x4a9f1Error calling API LsaCallAuthenticationPackage (GetTicket substatus): 0x6fbklist failed with 0xc000018b/-1073741429不同系统版本的错误码和文字可能不同。不要只记错误数字,应继续确认 SPN:
setspn -F -Q HTTP/notexist.qy.net
Checking forest DC=qy,DC=netNo such SPN found.klist get 成功只能证明 KDC 能够为目标 SPN 签发票据,不能证明目标服务一定能解密票据,也不能证明资源 ACL 一定允许当前用户访问。
8.6 清空票据并重新获取
以下为操作示例,本次没有执行 klist purge:
# 清空当前登录会话中的全部 Kerberos 票据klist purge
Current LogonId is 0:0x4a9f1Deleting all tickets:Ticket(s) purged!清空后立即查询:
klist
Current LogonId is 0:0x4a9f1Cached Tickets: (0)再次访问域资源时,Windows 会按需重新申请 TGT 和服务票据:
dir \\QYNET-FS01.qy.net\Public
Directory: \\QYNET-FS01.qy.net\Public
Mode LastWriteTime Length Name---- ------------- ------ ----d----- 9/20/2026 14:32 Documents
klist
Cached Tickets: (2)
#0> Server: krbtgt/QY.NET @ QY.NET#1> Server: cifs/QYNET-FS01.qy.net @ QY.NET💡
klist purge很常用,但不是“万能修复命令”:修改 SPN、修复 DNS 或更换服务账户后,它适合排除旧票据缓存;如果 SPN 仍然错误、服务账户密钥不一致或 ACL 没有授权,重新获取的仍然会是不能使用的票据。
执行前还应注意:
- 它会删除当前登录会话中的全部 Kerberos 票据。
- 已连接的共享、远程管理或业务会话可能暂时中断。
- 它默认只处理当前登录会话,不会自动清除其他用户、服务或 SYSTEM 会话的票据。
- 排障结束后应重新访问目标服务,并再次执行
klist验证。
8.7 加入新组后,清票据还是注销登录
本节命令与输出用于演示权限排查流程,没有在此次 VM 会话中修改用户组或共享权限。
“已经把用户加入组,但共享权限仍未生效”不能只看 Kerberos 缓存,还要区分三层状态:
AD 中的组成员关系 ↓当前登录会话的访问令牌 ↓Kerberos TGT / 服务票据与现有服务连接 ↓共享权限和 NTFS ACL先确认 AD 中的成员关系:
Get-ADPrincipalGroupMembership -Identity qianyue | Select-Object Name,GroupScope,GroupCategory
Name GroupScope GroupCategory---- ---------- -------------Domain Users Global SecurityQYNET-File-Read Global Security再检查当前登录令牌中的组:
whoami /groups | findstr /i "QYNET-File-Read"
QY\QYNET-File-Read Group S-1-5-21-...-1134 Mandatory group, Enabled by default, Enabled group如果 AD 查询已经有新组,但 whoami /groups 中没有,新组尚未进入当前 Windows 登录令牌。klist purge 只清除 Kerberos 票据,不会重建当前桌面会话的本地访问令牌;注销并重新登录是最稳妥的方法。
对于网络资源,还可能存在已经建立的 SMB 会话。可以先关闭相关文件和窗口,再删除指定连接:
net use
Status Local Remote Network-------------------------------------------------------------------------------OK Z: \\QYNET-FS01\Public Microsoft Windows Network
net use \\QYNET-FS01\Public /delete
\\QYNET-FS01\Public was deleted successfully.然后重新登录或重新建立连接。不要在用户仍有文件打开时强行删除生产共享连接。
排查顺序建议为:
Get-ADPrincipalGroupMembership:AD 是否已经记录成员关系。whoami /groups:当前访问令牌是否包含该组。klist:当前会话是否仍持有修改前的票据。net use:是否存在旧的 SMB 连接。- 检查共享权限和 NTFS ACL,并计算两者共同作用后的有效权限。
- 必要时注销并重新登录,不要把“清票据”当作刷新一切身份状态的替代品。
8.8 区分不同登录会话的票据
票据属于登录会话,而不是简单地“属于这台计算机”。同一台计算机可能同时存在交互式用户、SYSTEM、Windows 服务、计划任务和远程登录等多个会话。
以管理员身份列出登录会话:
klist sessions
当前登录 ID 是 0:0x5e299
[0] 会话 0 0:0x5cf69 qy\QYNET-CORE01$ Kerberos:Network[1] 会话 0 0:0x30658 NT SERVICE\MSSQL$MICROSOFT##WID Negotiate:Service[2] 会话 0 0:0x3e4 qy\QYNET-CORE01$ Negotiate:Service[3] 会话 0 0:0x5e299 qy\Administrator NTLM:Batch[4] 会话 0 0:0x3e3 NT AUTHORITY\IUSR Negotiate:Service[5] 会话 0 0:0x3e5 NT AUTHORITY\LOCAL SERVICE Negotiate:Service[6] 会话 0 0:0x3e7 qy\QYNET-CORE01$ Negotiate:(0)上面是实机输出的节选。0x5e299 是 VMware Tools 创建的 Administrator Batch 会话,0x3e7 是 SYSTEM 会话;两者拥有彼此独立的票据缓存。输出格式会因 Windows 版本和登录类型不同而变化。
找到目标 LUID 后,可以查询对应会话。下面的通用查询格式仅作说明:
# 查看当前用户指定登录会话的票据klist -li <目标登录会话的 LUID>
# 输出属于指定 LUID,不一定属于当前命令窗口本地 SYSTEM 的常见 LUID 是 0x3e7。在提升权限的终端中,可以检查计算机账户使用的票据:
# 检查本机 SYSTEM / 计算机账户的票据klist -li 0x3e7
当前登录 ID 是 0:0x5e299目标登录 ID 是 0:0x3e7
缓存的票证: (8)
#0> 客户端: qynet-core01$ @ QY.NET 服务器: krbtgt/QY.NET @ QY.NET Kerberos 票证加密类型: AES-256-CTS-HMAC-SHA1-96 缓存标志: 0x2 -> DELEGATION 调用的 KDC: QYNET-CORE01
#1> 客户端: qynet-core01$ @ QY.NET 服务器: krbtgt/QY.NET @ QY.NET Kerberos 票证加密类型: AES-256-CTS-HMAC-SHA1-96 缓存标志: 0x1 -> PRIMARY 调用的 KDC: QYNET-CORE01
#2> 客户端: qynet-core01$ @ QY.NET 服务器: cifs/QYNET-CORE01.qy.net @ QY.NET Kerberos 票证加密类型: AES-256-CTS-HMAC-SHA1-96 调用的 KDC: QYNET-CORE01
#3> 客户端: qynet-core01$ @ QY.NET 服务器: DNS/qynet-core01.qy.net @ QY.NET Kerberos 票证加密类型: AES-256-CTS-HMAC-SHA1-96 调用的 KDC: QYNET-CORE01实机 SYSTEM 缓存共有 8 张票据,此处只节选 TGT、CIFS 与 DNS。其余还包括多张 LDAP 票据。
这对排查计算机组策略、计算机启动脚本和以 SYSTEM 身份运行的服务很有帮助。
# 高影响操作:清除 SYSTEM 会话票据klist purge -li 0x3e7本次没有执行上述命令。清除 SYSTEM 票据可能影响计算机身份访问域服务,不应当作普通客户端排障的第一步。必须确认目标 LUID,并在维护窗口内评估影响。
8.9 查看和刷新 KDC 绑定
查看 Kerberos 客户端最近联系或优先使用的域控制器:
klist query_bind
当前登录 ID 是 0:0xac0d8已成功查询 kerberos KDC 绑定缓存。
KDC 绑定缓存项: (1)
#0> RealmName: QY.NET KDC 地址: QYNET-CORE01 KDC 名称: QYNET-CORE01 DC 标志: 0x80 -> CLOSEST_SITE 缓存标志: 0x80000000 -> LOCAL实机结果表示当前会话联系的是本机 QYNET-CORE01,并且它被识别为最近站点的 KDC。
以下是清除或指定 KDC 绑定的操作示例,本次均未执行:
klist purge_bind
Current LogonId is 0:0x4a9f1Kerberos binding cache purged.然后重新定位 KDC:
nltest /dsgetdc:qy.net /KDC /force
DC: \\QYNET-CORE02.qy.net Address: \\10.0.0.11 Flags: GC DS LDAP KDC TIMESERV WRITABLE DNS_DC DNS_DOMAIN DNS_FORESTThe command completed successfullypurge_bind 清理的是 KDC 绑定缓存,purge 清理的是 Kerberos 票据缓存,两者不是同一个操作。
在实验或定向排障中,还可以临时指定首选 KDC:
klist add_bind QY.NET QYNET-CORE02.qy.net
klist query_bind
QY.NET : QYNET-CORE02.qy.net生产环境中不应长期依赖手工绑定掩盖站点、DNS、DC Locator 或复制故障,测试完成后应清除绑定并修复根因。
8.10 从事件日志验证票据申请
本节日志输出为查询格式示例,本次没有采集或修改安全审核策略。
域控制器安全日志中,与票据最相关的事件有:
| 事件 ID | 含义 | 典型排查方向 |
|---|---|---|
| 4768 | 请求 TGT | 用户、预身份验证、KDC、加密类型 |
| 4769 | 请求服务票据 | 目标 SPN、服务账户、加密类型、失败码 |
| 4771 | Kerberos 预身份验证失败 | 密码、时间、证书或预身份验证问题 |
| 4776 | NTLM 凭据验证 | 判断应用是否回退到 NTLM |
在 DC 上查询最近一小时的票据事件:
$startTime = (Get-Date).AddHours(-1)
Get-WinEvent -FilterHashtable @{ LogName = "Security" Id = 4768,4769,4771 StartTime = $startTime} | Select-Object TimeCreated,Id,MachineName,Message
TimeCreated Id MachineName Message----------- -- ----------- -------2026/9/22 10:18:31 4769 QYNET-CORE01.qy.net A Kerberos service ticket was requested....2026/9/22 10:18:30 4768 QYNET-CORE01.qy.net A Kerberos authentication ticket (TGT) was requested....按账户或 SPN 缩小范围:
Get-WinEvent -FilterHashtable @{ LogName = "Security" Id = 4769 StartTime = $startTime} | Where-Object Message -Match "qianyue|cifs/QYNET-FS01" | Select-Object TimeCreated,Id,Message查询安全日志通常需要管理员权限,并且只有启用相应的高级审核策略后,DC 才会记录所需事件。
8.11 常见票据故障案例
以下案例均为教学场景,不是本次 VM 的实机故障。
案例一:用户已加入共享组,但仍然拒绝访问
Get-ADPrincipalGroupMembership qianyue | Where-Object Name -eq "QYNET-File-Read"
DistinguishedName : CN=QYNET-File-Read,OU=Group,OU=Organization,DC=qy,DC=netGroupCategory : SecurityGroupScope : GlobalName : QYNET-File-Read
whoami /groups | findstr /i "QYNET-File-Read"
# 没有输出结论:AD 已有成员关系,但当前登录令牌还没有新组。优先注销并重新登录,然后重新建立共享连接;若仍失败,再检查共享 ACL 与 NTFS ACL。
案例二:klist get 成功,但访问 Web 服务仍然返回 401
klist get HTTP/testweb.qy.net
A ticket to HTTP/testweb.qy.net has been retrieved successfully.
setspn -F -Q HTTP/testweb.qy.net
Existing SPN found!CN=svc_testweb,OU=Service Accounts,DC=qy,DC=net HTTP/testweb.qy.net
Get-CimInstance Win32_Service -ComputerName TESTWEB | Where-Object Name -eq "TestWebService" | Select-Object Name,StartName,State
Name StartName State---- --------- -----TestWebService QY\svc_oldweb Running结论:KDC 按 SPN 为 svc_testweb 签发了票据,但服务实际以 svc_oldweb 运行,无法使用正确密钥解密。应确认业务设计后统一 SPN 所有者与服务运行身份,不能靠反复清票据修复。
案例三:使用 IP 可以连接,却没有 Kerberos 服务票据
dir \\10.0.0.30\Public
klist | findstr /i "cifs"
# 没有目标 CIFS 票据Kerberos 依赖 SPN,客户端通常应使用与 SPN 匹配的主机名或 FQDN:
dir \\QYNET-FS01.qy.net\Public
klist | findstr /i "cifs"
Server: cifs/QYNET-FS01.qy.net @ QY.NET使用 IP、未注册的别名或不匹配的名称时,应用可能回退到 NTLM,也可能直接认证失败。能访问不等于已经使用 Kerberos。
案例四:票据时间看似正常,但认证报时间偏差
w32tm /stripchart /computer:QYNET-CORE01.qy.net /samples:5 /dataonly
Tracking QYNET-CORE01.qy.net [10.0.0.10:123].Collecting 5 samples.The current time is 9/22/2026 11:24:10.11:24:10, +00.0008123s11:24:12, +00.0007311s11:24:14, +00.0006948s如果偏差明显,应先修复 Windows 时间层级、PDC Emulator 的外部时间源或客户端同步问题,再重新申请票据。不要通过放宽 Kerberos 时间容差长期掩盖时间同步故障。
8.12 Kerberos 票据排查顺序
遇到“登录正常,但访问某个域服务失败”时,可以按以下顺序检查:
whoami:确认当前实际使用的账户。Resolve-DnsName:确认访问名称解析到正确目标。nltest /dsgetdc:<域> /KDC:确认客户端能找到 KDC。w32tm /query /status:确认时间源与同步状态。setspn -F -Q <SPN>:确认 SPN 存在、唯一并属于正确账户。klist tgt:确认当前登录会话拥有有效 TGT。klist get <SPN>:主动验证 KDC 能否签发服务票据。klist:确认客户端实际缓存了目标服务票据。- 检查服务实际运行身份与服务账户密码。
- 检查 4768、4769、4771 以及服务端日志。
- 修复根因后再执行
klist purge,重新访问并验证。 - 如果问题是新增组权限,同时检查访问令牌、旧连接和资源 ACL;必要时注销重登。
应始终明确 klist 是在哪台计算机、哪个用户和哪个登录会话中执行的。客户端、服务端、SYSTEM 和远程 PowerShell 会话可能拥有完全不同的票据缓存。
8.13 本节常用命令速查
| 命令 | 作用 |
|---|---|
klist | 查看当前登录会话缓存的全部 Kerberos 票据 |
klist tickets | 与默认 klist 相同,列出 TGT 和服务票据 |
klist tgt | 只查看当前 TGT 的详细信息 |
klist get <SPN> | 主动请求指定 SPN 的服务票据 |
klist purge | 清空当前登录会话的全部票据 |
klist sessions | 列出本机登录会话及其 LUID |
klist -li <LUID> | 查看指定登录会话的票据 |
klist query_bind | 查看缓存的首选 KDC 绑定 |
klist purge_bind | 清除 KDC 绑定缓存 |
klist add_bind <域> <KDC> | 临时指定某个域的首选 KDC |
klist kcd_cache | 查看 Kerberos 约束委派缓存 |
票据排障的关键不是“看见 Kerberos 就清缓存”,而是先确认当前登录会话、目标 SPN、KDC、服务身份和资源权限,再用重新获取票据验证修复结果。
参考资料
- Klist 命令参考
- Windows Server 中的 Kerberos 身份验证概述
- Key Distribution Center
- Ticket-Granting Service Exchange
- 第七篇:DNS、SPN 与 Kerberos 排障
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!













