Windows 用于列出无法更改密码的用户和密码过期设置为从不的用户的命令
Windows Command To List Users That Are Not Able To Change Their Password and Users That Have Password Expire Set To Never
使用 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
(又名 $_
)。虽然你可以。
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
#>
使用 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
(又名 $_
)。虽然你可以。
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
#>