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

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

作者:精品下载站 日期:2024-12-14 20:11:27 浏览:16 分类:玩电脑

无需重新启动/注销即可刷新 AD 组成员资格


将计算机或用户帐户添加到 Active Directory 安全组后,不会立即应用新的访问权限或新的 GPO。要更新组成员身份并应用分配的权限或组策略,您需要重新启动计算机或执行注销和登录(对于用户)。这是因为 AD 组成员身份仅在发出 Kerberos 票证时才会更新,这会在系统启动或用户登录时进行身份验证时发生。

如果您无法立即重新启动计算机或注销用户,您可以使用以下命令更新帐户的 AD 组成员身份:

klist.exe

工具。该实用程序允许您重置和续订计算机或用户的 Kerberos 票证。

注意。 本文中描述的方法仅适用于支持 Kerberos 身份验证的网络服务。仅适用于 NTLM 身份验证的服务仍然需要用户注销+登录或 Windows 重新启动。

您可以使用以下命令列出当前用户所属的域安全组:

whoami /groups

或 GP 结果:

gpresult /r /scope user 

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

用户所属的组列表显示在“该用户是以下安全组的一部分”部分中。

无需重新启动即可更新计算机组成员身份和 Kerberos 票证

您可以使用以下命令列出该计算机所属的安全组

gpresult /r /scope computer

计算机属于以下安全组

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

您可以列出计算机收到的缓存的 Kerberos 票证,以及收到票证的日期和下次续订的时间。

klist.exe -li 0x3e7

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

注意。 0x3e7是一个特殊标识符,指向本地计算机(本地系统)的会话。

现在将计算机添加到 AD 安全组(使用 ADUC 管理单元或使用 PowerShell:

Add-AdGroupMember -Identity grAVExclusionPC -Members wks-mns21$

要清除计算机的 Kerberos 票证缓存并更新计算机的 AD 组成员身份,请运行命令(适用于 Windows 7 和 Windows Server 2008R2)

klist -lh 0 -li 0x3e7 purge

或者对于 Windows 11/10/8 和 Windows Server 2022/2019/2016:

klist -li 0x3e7 purge

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

Deleting all tickets:
Ticket(s) purged!

使用以下命令更新组策略设置

gpupdate /force

命令。通过安全过滤分配给 AD 组的所有组策略都将应用于计算机,而无需重新启动。

您可以使用以下命令检查计算机何时收到新的 Kerberos 票证:

klist -li 0x3e7 tgt

运行命令并更新策略后(您可以使用以下命令更新策略)

gpupdate /force

命令),通过安全过滤分配给 AD 组的所有组策略都将应用于计算机。

如果您的域中配置了 LSA 访问限制策略(例如,限制使用 SeDebugPrivilege 的调试程序策略),如果您运行

klist -li 0: 0x3e7 purge

命令,您可能会收到错误:“调用 API LsaCallAuthenticationPackage 时出错”:

Current LogonId is 0:0x3d2de2
Targeted LogonId is 0:0x3e7
*** You must run this tool while being elevated, and you must have TCB or be a local admin.***
klist failed with 0xc0000001/-1073741823: {Operation Failed}
The requested operation was unsuccessful.

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

在这种情况下,您需要代表 NT AUTHORITY\SYSTEM 运行命令行,并在该控制台中清除计算机 Kerberos 票证缓存:

psexec -s -i -d cmd.exe

- 使用 psexec.exe 工具代表本地系统运行 cmd

klist purge

- 重置电脑票

gpupdate /force

- 更新 GPO

这种更新计算机组成员身份的方法是更新通过 VPN 连接到网络的客户端上的 GPO 设置的唯一可行选项,其中用户使用缓存的域凭据登录。

无需注销即可重新加载用户组成员资格

另一个命令用于更新用户会话中分配的 Active Directory 安全组。例如,您已将用户添加到授予共享文件夹访问权限的安全组。用户如果不注销并再次登录,将无法访问此网络文件夹。

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

如果要更新为该用户分配的安全组列表,则必须重置该用户的 Kerberos 票证缓存。在用户会话中打开非特权命令提示符(不要在管理员模式下运行 cmd)。运行命令:

klist purge
Current LogonId is 0:0x5e3d69
Deleting all tickets:
Ticket(s) purged!

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

为了查看更新的组列表,您需要使用 runas 打开新的命令提示符(以便使用新的安全令牌创建新进程)。

列出用户的组:

whoami /groups

在远程桌面服务 (RDS) 环境中,您可以使用以下 PowerShell 语句一次性重置所有远程用户会话的 Kerberos 票证:

Get-WmiObject Win32_LogonSession | Where-Object {$_.AuthenticationPackage -ne 'NTLM'} | ForEach-Object {klist.exe purge -li ([Convert]::ToString($_.LogonId, 16))}

为了使用户能够连接到共享网络文件夹,您必须使用新令牌重新启动文件资源管理器 shell。 (使用新的安全组)

  1. 打开命令提示符;

  2. 结束当前用户的文件资源管理器进程:

    taskkill /f /im explorer.exe
  3. 使用您的帐户凭据启动新的资源管理器进程。您可以使用

    %USERDOMAIN%\%USERNAME%

    环境变量或手动指定域和用户名。例如:

    runas /user:a-d\jsmith explorer.exe
  4. 输入您的账户密码;

    [玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

  5. 然后,文件资源管理器将使用新的访问令牌重新启动,您将能够使用新安全组的权限访问网络文件夹。

在前面的方法中,您必须显式指定用户的密码才能刷新 Windows 文件资源管理器中的安全组。如果这不可能,您可以尝试解决方法。

假设将用户添加到 AD 组以访问文件服务器共享文件夹。尝试通过其短名称(NETBIOS)FQDN((!!!这很重要)来访问它。例如,\lon-fs1.a-d.loc\Install。但不要通过IP地址。

短服务器名称 (NAME) 和完整服务器名称 (FQDN) 使用不同的 CIFS 票证。如果您之前使用 FQDN 访问文件服务器,则在使用 klist purge 命令重置客户端上的票证后,您将能够使用 NAME 访问文件服务器(首次访问 SMB 共享时会发出带有新安全组的新票证)。旧的 FQDN 票证仍在文件资源管理器进程中,并且在重新启动之前不会重置(如上所述)。

此时,将向用户颁发新的 Kerberos 票证。您可以检查您的 TGT 票证是否已更新:

klist tgt

(看

Cached TGT Start Time

价值)

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

已通过 AD 安全组授予访问权限的共享文件夹应在用户不注销的情况下打开。

跑过

whoami /groups

命令以确保用户已收到带有更新的安全组列表的新 TGT,而无需重新登录。

[玩转系统] 无需重新启动/注销即可刷新 AD 组成员资格

我们再次提醒您,这种更新安全组成员身份的方法仅适用于支持 Kerberos 的服务。对于使用 NTLM 身份验证的服务,需要重新启动计算机或用户注销才能更新令牌。

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

取消回复欢迎 发表评论:

关灯