1

我的应用程序如何从 Windows 获取有效的“上次连接到域”时间戳,即使应用程序脱机运行?

背景:我正在编写一个在整个公司的多台客户端机器上运行的应用程序。所有这些客户端机器都在我公司实施的 AD 域之一上。如果客户端机器有一段时间没有和AD通信,这个应用程序需要采取一定的措施。

一个例子可能是运行此应用程序的机器被盗。例如 4 周后,应用程序拒绝工作,因为它检测到机器已经 4 周没有与它的 AD 域通信。

请注意,这不能与用户帐户绑定,因为该应用程序可能作为本地服务帐户运行。这是我感兴趣的计算机域关系。

我已经考虑并拒绝使用WinNT://<domain>/<machine>$,user,因为它在离线时不起作用。此外,LDAP://...离线时任何查找都不起作用。

我还考虑并拒绝每天安排此查询并将时间戳存储在注册表或文件中。这个解决方案需要太多的设置和编码。除了这个值必须由 Windows 本地存储。

4

2 回答 2

1

我不相信这个值存储在客户端机器上。它存储在 Active Directory 中,您可以使用Dsquery工具获取非活动机器的列表。

最好的选择是让您的程序进行简单的测试,例如连接到 DC,然后存储该操作的时间戳。

于 2008-09-15T15:33:29.863 回答
0

恕我直言,我认为客户端机器不会存储它上次与 AD 通信的时间戳。此信息存储在活动目录本身(即在 DC 上)

一旦用户登录到 Windows 机器,凭据就会被缓存。如果该机器与网络断开连接,则凭据将永远存在。您可以使用组策略关闭此功能,以便机器不会缓存任何凭据。

于 2008-09-15T15:15:48.800 回答