当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中获取 Active Directory 中用户的密码策略

作者:精品下载站 日期:2024-12-14 05:31:48 浏览:12 分类:玩电脑

在 PowerShell 中获取 Active Directory 中用户的密码策略


[玩转系统] 在 PowerShell 中获取 Active Directory 中用户的密码策略

使用 Get-ADDefaultDomainPasswordPolicy Cmdlet

Get-ADDefaultDomainPasswordPolicy 用于获取指定域的默认密码策略。我们可以在不同的用例中以不同的方式使用它;下面让我们来了解其中的一些。

使用带有 -Current 参数的 Get-ADDefaultDomainPasswordPolicy cmdlet 来获取 Active Directory 中当前登录用户的默认密码策略。在这里,用户可以是管理员或任何 XYZ 名称。

使用 Get-ADDefaultDomainPasswordPolicy Cmdlet:

Get-ADDefualtDomainPasswordPolicy -Current LoggedOnUser

输出 :

ComplexityEnabled           : True
DistuniguishedName          : DC=maslab,DC=com
LockoutDuration             : 00:30:00
LockoutObservationWindow    : 00:30:00
LockoutThreshold            : 0
MaxPasswordAge              : 42.00:00:00
MinPasswordAge              : 1.00:00:00
MinPasswordLength           : 7
objectClass                 : {domainDNS}
objectGuid                  : 574e7bd0-a042-45d2-8fdd-00ca4cb0a769
PasswordHistoryCount        : 24
ReversibleEncryptionEnabled : False

或者,我们可以单独使用 Get-ADDefualtDomainPasswordPolicy cmdlet 从当前登录的用户域中检索默认密码策略。

使用带有 -Identity 参数的 Get-ADDefaultDomainPasswordPolicy cmdlet 来获取活动目录中指定域的默认密码策略;在我们的例子中,它是 maslab.com

使用 Get-ADDefaultDomainPasswordPolicym Cmdlet:

Get-ADDefaultDomainPasswordPolicy -Identity maslab.com

输出 :

ComplexityEnabled           : True
DistuniguishedName          : DC=maslab,DC=com
LockoutDuration             : 00:30:00
LockoutObservationWindow    : 00:30:00
LockoutThreshold            : 0
MaxPasswordAge              : 42.00:00:00
MinPasswordAge              : 1.00:00:00
MinPasswordLength           : 7
objectClass                 : {domainDNS}
objectGuid                  : 574e7bd0-a042-45d2-8fdd-00ca4cb0a769
PasswordHistoryCount        : 24
ReversibleEncryptionEnabled : False

Get-ADForestGet-ADDefaultDomainPasswordPolicy 结合使用

使用 Get-ADForest cmdlet 和 Get-ADDefaultDomainPasswordPolicy cmdlet 从指定林中的所有域检索默认密码策略对象。

将 Get-ADForest 与 Get-ADDefaultDomainPasswordPolicy Cmdlet 结合使用:

(Get-ADForest -Current LoggedOnUser).Domains |
ForEach-Object{ 
    Get-ADDefaultDomainPasswordPolicy -Identity $_
}

输出 :

ComplexityEnabled           : True
DistuniguishedName          : DC=maslab,DC=com
LockoutDuration             : 00:30:00
LockoutObservationWindow    : 00:30:00
LockoutThreshold            : 0
MaxPasswordAge              : 42.00:00:00
MinPasswordAge              : 1.00:00:00
MinPasswordLength           : 7
objectClass                 : {domainDNS}
objectGuid                  : 574e7bd0-a042-45d2-8fdd-00ca4cb0a769
PasswordHistoryCount        : 24
ReversibleEncryptionEnabled : False

首先,我们使用 Get-ADForest cmdlet 使用当前登录用户的域来检索有关当前 Active Directory 林的详细信息。您可能会想这个 cmdlet 如何了解登录用户。这是因为我们指定了 -Current 参数并将其值设置为 LoggedOnUser。此 cmdlet 获取包含林名称、林功能级别、域名等的林对象。

然后,我们使用 .Domain 属性获取当前 Active Directory 林中的所有域,然后将其通过管道传输到 ForEach-Object cmdlet。 ForEach-Object cmdlet 迭代所有对象。在每次迭代中,我们使用 Get-ADDefaultDomainPasswordPolicy cmdlet 和 -Identity 参数来获取当前对象的密码策略 ($_) 。

我们得到了相同的输出,因为我们的案例中有一个域林 (maslab.com)。

Get-ADUserGet-ADDefaultDomainPasswordPolicy 结合使用

使用 Get-ADUser cmdlet 和 Get-ADDefaultDomainPasswordPolicy cmdlet 检索 Active Directory 中指定用户的详细密码策略。

将 Get-ADUser 与 Get-ADDefaultDomainPasswordPolicy Cmdlet 结合使用:

