确定电脑上一次通电

有一种方法可以通过在计算机运行时查询Active Directory来确定吗? 我想要一个快速的方法来排除已经closures(例如)7天的域中的计算机。 LastLogonTime字段没有帮助,因为这与用户login无关。

不,没有一种方法可以仅仅使用存储在Active Directory中的信息来了解上次启动计算机的时间。 计算机对象的LastLogonTimestamp由计算机更新,所以我不确定你最后一句话的含义。 但无论如何,这将是9 – 14天。 每次计算机login到域时,该属性都不会更新。 这是这个属性

dsquery computer -inactive 24

正在看。 由于lastLogonTimestamp的内在缺乏精确性,粒度在几周内。

您可以重新configurationAD以更新更新lastLogonTimestamp属性,这将导致稍微更准确的值,但这仍然不能帮助您计算已启动但未连接到networking的计算机,或者如果您需要准确性在不到一天的时间内下来。

http://blogs.technet.com/b/askds/archive/2009/04/15/the-lastlogontimestamp-attribute-what-it-was-designed-for-and-how-it-works.aspx

考虑做一些像在每台计算机上运行的脚本,并查询Win32_OperatingSystem WMI类。 计算机精确的上一次启动时间存储在该WMI类中。

Get-WMIObject -Query "SELECT LastBootUpTime From Win32_OperatingSystem" -ComputerName PC02

虽然我同意瑞安的回答,没有好的方法来做这个与存储在Active Directory中的信息(默认情况下)…

如果您绝对必须拥有Active Directory中的某些内容,那么最好的办法是设置一个机器启动脚本(通过GPO部署)来更改计算机对象的某个属性。 给description属性附加一个时间戳是一个经典的,但是如果你正在寻找一个使用的属性( departmentdepartmentNumberemployeeIDemployeeNumber等),那么通常会有很多未使用的属性(不需要附加到描述中)属性。

或者,我已经看到这种types的东西,通过将文本或.csv文件中的机器信息(包括启动时间)转储到Everyone都有写权限的共享中,然后pipe理员用脚本和/或眼球来parsing。 我更喜欢AD属性方法,但都是有效的。