Fru*_*guy 6 powershell active-directory
我正在运行一个非常短的脚本来简单地打印出所有用户及其上次登录时间:
get-aduser -filter * -property * |ft name, lastlogondate
我注意到只有少数用户有登录日期值,而绝大多数是空白的。这些是每天登录的活跃用户。我的理解是 lastlogondate 是某种 powershell 别名,可将“lastlogontimestamp”用户属性值从大整数转换为可读日期。过去我在这个查询上取得了成功,而且它对某些用户来说也很好用。我进入了 ADSIedit,发现所有用户在 lastlogontimestamp 中都有一个值。尽管如此,如果我直接查询该值,对于每个有问题的用户,我仍然在 PS 中得到空白:
get-aduser -filter * -property * |ft name, lastlogontimestamp
此行为适用于域中的所有 3 个 DC。我很困惑。这是一个更大的脚本的一部分,该脚本报告并处理登录时间不超过 X 天并且每季度运行良好的用户帐户,直到今天。在今天运行它时,我注意到很少有用户在报告中显示为陈旧,因此在故障排除中我包含了最基本的查询以查看它会做什么。powershell 中返回的空白时间戳肯定是错误的,为什么很少有用户在我的报告中显示为陈旧(脚本不包括空白登录值),但我不知道为什么 PS 中的值是空白而 ADSI 编辑器中的值对于特定用户肯定是填充的。这也适用于其他几个属性,例如“logoncount”,
此示例中的所有 3 个 DC 都是 2012 R2,我注意到这种行为也发生在我们拥有的较小混合域(2008 和 2012 DC)中的用户帐户上,但没有引起注意,因为几乎没有任何用户驻留在那里,所以它不是那么重要重点。
另一件重要的事情是,如果我针对计算机帐户 Get-ADcomputer 而不是 Get-ADuser 运行此 PS 命令,我没有此类问题,所有计算机都正确报告 lastlogondate,没有空格。
在我致电 Microsoft 之前有什么帮助吗?
阿迪是对的,这是某种权限问题。实际上,当一位同事运行查询并得到正确的结果时,我刚刚解决了这个问题,但是他使用了自己的登录帐户。另外,他“以管理员身份运行”来提升 PS 控制台。当我这样做时,它工作正常。我不知道我过去怎么从来不需要这样做,而且我是域管理员,因此是 DC 上的本地管理员,但无论如何。现在,它可以使用提升的 PS 提示符运行。根据记录,我使用常规使用帐户进入 ADSIedit,并且没有启动提升的会话......奇怪,但我会接受。
归档时间: |
|
查看次数: |
17696 次 |
最近记录: |