【问题标题】:Windows Command To List Users That Are Not Able To Change Their Password and Users That Have Password Expire Set To Never列出无法更改密码的用户和密码过期设置为从不的用户的 Windows 命令
【发布时间】:2021-07-04 14:22:13
【问题描述】:

使用 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 ''}

【问题讨论】:

    标签: windows powershell command


    【解决方案1】:

    你的意思是……

    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  
    #>              
    

    【讨论】:

    • 不用担心。很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    相关资源
    最近更新 更多