在Active Directory中更改LastLogonDate属性

时间:2017-01-25 18:45:26

标签: powershell active-directory

我正在编写一个脚本来禁用旧的工作站对象(由于我的系统中有一些独特的东西,我必须重新制作轮子)。我想用已知的LastLogonDate制作一些测试计算机对象来验证我的脚本。

我怎样才能,最好只使用PowerShell,将LastLogonDate属性设置为我想要的属性?我更喜欢它在PowerShell中,所以我可以包含必要的更改,以便在运行时自行测试我的代码。我也严格限制可以在网络上放置哪些程序。

我还没有找到纯粹的PowerShell解决方案,TechNet表明Set-ADComputer没有这个功能。无奈之下,我尝试在域控制器上运行ADSIedit来设置LastLogon和LastLogonTimestamp,但得到错误0x209a(属性由安全帐户管理器拥有)。

最糟糕的情况是,我可以使用以前禁用的工作站,但这种解决方法会让我的安全人员感到非常沮丧。

谢谢。

修改

如果我能弄清楚如何解决“错误0x209a(属性由安全帐户管理器拥有”问题,我想我可以使用以下PowerShell来设置它:

Get-ADComputer -Identity <ComputerName> -Server <DomainController> | Set-ADObject -DisplayName <ComputerName> -Replace @{LastLogon=<NewTimeStamp>}

其中NewTimeStamp是您要设置的日期的滴答计数。

1 个答案:

答案 0 :(得分:0)

不要修改! LastLogonLastLogonTimeStamp都是系统拥有的属性,即使您找到了绕过限制的方法,也很可能会破坏对象的复制。

禁用和移动旧的未使用的计算机对象没有任何问题。但是,如果您通过执行不受支持的修改来破坏AD,您的安全人员会讨厌您。

LastLogonDate是由AD模块创建的虚拟/计算属性,用于轻松访问LastLogonTimeStamp - 属性的日期时间转换属性。