【发布时间】:2015-01-02 15:22:35
【问题描述】:
我已经使用 Quest 的 AD 工具 GET-QADUSER 设置了我的脚本以禁用我的 Win 2003 AD 服务器中的非活动用户,现在我要将 AD 迁移到 Win 2008 R2。由于有 Active Directory 模块并且Quest's tool 不再免费下载(是吗?),我将迁移到 GET-ADUSER。
我正在转换:
Foreach ($ou in $searchBase) {
#$inactUsr += @(Get-QADUser -SearchRoot $ou -Enabled -PasswordNeverExpires:$false -NotLoggedOnFor $inactiveDays -CreatedBefore $creationCutoff -SizeLimit $sizeLimit | Select-Object Name,SamAccountName,LastLogonTimeStamp,Description,passwordneverexpires,canonicalName | Sort-Object Name)
}
到:
$inactUsr += @(Get-ADUser -SearchRoot $ou -Filter 'enabled -eq $true -and PasswordNeverExpires -eq $False' -Properties Name,SamAccountName,LastLogonTimeStamp,Description,passwordneverexpires,canonicalName | Select Name,SamAccountName,@{N='LastLogonTimeStamp'; E={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}},Description,passwordneverexpires,canonicalName | Sort Name)
我快到了,只留下 -NotLogonFor(选择在某些日子未登录的用户)和 -CreatedBefore(为新创建的 ID 提供宽限期)。我想选择 ID NotLogon 30 天,不希望 ID 创建时间少于 30 天。
如果有人可以让我知道是否有内置属性或任何手动方法来实现这一点,不胜感激。
编辑: 我通过以下方式解决了 CreatedBefore:
$inactUsrdraft += @(Get-ADUser -SearchBase $ou -Filter 'enabled -eq $true -and PasswordNeverExpires -eq $False -and whenCreated -le $CreationCutOff' -Properties Name,SamAccountName,LastLogonTimeStamp,Description,passwordneverexpires,canonicalName | Select Name,SamAccountName,@{N='LastLogonTimeStamp'; E={[DateTime]::FromFileTime($_.LastLogonTimeStamp)}},Description,passwordneverexpires,canonicalName | Sort Name)
:)
现在我只需要过滤不登录超过 30 天的 ID。 任何帮助表示赞赏。
【问题讨论】:
标签: powershell active-directory