【发布时间】: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