0

我的公司要求我为他们构建一些 .NET 软件(基本上是一个健康检查客户端,它作为我们每台计算机上的服务,并将加密的数据报告回服务器,然后将其上传到 SQL,可用于每周报告、Web 控制台等)。程序基本上完成了——除了我认为最简单的一件事。这是我遇到的问题:

我们需要的最后一条信息是客户端上次使用组策略签入的时间。应该很容易……对吧?运行 gpresult 并从中获取日期和时间!我为此编写了代码,当我从自己的帐户运行它时,它可以完美运行。问题是这将从服务中执行;这意味着它在部署时必须作为“本地系统”帐户运行。当它从“本地系统”帐户作为服务执行时,它会出错,因为组策略(显然)不适用于本地系统帐户。我尝试将范围限制在计算机上,但它仍然没有给我任何东西。

我还尝试查找 gpupdate 在签入时更改的文件,以便我可以以不同的方式进行处理并改为分析这些文件(这就是我对我们正在检查的其他程序所做的),但是所以到目前为止,当计算机运行 gpupdate 时,我还没有找到任何持续变化的东西。

关于我可以尝试的任何建议?我有点让自己发疯(短途旅行),我试过搜索谷歌和论坛没有任何结果。

在此先感谢您的帮助!

4

1 回答 1

0

我找到了部分答案。GP 似乎存储了一个注册表项,告诉它策略是否过期(默认是 90 分钟签入,偏移量为 0-30 分钟)。这足以让我想做的事情发挥作用(当然,我仍然会喜欢约会的“冗长”[我可以编一个词吗?],但这暂时有效)。

对于将来查看此内容的任何人,关键是:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\PolicyOverdue (DWORD)。

现在我将开始使用它,但我仍然很想听听是否有人对我如何能够让 gpresponse 工作或以其他方式获得最后一次 GP 更新日期的建议。:)

谢谢!

于 2016-05-27T17:03:29.783 回答