我的应用程序如何从Windows获取有效的“上次连接到域的时间”时间戳,即使该应用程序处于脱机运行状态?
背景:我正在编写一个应用程序,该应用程序可以在整个公司的多台客户端机器上运行。所有这些客户端计算机都位于我公司实施的其中一个AD域上。如果客户端机器在一段时间内没有与AD通信,则此应用程序需要采取某些措施。
一个例子可能是运行此应用程序的机器被盗。例如,4周后,应用程序拒绝工作,因为它检测到机器已4周未与其AD域通信。
请注意,这不能绑定到用户帐户,因为应用程序可能作为本地服务帐户运行。这是我感兴趣的计算机域关系。
我曾考虑过并拒绝使用WinNT://<domain>/<machine>$,user,因为它在脱机时不起作用。此外,任何LDAP://...查找都不会在脱机状态下工作。
我还考虑过并拒绝按天安排此查询,并将时间戳存储在注册表或文件中。这个解决方案需要太多的设置和编码。此外,这个值必须由Windows存储在本地。
发布于 2008-09-15 15:33:30
我不相信这个值存储在客户机上。它存储在Active Directory中,您可以使用Dsquery工具获取非活动计算机的列表。
最好的选择是让您的程序执行一个简单的测试,例如连接到DC,然后存储该操作的时间戳。
发布于 2008-09-15 15:15:49
我不认为客户端机器会存储上一次与AD通信的时间戳。此信息存储在active directory本身(即,在DC上)
一旦用户登录到Windows机器,凭据就会被缓存。如果该计算机与网络断开连接,则凭据将永远有效。您可以使用组策略关闭此功能,以便计算机不缓存任何凭据。
https://stackoverflow.com/questions/63345
复制相似问题