【问题标题】:How to fetch the AD users whose account is going to disable in next X days如何获取帐户将在未来 X 天内禁用的 AD 用户
【发布时间】:2022-10-18 13:58:14
【问题描述】:

我尝试使用以下脚本从其帐户将在接下来的 X 天内被禁用的 AD 用户详细信息中获取,但我没有得到预期的输出。

$Users = Get-ADUser -SearchBase "OU=abc,DC=abc,DC=xyz,DC=abcxyz,DC=com"

#-Filter (-not (extensionAttribute14 -Like "*"))

-and (extensionAttribute15 -eq ("PRD-MFA-TAG"){Enabled -eq $true} )
-Properties 'saMAccountName'

# $Users. 'saMAccountName' | select -First 1
# $[datetime]::FromFileTime($Users[0].'saMAccountName')


$Expiring = foreach ($User in $Users) {
    $Expiry = [datetime]::FromFileTime($User. 'saMAccountName')
              $TimeToGo = New-TimeSpan -Start (Get-Date) -End $Expiry            

              if ($TimeToGo.Days -le 14) {

                  [PSCustomObject] @{

                                 Name = $User.Name

                                           SamAccountName = $User.SamAccountName

                                           ExpiryDate = $Expiry
      }  
   }
}
$Expiring | Export-CSV -Path E:\Reports\DpassUsers.CSV -NoTypeInformation

【问题讨论】:

  • 您应该删除在对象及其属性之间添加的空格。另外,您为什么认为可以从用户 SamAccountName 属性中获取 DateTime ?
  • 我试过但不确定这是对还是错,需要一些脚本帮助来实现输出
  • “将要禁用”是什么意思-您的意思是密码已过期,必须由用户更改,或者在帐户上设置了“帐户过期”选项?
  • 是的,是的,密码即将过期,您能否帮我提供一些示例脚本来实现我的目标。

标签: powershell active-directory


【解决方案1】:
# searches for accounts that are expiring in 14 days
Search-ADAccount -AccountExpiring -TimeSpan 14.00:00:00 -SearchBase "OU=abc,DC=abc,DC=xyz,DC=abcxyz,DC=com" | Select-Object Name, SamAccountName, AccountExpirationDate  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多