Active Directory Password Policy – The Complete Guide

A strong password policy protects Active Directory from cyber attacks

Microsoft Security image

A simple (non-complex) Active Directory password (AD) is vulnerable to hacking and exploitation. Requiring complex passwords in your Active Directory password policy increases the effectiveness of passwords exponentially – each additional special character you require in your users’ passwords makes them ultimately impervious to brute-force attacks.

🎬 Watch This Week in IT.


Going back to the 2000s, Excel’s simple workbook-protected passwords could be brute-forced in the time it takes to click ‘Go’. Even today, hackers with standard equipment can brute force a complex, 7-character password in 7 seconds. But, how about adding 4 characters to it…3 years! A 15-character complex password – 77 million years! Please read this carefully and dutifully to protect your organization’s assets.

What is the default password policy in Active Directory?

When you install the first domain controller (DC) in a domain (not necessarily in a forest), a ‘Default Domain Policy‘ Group Policy Object (GPO) is created. Within this policy lies the default domain password policy for ‘all’ accounts in that domain (there are some minor exceptions). This constitutes the password requirements for your users.

Here are the six settings and what their default attributes are. I’ll explain each setting later on in this article.

  • Enforce password history – The default is 24.
  • Minimum password age – The default for this is one day.
  • Maximum password age – The default for this setting is 42 days.
  • Minimum password length – The default is 7.
  • Complexity requirements – The default value is Enabled.
  • Store passwords using reversible encryption – The default for this is Disabled.

In Active Directory, at which level can you assign the password policy?

If you’re thinking ‘Why do I only get to assign one password policy for all my users in the ‘Default Domain Policy’ object?’, don’t worry – you can use what are called Fine-Grained Password Policies (FGPP).

Prior (legacy) versions of AD only allowed one password policy per domain. If you wanted any granularity, you needed to create a child domain and store your users and password policy there. But in 2008, Microsoft introduced Fine-Grained Password Policies (FGPP) with Windows Server 2008. This allows admins to offer multiple password policies (and account lockout policies) to varying users.

You may want to have a special, more strict password policy for all of your admin or privileged accounts.

Active Directory password policy settings in the Administrative Center - Adjusting Fine-Grained Password Policies
Active Directory password policy settings in the Administrative Center – Adjusting Fine-Grained Password Policies (Image Credit: Petri.com/Michael Reinders)

How to check password policy in Active Directory

There are a few ways to check your password policy in Active Directory. Let me show you the quickest, simplest way – you guessed it…PowerShell!

Type this single cmdlet from your PowerShell window or Terminal app

Get-AdDefaultDomainPasswordPolicy
Using the 'Get-ADDefaultDomainPasswordPolicy' PowerShell cmdlet to view your domain's password policy settings
Using the ‘Get-ADDefaultDomainPasswordPolicy’ PowerShell cmdlet to view your domain’s password policy settings (Image Credit: Petri.com/Michael Reinders)

I included the default settings above and you can see very similar results here. I will go into more detail soon.

How to set password policy in Active Directory

As I mentioned, the ‘Default Domain Policy‘ GPO stores many settings including these password policy attributes.

  • To access them, open the ‘Group Policy Management‘ console from the Start menu or the Windows Tools category.
Using Group Policy Management to access your default password policy
Using Group Policy Management to access your default password policy (Image Credit: Petri.com/Michael Reinders)
  • Under your DNS domain name (reinders.local in my case), find the ‘Default Domain Policy‘ object, right-click on it, and choose Edit.
  • Browse to Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Account Policies -> Password Policy.
Browsing your domain to find the default Password Policy
Browsing your domain to find the default Password Policy (Image Credit: Petri.com/Michael Reinders)

Look familiar? It should – here are the settings we’ve already been introduced to.

  • Simply double-click on each policy setting, click the ‘Explain‘ tab on top to refresh your memory on the policy descriptions, and then make the necessary changes for your specific use case.

Enforce password history

This setting defines how many old passwords are stored and remembered for each user. When they’ve reset their password this number of times, they won’t be able to reuse any of them at their next password reset session. Simple change the number of passwords remembered in the policy setting.

Maximum password age

