如何清除缓存的域凭据?

如何清除缓存的域凭据?

有关的: 如何在 Windows 7/2k8 中启用无线域身份验证?

为了测试我在上述问题中尝试设置的通过无线连接登录域的功能,我需要一个尚未在本地系统上缓存域凭据的帐户。不幸的是,我办公室里只有少数人可以帮助我测试这一点,即使这样,我也不想为此麻烦他们。因此,我希望能够在每次登录后清除我自己的缓存凭据。

如何清除本地缓存,同时仍保留将来缓存凭据的能力?

答案1

David Yu 的回答基本符合目标,但还有一种方法可以做到这一点,而无需直接编辑注册表。不过,这只有在设置未通过 GPO 配置时才有效。

首先,我想指出缓存的凭据数据存储在哪里。这将有助于演示(并且,为了故障排除,验证)配置更改的效果。

警告: 我在网上的几个地方找到了这些信息,其中大部分都推荐反对手动修改这些值。

存储缓存域登录信息的注册表项即使对管理员也是隐藏的。只有 SYSTEM 帐户才能访问它。因此,要查看它,您需要一个类似psexec(可从 Microsoft 获取,但默认情况下未安装)可让您regedit以 SYSTEM 身份运行。执行此操作的命令行(假设已安装,并且位于您的 中%PATH%)是:

psexec -d -i -s regedit

进入后,导航至HKLM\SECURITY\Cache\。在这里,您应该会看到几个二进制值。对于每个可用于缓存凭据的插槽,将有一个名为 NL$Control 的值,其他名为 NL$## 的值。(默认值为 10)

服务器 2003 上的 HKLM\SECURITY\Cache

再次强调,您不应手动修改或删除此键或其值。

现在我们知道了数据缓存在哪里,并且我们不应该碰那里,我们该如何清除它?

再次,David Yu 的回答将向您指出正确的注册表项。但是,如果您不想直接修改注册表,还有另一种方法可以通过本地安全策略进行修改。

secpol.msc

在安全设置树中,导航到Local Policies\Security Options。这里将有一个名为 的策略Interactive logon: Number of previous logons to cache (in case domain controller is not available)

Server 2003 上的本地安全策略

默认情况下,此设置为10 logons。要清除缓存,请将其设置为零,然后单击“确定”。在 Server 2008 上,这将立即生效。对于 Server 2003,您需要重新启动。可以看到影响,其中HKLM\SECURITY\Cache\不再有任何 NL$## 值。

清除 Server 2003 上的凭据缓存

要重新启用凭据缓存,请编辑相同的策略以反映您的首选值,然后单击“确定”。同样,如果您使用的是 Server 2008,这将立即生效。Server 2003 将需要重新启动。请注意,如果您在 Server 2008 上执行此操作并且尚未注销或重新启动,则可以看到缓存槽已恢复,但其中没有实际数据。

Server 2008 上的凭据缓存槽为空

如果您只想对需要暂时禁用凭据缓存的任何功能进行快速、一次性检查,则在 Server 2008 中无需注销或重新启动即可执行此操作,这很有用。它还有助于确保您不会忘记在下次登录后恢复更改。

答案2

您可以修改系统的注册表以禁用缓存的登录凭据。将注册表项设置为 0。每次更改后都需要重新启动。这还假设您没有设置此键的 GPO。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\当前版本\Winlogon\

值名称:CachedLogonsCount

数据类型: REG_SZ

值: 0 - 50

答案3

修改存储的缓存凭据的方式(奇怪的是)是通过修改安全选项\交互式登录:通过组策略编辑器(gpedit)修改缓存策略的先前登录次数

答案4

删除存储凭据的最便捷方法是运行 MSTSC 并输入缓存的终端服务器的名称或 IP 地址。如果它被缓存为完全限定域名,那么这就是您必须输入的内容,它可能会为您填写该字段以及您的域\用户名。然后单击选项。如果凭据已存储,您可以编辑或删除它们。

为了防止系统缓存凭据,请使用记事本编辑 RDP 文件并将 PromptCredentialOnce:i:1 参数更改为 PromptCredentialOnce:i:0

相关内容