【问题标题】:Account expiry dates or account Never expire for all AD users所有 AD 用户的帐户到期日期或帐户永不过期
【发布时间】:2016-08-15 09:37:35
【问题描述】:

当我运行下面的命令时,得到expiration_date 是空白的。

是否可以在expiration_date 中获得“永不过期”而不是空白?

Import-Module ActiveDirectory
$Groups = Get-ADGroup -filter {Name -like "SSL_VPN_Users" } | Select-Object Name
ForEach ($Group in $Groups) {
  Get-ADGroupMember -identity $($group.name) -recursive | 
    Get-ADUser -Properties samaccountname,mail,AccountExpires | 
    select samaccountname,mail,@{l="expiration_date";e={[datetime]::fromfiletime($_.accountexpires)}} | 
    Export-csv -path C:\SSLVPN\SSL_VPN_Users.csv -NoTypeInformation
}

【问题讨论】:

  • Get-ADUser -Properties AccountExpirationDate,不是AccountExpires
  • 就像你说的我已经改变了它,但没有运气

标签: windows powershell active-directory


【解决方案1】:

问题可能是当帐户永不过期时,AccountExpires 的值是最大值。 int64 值在调用 [datetime]::FromFileTime 时会产生 ArgumentOutOfRangeException

因此请尝试以下方法 - 我引入了帮助函数 accountExpiresToString 以提高表达式脚本块的可读性,但如果您愿意,您可以将函数的代码直接打包到脚本块中。

function accountExpiresToString($accountExpires) {
    if (($_.AccountExpires -eq 0) -or 
        ($_.AccountExpires -eq [int64]::MaxValue)) {
        "Never expires"
    }
    else {
        [datetime]::fromfiletime($accountExpires)
    }
}

Import-Module ActiveDirectory
...
ForEach ($Group in $Groups) {
  Get-ADGroupMember ... | 
    Get-ADUser -Properties ...,AccountExpires | 
    Select-Object @{l="expiration_date";e={ accountExpiresToString($_.AccountExpires)}} | 
    Export-Csv ...
}

更新:如果有兴趣,这里有一个 page on MSDN 描述 0 和 0x7FFFFFFFFFFFFFFF ([int64]::MaxValue) 表示一个永不过期的帐户。

【讨论】:

  • 感谢 expiration_date 以“永不过期”的形式出现,但是如果我运行代码时,对于某些用户来说,我仍然有“空白”而不是“永不过期”,它以“01.01.1601 02:00:00”的形式出现” 而不是某些用户的“空白” 有什么问题?
  • 好像0和[int64]::MaxValue都用来表示一个账号永不过期——看我的更新
  • 尝试运行时出现错误,例如您必须在“-”运算符的右侧提供值表达式。 At line:2 char:27 表达式或语句中出现意外标记“in”。
  • 我猜您使用的是旧版本的 PowerShell(我猜是 2.0)-我更新了答案以将 -in 运算符替换为 -or。请重试
  • 好的,但我看不到某些用户的帐户到期日期是空白字段。如果我运行我的代码,我可以看到帐户到期日期,因为某些用户没有设置永不过期
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-08
相关资源
最近更新 更多