This setting dictates how long a password can be used until it needs to be reset. Although the default is 42 days, recent recommendations have changed. For example, NIST recommends avoiding regular password resets and instead employing complex and longer passwords (15 characters or more). In addition, user-proposed passwords should be checked against banned password lists. I’ll explain those further below.

Minimum password age

This setting tells you how long a password needs to be in effect until it can be reset again. If this is set to 3 days, after a user resets their password, they won’t be able to reset it again until 3 days have passed.

Minimum password length

This sets the minimum number of letters and numbers the password will be. The default of ‘7’ should rarely if ever be used. Double this at least. Plus, encourage your users to use passphrases when creating their passwords. Instead of a random 15 or 20-character password made up of numbers, letters, and special symbols, use a password like ‘myfavoritevacationwasmteverest’. Even though I am only using lowercase letters, this is a much more robust password that would take CENTURIES to be brute-forced.

Password must meet complexity requirements

This is a simple toggle – Enable this to require a strong password (using 3 of the 4 character type categories: lowercase letters, uppercase letters, numbers, non-alphanumeric – special characters), or Disable this (please don’t) to allow simple passwords. Simple passwords are very susceptible to brute force attacks by hackers.

Store passwords using reversible encryption

This security setting determines whether the operating system stores passwords using reversible encryption. The default is Disabled. Only special use cases would require this functionality.

What is Fine-Grained Password Policy?

A Fine-Grained Password Policy (FGPP) is a specific password policy designed to accommodate varying types of users with varying complexities. As I mentioned above, you can manage these in the Active Directory Administrative Center under the System -> Password Settings Container area.

You can also use PowerShell, of course.

Use ‘New-ADFineGrainedPasswordPolicy‘ to create a new policy and ‘Get-ADFineGrainedPasswordPolicy‘ to view existing policies. Then use ‘Add-ADFineGrainedPasswordPolicySubject‘ to ‘assign’ the policies to specific Users and/or Groups in your domain.

Best practices – AD password policy

There are many reasons to make sure you’ve set your organization’s password policies to be secure and robust. Other compliance protocols and initiatives may also contribute to spending more time on this subject. Let me provide you with a good list of recommended practices for setting up these policies.

  1. Set your minimum password length to 12 (or more). Each time you increase this setting you geometrically increase the security of these passwords, making it harder for hackers to guess them.
  2. Change the minimum password age to 3 or 4 days. This deters users from ‘using up all of their old passwords’ so they can recycle them.
  3. Enforce a password history of 10 passwords. There’s no reason to allow any more than this number.
  4. Utilize banned password lists, password dictionaries, and other breached lists to avoid the use of vulnerable passwords in your org. You can use this Microsoft Entra on-premises Password Protection website to learn more.
  5. Look into 3rd-party password management tools like CyberArk for the administrative functions and processes your IT Pros and admins carry out daily. I have used CyberArk and highly recommend it. As an example, IT Pros log into a secure webpage to access their passwords in their ‘CyberArk’ vault. Various settings including having each password reset every 9 hours is a wonderful way to circumvent hackers in your company.
  6. Require AD-privileged accounts (Enterprise Admin, Domain Admin, Schema Admin) to have a minimum password length of 25 characters (or more).
  7. Set up email notifications to be sent to users x days before a password expiration.
  8. Create a thorough and encompassing ‘User Security Training’ program so all of your users understand the importance of not writing down passwords, using password phrases instead of common words, etc.
  9. Discourage users from using the same password for multiple applications and websites. Inform them if hackers infiltrate a user’s single password, said hacker would be able to access all of their accounts with minimal effort!

Another best practice I highly recommend is downloading Microsoft’s latest security baselines from the Microsoft Security Compliance Toolkit website. Browse the website for additional information.

To download the kit for specific versions of Windows client and server, navigate to the Microsoft Download Center, choose Download, and choose your specific version. This includes the latest guidance on best practices for establishing password policies and FGPP in your organization.

Benefits of strong password policies

