klist.exe 是 Java 安全管理工具之一,它主要用于显示本地凭据缓存和密钥表中的条目。
在使用 kinit 工具修改凭据缓存或使用 ktab 工具修改密钥表后,可以通过 klist 工具来查看这些更改。其作用是验证对凭据缓存或密钥表所做的修改。
例如:在没有提供任何参数的情况下运行 klist 命令时,它将检索当前登录用户的票证,并显示相关信息,如服务名称、客户端名称和域名、加密类型、票证标志、开始时间和结束时间等。
C:\Users\Administrator>klist 当前登录 ID 是 0:0x112bdd 缓存的票证: (0)
可以在命令行中输入 klist /? 查看命令的帮助文档,如下:
C:\Users\Administrator> klist /? 用法: 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>] [-kdcoptions <options>] [-cacheoptions <options>] add_bind <DOMAIN> <DC> query_bind purge_bind cloud_debug
注意:具体的参数和用法可能会因 Java 版本和操作系统而有所不同。
klist tickets 命令用于列出当前用户的 Kerberos 票证信息。执行该命令后,它通常会显示票证的详细信息,例如票证的服务名称、客户端名称、有效时间范围、加密类型等。例如:
C:\Users\Administrator> klist tickets 当前登录 ID 是 0:0x112bdd 缓存的票证: (0)
注意:具体的输出内容和格式可能会因操作系统、Kerberos 配置以及使用的工具版本而有所不同。
klist purge 命令用于清除当前系统内存中的 Kerberos 票据。Kerberos 票据是用于身份验证和授权的一种凭证。执行该命令后,系统将删除已存储的票据,这可能会导致需要重新进行身份验证才能访问某些需要 Kerberos 认证的资源。例如:
C:\Users\Administrator> klist purge 当前登录 ID 是 0:0x112bdd 删除所有票证: 已清除票证!
klist sessions 命令用于列出当前计算机上的所有登录会话信息。执行该命令后,它将显示每个会话的相关详细信息,例如会话 ID(LogonID)等。如下:
C:\Users\Administrator> klist sessions 当前登录 ID 是 0:0x112bdd [0] 会话 0 0:0x281dc4 IIS APPPOOL\wwwroot Negotiate:Service [1] 会话 1 0:0x112bdd HXSTRIVE\Administrator NTLM:Interactive [2] 会话 0 0:0x3e3 NT AUTHORITY\IUSR Negotiate:Service [3] 会话 1 0:0x1a34e Window Manager\DWM-1 Negotiate:Interactive [4] 会话 1 0:0x1a32c Window Manager\DWM-1 Negotiate:Interactive [5] 会话 0 0:0x3e5 NT AUTHORITY\LOCAL SERVICE Negotiate:Service [6] 会话 1 0:0x1567b Font Driver Host\UMFD-1 Negotiate:Interactive [7] 会话 0 0:0x3e4 WorkGroup\HXSTRIVE$ Negotiate:Service [8] 会话 0 0:0xd45c Font Driver Host\UMFD-0 Negotiate:Interactive [9] 会话 0 0:0xd02f \ NTLM:(0) [10] 会话 0 0:0x3e7 WorkGroup\HXSTRIVE$ NTLM:(0)
如果想查看特定会话的信息,可以在命令中指定会话 ID,如“klist sessions -LogonID <具体的会话 ID>”,如下:
C:\Users\Administrator> klist sessions -lh 1 当前登录 ID 是 0:0x112bdd 目标登录 ID 是 0x1:0 调用登录 ID (0x1:0)上的 API LsaGetLogonSessionData 时出错: 0x520 klist 失败,原因为 0xc000005f/-1073741729: 指定的登录会话不存在。可能已被终止。
klist query_bind 命令用于显示 Kerberos 已联系的每个域的缓存首选域控制器列表。执行该命令后,它将列出 Kerberos 在与各个域进行交互时所缓存的首选域控制器的相关信息。例如:
C:\Users\Administrator> klist query_bind 当前登录 ID 是 0:0x112bdd 已成功查询 kerberos KDC 绑定缓存。 KDC 绑定缓存项: (0)
klist cloud_debug 命令通常用于显示与云Kerberos信任相关的调试信息。
执行该命令后,它可能会列出一些有关Kerberos票证(Ticket)的详细信息,例如可用的云主要票证(Cloud Primary TGT)等。通过查看这些信息,可以帮助确定云Kerberos信任的配置是否成功,以及是否能够获取到用于访问特定资源的有效票证。例如:
C:\Users\Administrator> klist cloud_debug 当前登录 ID 是 0:0x112bdd Cloud Kerberos Debug info: Cloud Kerberos enabled by policy: 0 AS_REP callback received: 0 AS_REP callback used: 0 Cloud Referral TGT present in cache: 0 SPN oracle configured: 0 KDC proxy present in cache: 0 Public Key Credential Present: 0 Password-derived Keys Present: 0 Plaintext Password Present: 0 AS_REP Credential Type: 0 CloudAP call failed with 0xc000005f klist 失败,原因为 0xc000005f/-1073741729: 指定的登录会话不存在。可能已被终止。
klist purge_bind 命令用于删除指定域的缓存首选域控制器。执行该命令后,系统将清除与指定域相关的首选域控制器的缓存信息。这可能会导致在下次进行与该域的交互时,需要重新发现和建立与域控制器的连接。例如:
C:\Users\Administrator> klist purge_bind 当前登录 ID 是 0:0x112bdd 已成功清除 kerberos KDC 绑定缓存。