列出所有用户在非域系统上的最后一次Windows密码更改

对于连接到AD域控制器的系统,我已经find了这个问题的答案。 但是,这个问题适用于无法连接到域控制器的独立系统。 基本上,气隙系统。

简短而又甜蜜:有没有办法列出每个用户最后一次将非密码空间系统(Windows 7或10)的Windows密码更改为batch file或PowerShell脚本?

我知道,净用户{用户名} | find/我“密码上次设置”将一次为他们做。 然而,每台机器运行多次会很繁琐,而且我们有超过60个这种types的系统。 所以我一直在寻找一种方法来做到这一点,如果可能的话。

作为一个警告,我们没有select在PowerShell中为此安装activedirectory模块。 另外,由于大多数系统都是Windows 7,我们无法访问Windows 10中可用的Bash命令行工具。

任何和所有这方面的帮助表示赞赏。

以下是使用ADSI WinNT提供程序的一种方法:

 $computerName = [Net.Dns]::GetHostName() # ie, local computer $computer = [ADSI] "WinNT://$computerName,Computer" $childObjects = $computer.Children foreach ( $childObject in $childObjects ) { if ( $childObject.Class -eq "User" ) { if ( $childObject.PasswordAge[0] -gt 0 ) { $pwdLastSet = (Get-Date).AddSeconds(-$childObject.PasswordAge[0]) } else { $pwdLastSet = $null } $childObject | Select-Object ` @{Name="AdsPath"; Expression={$_.AdsPath}}, @{Name="PasswordLastSet"; Expression={$pwdLastSet}} } }