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

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

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

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

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

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

有帮助吗?

解决方案

我不相信这个值存储在客户端计算机上。它存储在 Active Directory 中,您可以使用以下命令获取不活动计算机的列表 查询 工具。

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top