Implementing strong password policies in AD provides a fundamental ‘ground floor’ for security models in your enterprise. Here are some of the top reasons and benefits of incorporating strong password policies in Active Directory.

  • Reduced Risk of Data Breaches – Having regular password changes helps minimize compromised credentials being used against your employees, and your bottom line.
  • Enhanced Security – Cyberattacks are much less likely in your future if your strong password policies are in place. By enforcing complex passwords that are nearly impossible to guess, you drastically reduce the likelihood of unauthorized access in to your systems.
  • Regulation Compliance – Many industries need to adhere to regulatory bodies, and standards such as GDPR, HIPAA, and PCI-DSS. Included in the requirements for these bodies are strong and complex password policies. This is an easy win for maintaining compliance and even cyber insurance.
  • Improved User Accountability – Deterring unauthorized access with a strong password policy and account lockout mechanisms helps identify potential security threats by tracking failed login attempts.

How to validate and monitor password policy in AD

Let me recap the various tools you can use to validate and manage your Active Directory password policies.

Group Policy Management Console

Navigate to Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Account Policies -> Password Policy to view and edit each password policy in your domain.

PowerShell

Use ‘Get-ADDefaultDomainPasswordPolicy’ to view the current password policy in your default domain policy.

You can also use ‘Get-ADFineGrainedPasswordPolicy’ to examine your current FGPPs.

Active Directory Administrative Center

Use this tool to browse to your domain, then System, then Password Settings Container to view and manage your Fine-Grained Password Policies (FGPP).

Local Security Policy Tool

On any domain-joined computer, you can run ‘secpol.msc’ to use the Local Security Editor and browse to Account Policies -> Password Policy.

There are also a variety of methods to monitor and audit related events surrounding password policies.

Audit policies

You can enable auditing for account management activities.

  • In the Group Policy Management Console (GPMC), browse to Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Audit Policy. Here you can define auditing for Success and Failure statuses.

Event Viewer logs

Monitor Event IDs 4723 and 4724 for any password changes in the Security logs in Event Viewer.

You should also set up notifications for specific events, maybe during certain times of the day or week, to remain vigilant on critical changes to passwords.

Third-party tools

There are a wide variety of third-party software tools and solutions that enable you to focus more on your business and let them take care of your important password policies.

Examples include CrowdStrike, SolarWinds, Netwrix, ManageEngine, Cayosoft, and Lepide.

FAQ: Setting Password Change Policies in Active Directory

How do I set up password policy in Active Directory?

To set up a password policy in Active Directory (AD), you need to use the Group Policy Management Console (GPMC). Navigate to:

Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy

From here, you can configure settings such as:

  • Minimum password length
  • Password complexity requirements
  • Password history enforcement
  • Maximum and minimum password age

These settings apply to all domain accounts by default, but you can create Fine-Grained Password Policies for more granular control.

How do I allow users to change their password in Active Directory?

Users are allowed to change their password under these conditions:

  • Their account is not locked or disabled.
  • They have the “Change Password” permission on their AD user object (usually granted by default).
  • They connect via a secure method such as Ctrl+Alt+Del or via web portal/self-service tool.

You can verify or adjust this in Active Directory Users and Computers (ADUC) by checking the security permissions on the user or organizational unit (OU) objects.

How to set password expiry in Active Directory?

Password expiry is controlled through the Maximum Password Age setting within the Password Policy. To set it:

  1. Open the Group Policy Management Console (GPMC).
  2. Go to:
    Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy
  3. Set the “Maximum password age” to the desired number of days.

This means that once the specified number of days passes, users will be required to change their password.

How to set password change policy in Active Directory?

Setting a password change policy in AD involves defining:

  • When passwords must be changed (e.g. every 90 days)
  • Who the policy applies to
  • How users are notified

Steps:

  1. Use GPMC to define global policy settings.
  2. For more targeted control (e.g. by department), use Fine-Grained Password Policies via Active Directory Administrative Center (ADAC) or PowerShell:

    New-ADFineGrainedPasswordPolicy -Name "FinancePolicy" -Precedence 1 -MaxPasswordAge 90.00:00:00 -MinPasswordAge 1.00:00:00 -MinPasswordLength 12 -PasswordComplexityEnabled $true -PasswordHistoryCount 24 -ReversibleEncryptionEnabled $false
  3. Link the policy to specific users or groups using:

    Add-ADFineGrainedPasswordPolicySubject -Identity "FinancePolicy" -Subjects "FinanceGroup"

This approach enables customized policies without changing the default domain settings.