windows - 用于列出无法更改密码的用户和密码过期设置为从不的用户的 Windows 命令
问题描述
使用 PowerShell,我想显示无法更改自己密码的用户。
如果我运行以下命令:
get-localuser | select Name,UserMayChangePassword
我看到这个输出:
Name UserMayChangePassword
---- ---------------------
Administrator True
Test False
我制作了下面的命令来捕获设置为 False 的用户,但是,这似乎不起作用:
get-localuser | Where-Object { $_.UserMayChangePassword -eq "False" }
另外,我还想检查没有密码到期的用户,到目前为止,我能够制作这个不起作用的命令:
get-localuser | Where-Object { $_.PasswordExpires -ne ''}
解决方案
你是这个意思...
Get-LocalUser |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
Administrator True
DefaultAccount True
Guest False
TestUser False 5/20/2021 11:43:52 AM
WDAGUtilityAccount True 5/19/2021 12:49:19 PM
#>
Get-LocalUser |
Where-Object -Property UserMayChangePassword -ne 'True' |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
Guest False
TestUser False 5/20/2021 11:43:52 AM
#>
Get-LocalUser |
Where-Object -Property PasswordExpires -NE $null |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
TestUser False 5/20/2021 11:43:52 AM
WDAGUtilityAccount True 5/19/2021 12:49:19 PM
#>
Get-LocalUser |
Where-Object -Property PasswordExpires -EQ $null |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
Administrator True
DefaultAccount True
Guest False
#>
对于您的直接用例,您实际上并不需要大括号{}
或$PSItem
(aka $_
)。虽然你可以。
Get-LocalUser |
Where-Object {$_.UserMayChangePassword -eq 'True'} |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
Administrator True
DefaultAccount True
WDAGUtilityAccount True 5/19/2021 12:49:19 PM
#>
Get-LocalUser |
Where-Object {$_.UserMayChangePassword -ne 'True'} |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
Guest False
TestUser False 5/20/2021 11:43:52 AM
#>
Get-LocalUser |
Where-Object {$_.PasswordExpires -ne $null} |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
TestUser False 5/20/2021 11:43:52 AM
WDAGUtilityAccount True 5/19/2021 12:49:19 PM
#>
Get-LocalUser |
Where-Object {$_.PasswordExpires -eq $null} |
Select-Object -Property Name, UserMayChangePassword, PasswordExpires
# Results
<#
Name UserMayChangePassword PasswordExpires
---- --------------------- ---------------
Administrator True
DefaultAccount True
Guest False
#>
推荐阅读
- javascript - 如何通过客户端上的代码拆分正确地对反应应用程序进行水合
- python - 显示 4 个表格,但最后一个表格不起作用
- html - 如何构建可扩展卡片的基于列的布局(跨越 <=tablet 中的两列)?HTML、CSS、jQuery
- c++ - 程序只需要 1 个字母输入并退出,而剩余的代码未执行,为什么?
- erlang - Erlang 文件可以为导入的 Erlang 文件创建 .beam 文件吗?
- c# - 找到人口最多地区的中点
- java - 如何用JNI实例化共享指针来调用java实现
- java - Buggy Jar 的类加载问题
- javascript - 我有多个图像路径的数组,我想使用循环打印图像
- excel - 您可以使用 XLOOKUP 返回像 VLOOKUP 这样的相对列引用吗?