即使应用程序脱机运行,我的应用程序如何从Windows获得有效的“上次连接到域”时间戳?
背景: 我正在编写一个在我公司的多台客户机上运行的应用程序。所有这些客户端计算机都在我公司实施的AD域之一上。如果客户端计算机在一段时间内未与AD通信,则此应用程序需要采取某些措施。
一个例子可能是运行此应用程序的计算机被盗。例如4周后,该应用程序拒绝工作,因为它检测到该机器未与其AD域通信4周。
请注意,这不得绑定到用户帐户,因为该应用可能作为本地服务帐户运行。它是我感兴趣的计算机领域关系。
我已考虑并拒绝使用WinNT://<domain>/<machine>$,user
,因为它在离线时无效。此外,任何LDAP://...
查找都无法在离线时使用。
我还考虑并拒绝每天安排此查询并将时间戳存储在注册表或文件中。该解决方案需要过多的设置和编码。除了这个值,只需要由Windows本地存储。
答案 0 :(得分:1)
我不相信此值存储在客户端计算机上。它存储在Active Directory中,您可以使用Dsquery工具获取非活动计算机列表。
最好的选择是让您的程序进行简单的测试,例如连接到DC,然后存储该操作的时间戳。
答案 1 :(得分:0)
恕我直言,我不认为客户端机器会存储上次与AD通信的时间戳。此信息存储在活动目录本身(即DC上)
用户登录说Windows机器后,将缓存凭据。如果该计算机与网络断开连接,则凭据将永久保留。您可以使用组策略关闭此功能,以便计算机不会缓存任何凭据。