【问题标题】:Windows Command To List Expired User Accounts Only仅列出过期用户帐户的 Windows 命令
【发布时间】:2021-07-04 12:20:15
【问题描述】:

使用 PowerShell,我想仅列出已过期的用户帐户。

我制作了下面的命令,它列出了我机器上的所有用户帐户,并显示了帐户过期列:

get-localuser  | select Name, AccountExpires

示例输出:

Name           AccountExpires
----           --------------
Administrator    
Guest           
test           09/05/2021 00:00:00

如何只列出过期帐户?

【问题讨论】:

    标签: windows powershell command


    【解决方案1】:

    我主要在域环境中工作,但看起来您可以简单地查看 AccountExpires 属性并将其与当前日期进行比较。像下面这样的东西可能会起作用:

    $Now = Get-Date
    Get-LocalUser  | Where-Object{ $_.AccountExpires -le $Now }
    

    之后你可以Select任何你喜欢的东西。

    【讨论】:

    • 你太棒了!我修改了命令,使其全部集中在一行中:get-localuser | Where-Object { $_.AccountExpires -le (Get-Date)} 效果很好。
    • NP。单线很好。我没有走那条路,因为每次比较的日期时间都会略有变化。此外,您将反复调用Get-Date。鉴于这些是本地帐户,这可能没什么大不了的,但对于较大的集合,您可能会遇到性能问题以及用于比较的时间之间的差距扩大。无论如何,我很高兴它起作用了。
    • 感谢您的反馈,我会考虑到这一点!
    • 是的,您可以使用 -and 逻辑运算符将条件添加到 Where{} 子句。查看about_comparisonabout_operators 的逻辑运算符部分。我建议使用 -not* 之类的 -ne-notlike-notmatch 等。b4 使用逻辑运算符 -not。注意:表达式可以任意复杂。
    • 很好地将 $null 放在比较的左侧。这是避免 PoSh 类型转换系统中的一些陷阱的最佳实践。
    猜你喜欢
    • 2021-07-05
    • 2021-07-17
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2021-06-11
    • 2021-07-16
    相关资源
    最近更新 更多