gpt4 book ai didi

PowerShell - 获取 AD 中所有非残疾用户的密码到期时间

转载 作者:行者123 更新时间:2023-12-03 09:36:47 26 4
gpt4 key购买 nike

我的目标是在 powershell 中创建一个对象,显示所有非禁用用户的 AD 显示名称和密码到期日期。
这相对容易。但是,日期是以不可读的格式检索的,因此我转换了日期。

创建包含我想要的数据的两个变量正在起作用。
问题是当我尝试组合这两个变量时,我得到了一个带有两个标题的单个对象,但下面的两列是空的。

我在 Win 7 Pro SP1 上使用 PowerShell V2

任何想法可能是什么问题?

# Get users DisplayName and password expiration time from AD
$msdsComputed = Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Where-Object {$_.DisplayName -ne $null}

# Convert date to human readable format
$ExpiryDate = $msdsComputed | Foreach-Object {
([datetime]::FromFileTime(($_)."msDS-UserPasswordExpiryTimeComputed"))
} | Select-Object "DateTime"



$combined = @{
DisplayName = $msdsComputed.DisplayName
ExpiryDate = $ExpiryDate.DateTime
}
New-Object PSObject -Property $combined | ConvertTo-Csv -NoTypeInformation

最佳答案

这是您的脚本的修订版,没有循环问题:

$reportObject = @()
$userList = Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Where-Object {$_.DisplayName -ne $null}
$userList | %{

$output = "" | Select DisplayName, ExpiryDate
$output.DisplayName = $_.DisplayName
$output.ExpiryDate = ([datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")).DateTime
$reportObject += $output
#Next 2 Lines provide debugging... I'm not sure the date time portion will work without having AD to play with
$output | fl *
([datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")).DateTime
}

$reportObject | Convertto-CSV -NoTypeInformation

关于PowerShell - 获取 AD 中所有非残疾用户的密码到期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11567165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com