$user_name = "Administrator"
$user = Get-ADUser -Identity $user_name -Properties *
$domain_policy = Get-ADDefaultDomainPasswordPolicy
$password_policy_for_one_user = @{
    "Password Never Expires" = $user.PasswordNeverExpires
    "Password Last Set" = $user.PasswordLastSet
    "Password Expired" = $user.PasswordExpired
    "Minimum Password Length" = $domain_policy.MinPasswordLength
    "Minimum Password Age" = $domain_policy.MinPasswordAge
    "Maximum Password Age" = $domain_policy.MaxPasswordAge
    "Password Complexity" = $domain_policy.ComplexityEnabled
    "Password HistoryCount" = $domain_policy.HistoryLength
    "Lockout Threshold" = $domain_policy.LockoutThreshold
    "Lockout Duration" = $domain_policy.LockoutDuration
}
$password_policy_for_one_user

输出 :

Name                            Value
----                            -----
"Lockout Duration"              00:30:00
"Password Last Set"             7/16/2023 4:35:46 PM
"Minimum Password Length"       7
"Password Expired"              False
"Password Complexity"           True
"Lockout Threshold"             0
"Minimum Password Age"          1.00:00:00
"Maximum Password Age"          42.00:00:00
"Password History Count"        {}  
"Password Never Expires"        False

首先,我们使用 Administrator 初始化了 $user_name 变量;不要忘记将 Administrator 替换为您的用户名。然后,我们使用带有 -Identity 参数的 Get-ADUser cmdlet 从活动目录中检索用户并将其存储在 $user 变量中;此 $user 将拥有所有属性,因为我们将 -Properties 参数设置为通配符 (*) 以检索所有属性。

接下来,我们使用 Get-ADDefaultDomainPasswordPolicy cmdlet 获取默认密码策略并将其分配给 $domain_policy 变量。之后,我们创建一个哈希表来设置键和相应的值。我们将此哈希表存储在 $password_policy_for_one_user 变量中,以便进一步在 PowerShell 控制台上显示它。

我们是否可以选择使用计算属性来满足项目需求?例如,如果我们想知道密码年龄(即自上次更改密码以来的时间)?是的当然!请参阅以下示例。

Get-ADUser cmdlet 与 Get-ADDefaultDomainPasswordPolicy cmdlet 结合使用,显示 Active Directory 中提到的用户的计算属性。

将 Get-ADUser 与 Get-ADDefaultDomainPasswordPolicy Cmdlet 结合使用:

$user_name = "Administrator"
$user = Get-ADUser -Identity $user_name -Properties *
$domain_policy = Get-ADDefaultDomainPasswordPolicy
$password_age = (Get-Date) - $user.PasswordLastSet
$password_age_days = $password_age.TotalDays
$password_policy_for_one_user = @{
    "Password Never Expires" = $user.PasswordNeverExpires
    "Password Last Set" = $user.PasswordLastSet
    "Password Age Days" = $password_age_days
    "Password Expired" = $user.PasswordExpired
    "Minimum Password Length" = $domain_policy.MinPasswordLength
    "Minimum Password Age" = $domain_policy.MinPasswordAge
    "Maximum Password Age" = $domain_policy.MaxPasswordAge
    "Password Complexity" = $domain_policy.ComplexityEnabled
    "Password HistoryCount" = $domain_policy.HistoryLength
    "Lockout Threshold" = $domain_policy.LockoutThreshold
    "Lockout Duration" = $domain_policy.LockoutDuration
}
$password_policy_for_one_user

输出 :

Name                            Value
----                            -----
"Lockout Duration"              00:30:00
"Password Last Set"             7/16/2023 4:35:46 PM
"Minimum Password Length"       7
"Password Expired"              False
"Password Complexity"           True
"Lockout Threshold"             0
"Password Age Days"             0.293340765600694
"Minimum Password Age"          1.00:00:00
"Maximum Password Age"          42.00:00:00
"Password History Count"        {}  
"Password Never Expires"        False

使用net account命令

使用net account命令获取本地计算机上的密码策略详细信息。

使用网络帐户命令:

net accounts

输出 :

Force user logoff how long after time expires?:     Never
Minimum password age (days):                        1
Maximum password age (days):                        42
Minimum password length:                            7
Length of password history maintained:              24
Lockout threshold:                                  Never
Lockout duration (minutes):                         30
Lockout observation window (minutes):               30
Computer role:                                      PRIMARY
The command completed successfully.

使用组策略管理编辑器

要使用组策略管理编辑器,请按照以下步骤操作:

第 1 步:打开组策略管理编辑器。

第 2 步:导航至默认域策略。右键单击它并选择编辑

[玩转系统] 在 PowerShell 中获取 Active Directory 中用户的密码策略

第 3 步:导航至密码策略,如以下屏幕截图所示。您将在左侧找到密码策略(参见方框 2)。双击 box-2 中的任何属性以编辑详细信息(如果需要)。

[玩转系统] 在 PowerShell 中获取 Active Directory 中用户的密码策略

这就是如何在 PowerShell 中获取活动目录中用户的密码策略。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