From c756a8f01ecca164a40db81c135485b03fc3ebdc Mon Sep 17 00:00:00 2001 From: Hassaan Khan Date: Thu, 17 Jul 2025 18:11:04 +0500 Subject: [PATCH 1/6] reviewing --- .../administration/administration_overview.md | 5 +- .../10.2/administration/connecting.md | 20 +- .../10.2/administration/hibpupdater.md | 31 ++- .../installation/automated_installation.md | 5 +- .../installation/disable_windows_rules.md | 5 +- .../installation/installation.md | 5 +- .../mailer/email_delivery_options.md | 5 +- .../10.2/administration/mailer/mailer.md | 5 +- .../managementconsole/management_console.md | 10 +- .../managingpolicies/assigning_policies.md | 15 +- .../managingpolicies/passphrases.md | 5 +- .../managingpolicies/policy_properties.md | 27 ++- .../managingpolicies/testing_policies.md | 10 +- .../configuring_the_password_policy_client.md | 12 +- .../customizing_message_templates.md | 5 +- .../customizing_rule_inserts.md | 5 +- .../installing_password_policy_client.md | 31 ++- .../multilingual_messages.md | 5 +- .../password_policy_client.md | 5 +- .../10.2/administration/ppe_tool.md | 24 ++- .../administration/properties/properties.md | 20 +- .../administration/rules/character_rules.md | 10 +- .../administration/rules/complexity_rule.md | 5 +- .../administration/rules/compromised_rule.md | 5 +- .../administration/rules/dictionary_rule.md | 10 +- .../administration/rules/first_and_last.md | 5 +- .../10.2/administration/rules/history_rule.md | 29 ++- .../administration/rules/keyboard_pattern.md | 10 +- .../administration/rules/maximum_age_rule.md | 10 +- .../administration/rules/minimum_age_rule.md | 5 +- .../10.2/administration/rules/rules.md | 177 ++++++++++++++++-- .../administration/rules/similarity_rule.md | 5 +- .../10.2/administration/support_tools.md | 7 +- .../10.2/administration/uninstall.md | 5 +- .../10.2/administration/upgrading.md | 36 +++- .../evaluation/configuring_policy_rules.md | 5 +- .../evaluation/enforcing_multiple_policies.md | 5 +- .../10.2/evaluation/evaluation_overview.md | 5 +- .../10.2/evaluation/installation.md | 10 +- .../evaluation/testing_the_password_policy.md | 15 +- docs/passwordpolicyenforcer/10.2/index.md | 1 - .../10.2/{overview => }/overview.md | 2 +- .../10.2/overview/_category_.json | 10 - .../administration/about_tab.md | 5 +- .../editing_the_html_templates.md | 30 ++- .../administration/email_tab.md | 15 +- .../administration/enroll_tab.md | 9 +- .../administration/filtering_data.md | 20 +- .../administration/general_tab.md | 24 ++- .../administration/installation.md | 51 +++-- .../administration/password_reset_client.md | 44 ++++- .../persuading_users_to_enroll.md | 5 +- .../administration/securing_password_reset.md | 25 ++- .../administration/security_tab.md | 10 +- .../administration/using_password_reset.md | 20 +- .../administration/using_the_data_console.md | 5 +- .../administration/verification_tab.md | 5 +- .../working_with_the_database.md | 14 +- .../10.2/web/configuration.md | 14 +- .../10.2/web/editing_html_templates.md | 27 ++- .../10.2/web/installation.md | 40 +++- .../10.2/web/license_agreement.md | 2 +- .../10.2/web/securing_web.md | 5 +- .../10.2/web/using_web.md | 15 +- .../10.2/web/what_new.md | 22 ++- .../10.2/{overview => }/whatsnew.md | 20 +- .../The Password Policy Client_1.webp | Bin 0 -> 46650 bytes 67 files changed, 816 insertions(+), 238 deletions(-) delete mode 100644 docs/passwordpolicyenforcer/10.2/index.md rename docs/passwordpolicyenforcer/10.2/{overview => }/overview.md (95%) delete mode 100644 docs/passwordpolicyenforcer/10.2/overview/_category_.json rename docs/passwordpolicyenforcer/10.2/{overview => }/whatsnew.md (83%) create mode 100644 static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_1.webp diff --git a/docs/passwordpolicyenforcer/10.2/administration/administration_overview.md b/docs/passwordpolicyenforcer/10.2/administration/administration_overview.md index 10674687d0..47128697d5 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/administration_overview.md +++ b/docs/passwordpolicyenforcer/10.2/administration/administration_overview.md @@ -20,8 +20,11 @@ not jeopardize network security. You can also use Password Policy Enforcer to ensure that passwords are compatible with other systems, and to synchronize passwords with other networks and applications. -**NOTE:** The +:::note +The [Evaluation](/docs/passwordpolicyenforcer/10.2/evaluation/evaluation_overview.md) topic contains step-by-step instructions to help you quickly install, configure, and evaluate Password Policy Enforcer. Read the Evaluation topic if you are using Password Policy Enforcer for the first time. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/connecting.md b/docs/passwordpolicyenforcer/10.2/administration/connecting.md index 904a10b2ae..e15ee2eaa3 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/connecting.md +++ b/docs/passwordpolicyenforcer/10.2/administration/connecting.md @@ -29,8 +29,11 @@ Enforcer view. **Step 4 –** Enter the **name** or **IP address** of a domain controller, then click **OK**. -**NOTE:** You cannot make changes to the Password Policy Enforcer configuration while the management +:::note +You cannot make changes to the Password Policy Enforcer configuration while the management console is connected to a read-only domain controller. +::: + ## Connecting to a Local Configuration @@ -50,9 +53,18 @@ Enforcer view. **Step 3 –** Select the **Local** option, then click **OK**. -**NOTE:** Domain configurations are stored in the CN=Password Policy Enforcer 10.0,CN=System object. +:::note +Domain configurations are stored in the CN=Password Policy Enforcer 10.0,CN=System object. +::: + -**NOTE:** Local configurations are stored in the HKLM\SOFTWARE\ANIXIS\Password Policy Enforcer 10.0\ +:::note +Local configurations are stored in the HKLM\SOFTWARE\ANIXIS\Password Policy Enforcer 10.0\ registry key. +::: + + +:::note +Users with write permission to these objects can configure Password Policy Enforcer. -**NOTE:** Users with write permission to these objects can configure Password Policy Enforcer. +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/hibpupdater.md b/docs/passwordpolicyenforcer/10.2/administration/hibpupdater.md index 2d38658b4a..8d496edf6f 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/hibpupdater.md +++ b/docs/passwordpolicyenforcer/10.2/administration/hibpupdater.md @@ -32,11 +32,14 @@ location. The HIBP Updater is installed when you install the Password Policy Enforcer Management Server. -**_RECOMMENDED:_** Only run this from one server. +:::info +Only run this from one server. +::: + **Step 1 –** To access the HIBP Updater, navigate to the installation location: -...\Program Files (x86)\Password Policy Enforcer\HIBP\ +**...\Program Files (x86)\Password Policy Enforcer\HIBP\** ![hibpfolder](/img/product_docs/passwordpolicyenforcer/10.2/administration/hibpfolder.webp) @@ -48,18 +51,24 @@ Password Policy Enforcer utilizes the Passwords Hash database to check if users password (i.e. during a password reset) matches the hash of a compromised password from a data breach. -**NOTE:** First-time configuration of this window requires downloading the HIBP database from the +:::note +First-time configuration of this window requires downloading the HIBP database from the Netwrix website. +::: + ![passwordhashdatabase](/img/product_docs/passwordpolicyenforcer/10.2/administration/passwordhashdatabase.webp) -**CAUTION:** Ensure the initial update of the database occurs during non-office hours. Due to the +:::warning +Ensure the initial update of the database occurs during non-office hours. Due to the size of the hash file, this download takes up a significant amount of CPU and download time. +::: + - Passwords Hash Database Folder – Central location of the Pwned database on the application server. The default path is: - …\HIBP\DB +**…\HIBP\DB** - Update Type: @@ -68,10 +77,13 @@ size of the hash file, this download takes up a significant amount of CPU and do instead of downloading the full HIBP database. This option is enabled after a full download of the HIBP database has completed. - **NOTE:** Only the full HIBP database file obtained from the Netwrix website has version + :::note + Only the full HIBP database file obtained from the Netwrix website has version information. That full HIBP database file can be obtained using the Website option. Alternately, the HIBP database can be obtained outside of the application by downloading it directly from the Netwrix website using an FTP connection: + ::: + - [https://releases.netwrix.com/resources/stealthintercept/stealthintercept-hibp-database-1.0.0.zip](https://releases.netwrix.com/resources/stealthintercept/stealthintercept-hibp-database-1.0.0.zip) - [https://releases.netwrix.com/resources/stealthintercept/stealthintercept-hibp-database-1.0.0.zip.sha256.txt](https://releases.netwrix.com/resources/stealthintercept/stealthintercept-hibp-database-1.0.0.zip.sha256.txt) @@ -102,7 +114,7 @@ files. Copy the hash files into the Sysvol share on one domain controller, and t System will copy the files into the Sysvol share of all other domain controllers. Configure the Compromised rule to read the files from: -\\127.0.0.1\sysvol\your.domain\filename.db +**\\127.0.0.1\sysvol\your.domain\filename.db** See the [Compromised Rule](/docs/passwordpolicyenforcer/10.2/administration/rules/compromised_rule.md) @@ -114,8 +126,11 @@ local policies. If you are using Password Policy Enforcer for local policies and to receive hash file updates, then use the Sysvol share for file replication and a script or scheduled task to copy the file to a local folder. -**CAUTION:** %SystemRoot%. hash files should only be read from a local disk. Using shared hash files +:::warning +%SystemRoot%. hash files should only be read from a local disk. Using shared hash files degrades performance, and could jeopardize security. +::: + ## Scheduler diff --git a/docs/passwordpolicyenforcer/10.2/administration/installation/automated_installation.md b/docs/passwordpolicyenforcer/10.2/administration/installation/automated_installation.md index 45b971880d..21f44abbcc 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/installation/automated_installation.md +++ b/docs/passwordpolicyenforcer/10.2/administration/installation/automated_installation.md @@ -70,8 +70,11 @@ button. **Step 4 –** Enter the full **UNC path to PPE10.1.msi** in the Open dialog box. -**NOTE:** You must enter a UNC path so that other computers can access this file over the network. +:::note +You must enter a UNC path so that other computers can access this file over the network. For example: \\file server\distribution point share\PPE10.1.msi +::: + **Step 5 –** Click **Open**. diff --git a/docs/passwordpolicyenforcer/10.2/administration/installation/disable_windows_rules.md b/docs/passwordpolicyenforcer/10.2/administration/installation/disable_windows_rules.md index 2ae8c82bf5..a30aeb2108 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/installation/disable_windows_rules.md +++ b/docs/passwordpolicyenforcer/10.2/administration/installation/disable_windows_rules.md @@ -44,7 +44,10 @@ Settings**, **Account Policies**, and **Password Policy** items. ![installing_ppe_3](/img/product_docs/passwordpolicyenforcer/10.2/evaluation/preparing_the_computer.webp) -**NOTE:** You do not have to disable all the Windows password policy rules to use Password Policy +:::note +You do not have to disable all the Windows password policy rules to use Password Policy Enforcer. You can use a combination of Password Policy Enforcer and Windows rules together if you like. Just remember that a password is only accepted if it complies with the rules enforced by both Windows and Password Policy Enforcer. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/installation/installation.md b/docs/passwordpolicyenforcer/10.2/administration/installation/installation.md index d849d134ce..d012f841fe 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/installation/installation.md +++ b/docs/passwordpolicyenforcer/10.2/administration/installation/installation.md @@ -17,10 +17,13 @@ topic for additional information. - Fifteen megabytes free disk space - Eight megabytes free RAM (72 megabytes if using Argon2 hashes) -**NOTE:** Users do not have to change their password immediately after Password Policy Enforcer is +:::note +Users do not have to change their password immediately after Password Policy Enforcer is installed. They can continue using their current password until it expires, even if their current password does not comply with the password policy. Installing Password Policy Enforcer does not extend the Active Directory schema. +::: + ## Installation Types diff --git a/docs/passwordpolicyenforcer/10.2/administration/mailer/email_delivery_options.md b/docs/passwordpolicyenforcer/10.2/administration/mailer/email_delivery_options.md index 18b0ef463a..cead5eff20 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/mailer/email_delivery_options.md +++ b/docs/passwordpolicyenforcer/10.2/administration/mailer/email_delivery_options.md @@ -33,8 +33,11 @@ Select the **Save email to a pickup folder** option to have the Password Policy emails to a folder for later delivery by a mail server. Click the **Browse** button to select a folder. The mail server must monitor this folder for new email. -**NOTE:** Saving email to a pickup folder is the fastest and most reliable delivery method. Use this +:::note +Saving email to a pickup folder is the fastest and most reliable delivery method. Use this option if your mail server supports pickup folders. +::: + The Password Policy Enforcer Mailer sends emails at 2:00 AM every day. Check the Windows Application Event Log to monitor its progress. You can also run the Password Policy Enforcer Mailer from the diff --git a/docs/passwordpolicyenforcer/10.2/administration/mailer/mailer.md b/docs/passwordpolicyenforcer/10.2/administration/mailer/mailer.md index 7241f1893a..96debf9af0 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/mailer/mailer.md +++ b/docs/passwordpolicyenforcer/10.2/administration/mailer/mailer.md @@ -34,8 +34,11 @@ conditions. **Step 5 –** If you are prompted to Modify, Repair, or Remove the installation, select **Modify**, then click **Next**. Proceed to step 11. Do not disable the other features as described below. -**CAUTION:** If prompted to Modify, Repair, or Remove, do not modify any settings or disable any +:::warning +If prompted to Modify, Repair, or Remove, do not modify any settings or disable any features as described in steps 6 - 10. +::: + **Step 6 –** Click **Next** when the Password Policy Enforcer Installation Wizard opens. diff --git a/docs/passwordpolicyenforcer/10.2/administration/managementconsole/management_console.md b/docs/passwordpolicyenforcer/10.2/administration/managementconsole/management_console.md index 3c0f02b5c8..26b17ab9b5 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/managementconsole/management_console.md +++ b/docs/passwordpolicyenforcer/10.2/administration/managementconsole/management_console.md @@ -53,8 +53,14 @@ Password Policy Enforcer management console. ![configuring_ppe_1](/img/product_docs/passwordpolicyenforcer/10.2/administration/configuring_ppe_1.webp) -**NOTE:** If you are opening the management console for the first time, click **Yes** when asked if +:::note +If you are opening the management console for the first time, click **Yes** when asked if you would like to create a new Password Policy Enforcer configuration. +::: -**NOTE:** Press F1 while using the management console to display help information for the current + +:::note +Press F1 while using the management console to display help information for the current window. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/assigning_policies.md b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/assigning_policies.md index 0ae4c09435..0b93fefa2a 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/assigning_policies.md +++ b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/assigning_policies.md @@ -18,18 +18,24 @@ Info Tech group, then any policy assigned to the Info Tech group also applies to Helpdesk group. If this behavior is not desired, then you can assign a different policy to the Helpdesk group. -**NOTE:** When a policy is assigned to a container, Password Policy Enforcer enforces the policy for +:::note +When a policy is assigned to a container, Password Policy Enforcer enforces the policy for all users in the container as well as any child containers. For example, if the Helpdesk and Managers OUs are children of the Info Tech OU, then any policy assigned to the Info Tech OU also applies to the two child OUs. If this behavior is not desired, then you can assign a different policy to a child OU. +::: + ![managing_policies_3](/img/product_docs/passwordpolicyenforcer/10.2/administration/managing_policies_3.webp) -**NOTE:** When a domain policy is assigned to a user or group, Password Policy Enforcer stores the +:::note +When a domain policy is assigned to a user or group, Password Policy Enforcer stores the user or group SID in the configuration. The assignment remains valid even if the user or group is renamed. When a local policy is assigned to a user, Password Policy Enforcer stores the username in the configuration. The assignment is invalidated if the user is renamed. +::: + ![managing_policies_4](/img/product_docs/passwordpolicyenforcer/10.2/administration/managing_policies_4.webp) @@ -70,8 +76,11 @@ Follow the steps to remove a policy assignment. **Step 7 –** Click OK to close the Policy Properties page. -**NOTE:** Different assignment types can be used for a single policy. For example, you may assign +:::note +Different assignment types can be used for a single policy. For example, you may assign users to a policy by both OU and group at the same time. +::: + ## Policy Assignment Conflicts diff --git a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/passphrases.md b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/passphrases.md index d3abca5861..310b058629 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/passphrases.md +++ b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/passphrases.md @@ -40,6 +40,9 @@ will accept passphrases that comply with all enabled rules, irrespective of the This ensures that passphrases can be used, even if they do not meet the compliance level when Password Policy Enforcer is configured to disable one or more rules for passphrases. -**NOTE:** Opinions differ on how long a passphrase needs to be. Even a 30 character passphrase can +:::note +Opinions differ on how long a passphrase needs to be. Even a 30 character passphrase can be weaker than a well-chosen password. Do not disable too many rules under the assumption that length alone will make up for the reduced complexity as this is not always true. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/policy_properties.md b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/policy_properties.md index 8319cc0cbf..a96424b1ab 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/policy_properties.md +++ b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/policy_properties.md @@ -24,10 +24,13 @@ Password Policy Enforcer should enforce this policy, or deselect it to disable t policy's icon in the left pane of the management console changes to an X icon when a policy is disabled. -**NOTE:** A user's password history may be updated even when the policy assigned to the user is +:::note +A user's password history may be updated even when the policy assigned to the user is disabled. See the [Rules](/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md) topic for additional information. +::: + The **Default character set** drop-down list specifies which character set Password Policy Enforcer will use to enforce its rules. The default value (Netwrix Password Policy @@ -35,15 +38,21 @@ Enforcer) requires users to comply with rules that use the Password Policy Enfo Choose the alternate option (Windows) to have users comply with rules that use the Windows character set. -**NOTE:** Only Password Policy Enforcer 10.0 and higher will contain the Windows character set. +:::note +Only Password Policy Enforcer 10.0 and higher will contain the Windows character set. Password Policy Enforcer 9, Netwrix Password Reset and Password Policy Enforcer/Web 7 (and older for all products) will always use the Password Policy Enforcer character set. +::: + -**CAUTION:** This value should not be changed while using PPE9.x clients, APR 3.x and Password +:::warning +This value should not be changed while using PPE9.x clients, APR 3.x and Password Policy Enforcer/Web 7.x (and older for all above). These clients only support the Password Policy Enforcer character set. They will work if Password Policy Enforcer is configured to use the Windows character sets, but they will still continue to use the Password Policy Enforcer character set as that is all they know. +::: + - Some languages such as Japanese do not distinguish between uppercase and lowercase. These characters will be in the Windows Alpha set, but not in the Upper or Lower sets. @@ -79,17 +88,23 @@ The user logon name and new password are sent to the program as command-line par example, if you add the commands below to a batch file, Password Policy Enforcer will record each user's logon name and new password in a text file called passwords.txt: -echo Username: %1 >> c:\passwords.txt +**echo Username: %1 >> c:\passwords.txt** echo Password: %2 >> c:\passwords.txt -**CAUTION:** This script is shown as an example only. You should not store user passwords. +:::warning +This script is shown as an example only. You should not store user passwords. +::: + The command can now include the [USERNAME] and [PASSWORD] macros. If neither is specified, then the command is executed with both parameters to maintain compatibility with existing programs/scripts. -**_RECOMMENDED:_** Use the [USERNAME] parameter if the password is not needed by the program/script +:::info +Use the [USERNAME] parameter if the password is not needed by the program/script so that the password is not unnecessarily sent to the change notification command/script. +::: + Record any configuration notes about this policy in the Notes text box. diff --git a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/testing_policies.md b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/testing_policies.md index 986a42c53d..2a06128877 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/testing_policies.md +++ b/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/testing_policies.md @@ -26,8 +26,11 @@ New Password text boxes. **Step 5 –** Click **Test**, or wait a few seconds if Test passwords as I type is selected. -**NOTE:** Policy testing simulates a password change, but it does not change the password. As it is +:::note +Policy testing simulates a password change, but it does not change the password. As it is only a simulation, you do not have to enter the correct password in the Old Password text box. +::: + The Password Policy Enforcer management console displays a green check mark below the Test button if the new password complies with the Password Policy Enforcer password policy, or a red cross if it @@ -70,8 +73,11 @@ Follow the steps below to test your configuration. **Step 4 –** Select the location of the folder where you want to upload the result. -**NOTE:** It is recommended that the Password File and Result folder are not located on a shared +:::note +It is recommended that the Password File and Result folder are not located on a shared drive, so the processing can be done faster. +::: + **Step 5 –** Select a desired policy from the drop down list. diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/configuring_the_password_policy_client.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/configuring_the_password_policy_client.md index 9d56d731d1..40325c20d0 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/configuring_the_password_policy_client.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/configuring_the_password_policy_client.md @@ -20,7 +20,7 @@ Client. You can use Active Directory GPOs to configure many computers, or the Lo Editor to configure one computer. The Password Policy Client configuration is stored in the HKLM\SOFTWARE\Policies\ANIXIS\Password Policy Client\ registry key. -Install the Password Policy Client Administrative Template +**Install the Password Policy Client Administrative Template** **Step 1 –** Connect to any Domain Controller where you have Password Policy Enforcer installed and have the group policy management console available. @@ -91,8 +91,11 @@ Windows 10 and 11. **Step 1 –** Use the **Group Policy Management Console** (gpmc.msc) to display the GPOs linked at the domain level. -**NOTE:** If you are not using Active Directory, then open the Local Group Policy Editor +:::note +If you are not using Active Directory, then open the Local Group Policy Editor (gpedit.msc) and skip step 2. +::: + **Step 2 –** Right-click the **Password Policy Client GPO**, then click the **Edit...** button. @@ -103,4 +106,7 @@ Templates**, **Classic Administrative Templates** (**ADM**), **Password Policy E **Step 4 –** Double-click the **Display settings (Windows 10)** setting in the right pane of the Group Policy Management Editor. -**NOTE:** Information about each option is shown in the Help box. +:::note +Information about each option is shown in the Help box. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_message_templates.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_message_templates.md index 26e49f485e..cbf4ae7470 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_message_templates.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_message_templates.md @@ -70,7 +70,10 @@ the policy set by the organization. The image below illustrates an example of a ![livepolicymessageexample](/img/product_docs/passwordpolicyenforcer/10.2/administration/livepolicymessageexample.webp) -**NOTE:** The password client needs to be at version 10.2+ to support this capability. +:::note +The password client needs to be at version 10.2+ to support this capability. +::: + To support password live messages the password policy message must include the [Live_Policy] declaration in the Password Policy Message. diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_rule_inserts.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_rule_inserts.md index 07c9ffeda6..7a4f1d9ee3 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_rule_inserts.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/customizing_rule_inserts.md @@ -37,9 +37,12 @@ it is a **Step 6 –** Edit the rule inserts in the Policy and Reason text boxes. -**NOTE:** Use the \n escape sequence to start a new line in a message template or rule insert +:::note +Use the \n escape sequence to start a new line in a message template or rule insert (Password Policy Client V5.1 and later). Inserts and lines starting with two or more spaces, a minus, and a space are shown with a bullet to the left (Password Policy Client V8.0 and later). +::: + ## Customizing Password Policy Client Messages diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md index 3ec73128ce..d467e203cb 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md @@ -10,8 +10,11 @@ The Password Policy Client is compatible with Windows 8, 8.1, 10, or 11. It is a Windows Server 2016, 2019, and 2022. The Password Policy Client can be used with Remote Desktop Services on these operating systems. -**NOTE:** The Password Policy Client is also compatible with Windows XP, Vista, and 7. However, +:::note +The Password Policy Client is also compatible with Windows XP, Vista, and 7. However, Netwrix no longer provides technical support for these versions. +::: + ## System Requirements @@ -59,7 +62,7 @@ and conditions. **Step 4 –** Right-click the **PPEClt10.2.msi** icon, click **Copy**, and then paste the file into the distribution point. -![the_password_policy_client](/img/product_docs/passwordpolicyenforcer/10.2/administration/the_password_policy_client.webp) +![the_password_policy_client](/img/product_docs/passwordpolicyenforcer/10.2/administration/installing_ppe.webp) **Step 5 –** Give the **Domain Computers** security group read access to the PPEClt10.2.msi file in the distribution point. @@ -79,7 +82,7 @@ this domain, and Link it here...**. **Step 4 –** Enter **Password Policy Client** in the provided field, then press **ENTER**. -![the_password_policy_client_1](/img/product_docs/passwordpolicyenforcer/10.2/administration/the_password_policy_client_1.webp) +![the_password_policy_client_1](/img/product_docs/passwordpolicyenforcer/10.2/administration/installing_ppe.webp) ## Edit the Group Policy Object @@ -94,14 +97,17 @@ the left pane. **Step 4 –** Enter the full **UNC path to PPEClt10.2.msi** in the Open dialog box. -**NOTE:** You must enter a UNC path so that other computers can access this file over the network. +:::note +You must enter a UNC path so that other computers can access this file over the network. For example, `\\file server\distribution point share\PPEClt10.2.msi` +::: + **Step 5 –** Click **Open**. **Step 6 –** Select the **Assigned deployment method**, then click **OK**. -![the_password_policy_client_2](/img/product_docs/passwordpolicyenforcer/10.2/administration/the_password_policy_client_2.webp) +![the_password_policy_client_2](/img/product_docs/passwordpolicyenforcer/10.2/administration/installing_ppe_2.webp) **Step 7 –** Close the **Group Policy Management Editor**. @@ -117,9 +123,12 @@ and clicking the **Change a password** item. If you do not see the password poli because a Password Policy Enforcer policy has not been assigned to you, or because the firewall rules have not been created. -**NOTE:** The Password Policy Client does not store or send passwords or password hashes over the +:::note +The Password Policy Client does not store or send passwords or password hashes over the network. An attacker cannot determine user passwords by sniffing the communication protocol. The protocol is also encrypted by default for additional protection. +::: + ## Creating Firewall Rules for the Password Policy Client @@ -141,7 +150,10 @@ the Domain Controllers OU. **Step 2 –** Right-click the **Password Policy Enforcer GPO**, and then click **Edit...**. -**NOTE:** You need to create the GPO if you chose the Express Setup option. +:::note +You need to create the GPO if you chose the Express Setup option. +::: + **Step 3 –** Expand the **Computer Configuration**, **Policies**, **Administrative Templates**, **Network**, **Network Connections**, and **Windows Firewall** items. @@ -190,5 +202,8 @@ Password Policy Client: | Destination address | Client Computer IP address | | Destination port | Any | -**NOTE:** If your firewall performs Stateful Packet Inspection, then only create a rule for the +:::note +If your firewall performs Stateful Packet Inspection, then only create a rule for the request datagram as the firewall will automatically recognize and allow the response datagram. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/multilingual_messages.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/multilingual_messages.md index 40dcebac91..26f1185295 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/multilingual_messages.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/multilingual_messages.md @@ -23,5 +23,8 @@ above). The Password Policy Client uses the Windows client language settings to determine which language to display. -**NOTE:** You do not have to create a Password Policy Enforcer policy for each language. Each policy +:::note +You do not have to create a Password Policy Enforcer policy for each language. Each policy can have messages defined in multiple languages. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md index 493d8efa13..cb8e9f6c27 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md @@ -24,5 +24,8 @@ The Password Policy Client displays the password policy during a password change see the policy while they choose their password. The Password Policy Client also displays a detailed rejection message to explain why a password was rejected. Both these messages are customizable. -**NOTE:** The Password Policy Client does not modify any Windows system files. It also does not send +:::note +The Password Policy Client does not modify any Windows system files. It also does not send passwords or password hashes over the network. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md b/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md index c979ea253c..39f4f9e6bb 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md +++ b/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md @@ -26,16 +26,22 @@ The PPE Tool installs with the default installation of Password Policy Enforcer allows users to perform a number of operations related to Password Policy Enforcer functionality which are described in the table below. -**NOTE:** All PPE Tool operations can be executed from the Command Prompt, if run with administrator +:::note +All PPE Tool operations can be executed from the Command Prompt, if run with administrator rights. +::: + ### PPE Tool Operations -**_RECOMMENDED:_** PPE Tool operations should only be executed one at a time. For example, you +:::info +PPE Tool operations should only be executed one at a time. For example, you should not execute the /e (Export) and /i (Import) operations simultaneously; you should not run /e (Export) and /r (Report) operations simultaneously. +::: + -Common PPE Tool Operations +**Common PPE Tool Operations** | Operation | Operation Name | Operation Description | | --------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -96,13 +102,13 @@ The `` tag can also contain the child `` tag. This tag can have an o #### Example of 'value' mode -Original configuration +**Original configuration** ```xml 1 ``` -Transform configuration +**Transform configuration** ```xml @@ -114,7 +120,7 @@ Transform configuration ``` -Transformation result +**Transformation result** ```xml @@ -128,13 +134,13 @@ Transformation result #### Example of 'combined' mode -Original configuration +**Original configuration** ```xml 25 ``` -Transformation configuration +**Transformation configuration** ```xml @@ -150,7 +156,7 @@ Transformation configuration ``` -Result human-readable report +**Result human-readable report** ```xml diff --git a/docs/passwordpolicyenforcer/10.2/administration/properties/properties.md b/docs/passwordpolicyenforcer/10.2/administration/properties/properties.md index 074b4466ab..566b86294d 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/properties/properties.md +++ b/docs/passwordpolicyenforcer/10.2/administration/properties/properties.md @@ -60,8 +60,11 @@ The General tab provides options to enable or disable policy enforcement and log - Source (client or server) - The rules the password did not comply with. - **NOTE:** Password Policy Enforcer does not send passwords or password hashes over the + :::note + Password Policy Enforcer does not send passwords or password hashes over the network, even when logging rejections by the Password Policy Client. + ::: + Most Password Policy Enforcer rules are enforced by both the Password Policy Client and Password Policy Server. If the Password Policy Enforcer Client is installed, then it will often reject a @@ -107,7 +110,10 @@ The General tab provides options to enable or disable policy enforcement and log Password Reset V3.x, or PPE/Web V7.x (or earlier). Password Policy Enforcer accepts both encrypted and unencrypted requests if this option is not selected. - **NOTE:** For versions v9.x and above, this option will be selected by default. + :::note + For versions v9.x and above, this option will be selected by default. + ::: + Choose a password policy from the Default Policy drop-down list. Users must comply with the default policy if no other policy is assigned to them. See the @@ -135,8 +141,11 @@ for a particular user. See the [Managing Policies](/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/managing_policies.md) topic for additional information. -**CAUTION:** If Password Policy Enforcer has only one policy and that policy is also the default +:::warning +If Password Policy Enforcer has only one policy and that policy is also the default policy, then Password Policy Enforcer enforces the policy for all users. +::: + The Password Policy Client and Password Policy Server communicate over UDP port 1333 by default. If you need to change the default port, then type the new port number in the **Password Policy Server @@ -180,7 +189,8 @@ Follow the steps below to re-enable Password Policy Enforcer. **Step 4 –** Click **OK** to close the PPS Properties page. -**NOTE:** Password Policy Enforcer is disabled or enabled immediately, but if the management console +:::note +Password Policy Enforcer is disabled or enabled immediately, but if the management console is connected to a domain configuration, there will be some delay while Active Directory propagates the change to the other domain controllers. See the [Connect to a Configuration](/docs/passwordpolicyenforcer/10.2/administration/connecting.md) @@ -188,6 +198,8 @@ topic for additional information. A user's password history may be updated even Enforcer is disabled. See the [Rules](/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md) topic for additional information. +::: + ## Email Tab diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md b/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md index abd4db977a..65cde91513 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md @@ -19,9 +19,12 @@ Password Policy Enforcer will select the Password Policy Enforcer character on t [Policy Priorities](/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/policy_priorities.md) page. -**NOTE:** Only Password Policy Enforcer 10.2 and higher will contain the Windows character set. +:::note +Only Password Policy Enforcer 10.2 and higher will contain the Windows character set. Password Policy Enforcer 9, Netwrix Password Reset3 and Password Policy Enforcer/Web 7 (and older for all products) will always use the Password Policy Enforcer character set. +::: + This default character set contains the following: @@ -64,9 +67,12 @@ set to replace the default. For example, enter "AaEeIiOoUu" to create a vowel ch Click the **Messages** tab to customize the Password Policy Client rule inserts. -**NOTE:** The First Character, Last Character, and Complexity rules are easier to configure, and +:::note +The First Character, Last Character, and Complexity rules are easier to configure, and easier for users to understand. Use these rules instead of the Character rules if they can enforce your desired policy. +::: + ### Enforcing Complex Character Requirements diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/complexity_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/complexity_rule.md index 9d13f7a534..8bc2334d98 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/complexity_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/complexity_rule.md @@ -29,5 +29,8 @@ topic for additional information. Click the Messages tab to customize the Password Policy Client rule inserts. -**NOTE:** The Complexity rule uses custom character set definitions from the Character rules, even +:::note +The Complexity rule uses custom character set definitions from the Character rules, even if the Character rules are disabled. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/compromised_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/compromised_rule.md index 63a41a724b..b9368919de 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/compromised_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/compromised_rule.md @@ -16,8 +16,11 @@ Select the **Enabled** check box to enable the Compromised rule. Click the **...** (ellipsis) button beside each text box to select a hash file. You can also type a path into the text box. The path can contain environment variables like -**CAUTION:** %SystemRoot%. hash files should only be read from a local disk. Using shared hash files +:::warning +%SystemRoot%. hash files should only be read from a local disk. Using shared hash files degrades performance, and could jeopardize security. +::: + Click the **Messages** tab to customize the Password Policy Client rule inserts. diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md index 3c8da9dfc4..36490fcca7 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md @@ -62,9 +62,12 @@ can contain environment variables like %SystemRoot%. A sample dictionary is inst \Program Files (x86)\Password Policy Enforcer\ folder. The dictionary file should be read from a local disk. Using a shared dictionary degrades performance, and could jeopardize security. -**NOTE:** The `\Program Files (x86)\` folder does not exist on 32-bit Windows, so move the +:::note +The `\Program Files (x86)\` folder does not exist on 32-bit Windows, so move the dictionary into the `\Program Files\Password Policy Enforcer\` folder if you have 32-bit and 64-bit computers sharing a common Password Policy Enforcer configuration. +::: + Click the **Sort** button if the dictionary file is being used with Password Policy Enforcer for the first time, or if words have been added to the file since it was last sorted. The Password Policy @@ -94,8 +97,11 @@ The custom dictionary should meet the following requirements: 2. All words are capitalized. 3. The sort button is pressed after pointing to a file in the dictionary rule. -**NOTE:** If you are using a custom dictionary, please provide a different filename. The default +:::note +If you are using a custom dictionary, please provide a different filename. The default dictionary file (dict.txt) may be replaced during an upgrade. +::: + ## Dictionary File Replication diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/first_and_last.md b/docs/passwordpolicyenforcer/10.2/administration/rules/first_and_last.md index 0d0fc02605..e723b113c1 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/first_and_last.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/first_and_last.md @@ -23,6 +23,9 @@ want to specify the **unacceptable** character. Choose one or more character sets by selecting the check boxes beside the character set names. -**NOTE:** Click the Messages tab to customize the Password Policy Client rule inserts. The First and +:::note +Click the Messages tab to customize the Password Policy Client rule inserts. The First and Last Character rules use custom character set definitions from the Character rules, even if the Character rules are disabled. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/history_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/history_rule.md index c708ffb396..bd6375eae1 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/history_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/history_rule.md @@ -28,10 +28,13 @@ so a domain controller that can handle 1,000 password changes a minute with SHA- to handle 250 password changes a minute with Argon2. All numbers are approximate. Use Argon2 if your domain controllers can handle the load. -**NOTE:** Changing the **Hash function** does not modify existing history records. It sets the +:::note +Changing the **Hash function** does not modify existing history records. It sets the function to be used for new password history records. If a user has Argon2 and SHA-256 hashes in their password history, then Password Policy Enforcer calculates both the Argon2 and SHA-256 hashes during a password change to ensure the new password is not in the password history. +::: + The History rule is normally not enforced when a password is reset. Select the **Enforce this rule when a password is reset** check box to override the default behavior. You must also select the @@ -40,7 +43,10 @@ when a password is reset. Click the **Messages** tab to customize the Password Policy Client rule inserts. -**NOTE:** The History rule is not enforced when testing passwords from the Test Policies page. +:::note +The History rule is not enforced when testing passwords from the Test Policies page. +::: + Password Policy Enforcer updates a user's password history whenever their password changes. The password history is updated even if Password Policy Enforcer or the assigned policy is disabled. A @@ -54,11 +60,14 @@ password history, or configure Password Policy Enforcer to use an existing attri Disable Password Policy Enforcer's History rule if you do not want Password Policy Enforcer to store the password history. -**NOTE:** Password Policy Enforcer does not store passwords in the password history, it only stores +:::note +Password Policy Enforcer does not store passwords in the password history, it only stores the Argon2 or SHA-256 hashes. A salt protects the hashes from precomputed attacks, including rainbow tables. If you do not want Password Policy Enforcer to store a password history, then leave the History rule disabled. You can use the Windows History rule together with Password Policy Enforcer's other rules to enforce your password policy. +::: + Password Policy Enforcer can store up to 100 password hashes for each user, but it only stores the minimum needed to enforce the current password policy. For example, if Password Policy Enforcer is @@ -87,13 +96,16 @@ history in a new or existing attribute. A new attribute is recommended, but you attribute if you do not want to extend the AD schema. An AD attribute is only needed for domain user accounts because the password history for local user accounts is stored in the registry. -**CAUTION:** Password Policy Enforcer's password history attribute is confidential to stop +:::warning +Password Policy Enforcer's password history attribute is confidential to stop authenticated users from accessing the password history of other users. See the Microsoft Article [Mark an attribute as confidential in Windows Server 2003 Service Pack 1](http://support.microsoft.com/kb/922836) Microsoft article for additional information. Confidential attributes have additional protection in Active Directory, but they are not as well protected as the Windows password history attributes. There is a higher risk of unauthorized access to the password history if it is stored outside the Windows password history attributes. +::: + Follow the steps below to create a new Active Directory attribute for the password history. @@ -102,11 +114,11 @@ a member of the Schema Admins group. **Step 2 –** Open a Command Prompt window to the Password Policy Enforcer installation folder. -(\Program Files (x86)\Password Policy Enforcer\) +**(\Program Files (x86)\Password Policy Enforcer\)** **Step 3 –** Type the following command: -: ldifde -i -f History.ldf -c "DC=X" "DC=yourdomain,DC=yourdomain" +**: ldifde -i -f History.ldf -c "DC=X" "DC=yourdomain,DC=yourdomain"** Replacing the last parameter with your domain's DN. @@ -131,7 +143,8 @@ administrator accesses the password history they might be able to extract the ha but they cannot extract the passwords directly because the password history does not contain any passwords. -**CAUTION:** The password history of a local user account is not automatically deleted when the user +:::warning +The password history of a local user account is not automatically deleted when the user account is deleted. If a local user account is deleted, then another local user account is created on the same computer with the same username, the new user will inherit the deleted user's password history. The default registry permissions stop users from accessing their own password history, so @@ -142,3 +155,5 @@ user's current password is validated, and the Windows Minimum Age rule is enforc password history is checked, so every compliant and incorrect password guessed will overwrite one hash in the password history. This information applies only to local user accounts. The password history for domain user accounts is deleted when users are deleted. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/keyboard_pattern.md b/docs/passwordpolicyenforcer/10.2/administration/rules/keyboard_pattern.md index f497f2ec1c..07bd7bf927 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/keyboard_pattern.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/keyboard_pattern.md @@ -24,10 +24,13 @@ other keyboard layouts. keyboard patterns that contain direction changes. For example, "qwewq" and "4rfr4" are both recognized as five-character keyboard patterns if direction change detection is enabled. -**NOTE:** Password Policy Enforcer detects direction changes in both axes if the pattern detection +:::note +Password Policy Enforcer detects direction changes in both axes if the pattern detection mode is set to "Horizontal or vertical". For example, "qawsed", "qwedsa", "qwedcv", and "qwsazx" are all recognized as six-character keyboard patterns if direction change detection is enabled and the pattern detection mode is set to "Horizontal or vertical". +::: + - Select the **Detect key repeat** check box if Password Policy Enforcer should detect keyboard patterns that contain repeated keystrokes. For example, "qwwert" and "qwwwer" are both recognized @@ -48,7 +51,10 @@ pattern detection mode is set to "Horizontal or vertical". Click the **Messages** tab to customize the Password Policy Client rule inserts. -**NOTE:** Modifier keys such as Shift and AltGr will not evade pattern detection. Key positions can +:::note +Modifier keys such as Shift and AltGr will not evade pattern detection. Key positions can differ, even in keyboards with matching layouts. The Keyboard Pattern rule may not detect some patterns because of these differences. Please report any missed patterns to [Netwrix Support](https://www.netwrix.com/support.html). + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/maximum_age_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/maximum_age_rule.md index c751b07cb2..51c88bb6dc 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/maximum_age_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/maximum_age_rule.md @@ -29,7 +29,8 @@ required number of characters will not expire until the second (higher) days val values are identical, then passwords will expire after the specified number of days, irrespective of length. -**NOTE:** When the Maximum Age rule is configured to delay the expiry of longer passwords, it +:::note +When the Maximum Age rule is configured to delay the expiry of longer passwords, it creates an Active Directory security group called "PPE Extended Maximum Age Users". Password Policy Enforcer uses this group to identify which users are eligible for a delayed password expiry. Users are added and removed from the group automatically. You can move and rename this group, but do not @@ -38,6 +39,8 @@ name. Change a Password Policy Enforcer configuration setting (any setting) afte the group to trigger a cache update in Password Policy Enforcer. Password Policy Enforcer recreates this group if you delete it. To stop creating a group, make the two days values equal in all policies. +::: + Optionally, check the **Log Event...** box to have Password Policy Enforcer log an event each time a password expires. Password Policy Enforcer expires passwords 1:00 AM daily on the server holding the @@ -70,12 +73,15 @@ Users with expired passwords are always prompted to change their password, even and Warning modes. Users can ignore the prompt to change their password unless they are being forced to change it. -**NOTE:** The password expiry prompt is a Windows client feature, and is displayed even if the +:::note +The password expiry prompt is a Windows client feature, and is displayed even if the Password Policy Client is not installed. Windows clients display the prompt 5 days before passwords expire by default. You can alter this behavior in the Windows Group Policy security settings. See the [Interactive logon: Prompt user to change password before expiration](https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/interactive-logon-prompt-user-to-change-password-before-expiration) Microsoft article for additional information. +::: + Password Policy Enforcer expires passwords at 1:00 AM every day on the domain controller holding the PDC emulator operations master role. It sets "User must change password at next logon" for users diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/minimum_age_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/minimum_age_rule.md index 45049ee81c..ccde3780b9 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/minimum_age_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/minimum_age_rule.md @@ -19,7 +19,8 @@ changing their password. Click the **Messages** tab to customize the Password Policy Client. Only the Reason insert is shown because minimum age requirements are not included in the Password Policy message. -**NOTE:** The Minimum Age rule is unique because users cannot comply with it by choosing a different +:::note +The Minimum Age rule is unique because users cannot comply with it by choosing a different password; they must wait until the required number of days has elapsed. The Password Policy Client consequently handles rejections by this rule differently to other rules. Rather than displaying the usual message components, the Password Policy Client only displays the Minimum Age rule's Reason @@ -27,6 +28,8 @@ insert. See [Password Policy Client](/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md) topic for additional information. The Rejection Reason template, macros, and inserts from other rules are not displayed when a password change is denied by the Minimum Age rule. +::: + The Minimum Age rule is not enforced during policy testing, but the test log does show the user's password age. A log entry is also added if the Minimum Age rule would have rejected the password diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md b/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md index 334fc755d4..1628b441ac 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md @@ -29,19 +29,170 @@ box is selected, Password Policy Enforcer tests passwords with, and without char This stops users from circumventing the rule by substituting some characters. Password Policy Enforcer detects these common character substitutions: -| Original | | Substituted | -| -------- | --- | ----------------- | -| A | a | ^ @ | -| B | b | 8 | -| C | c | ( or \{ or < or [ | -| D | d | ) or \} or > or ] | -| E | e | 3 | -| G | g | 6 or 9 | -| I | i | ! or \| or 1 | -| O | o | 0 or (zero) | -| S | s | $ or 5 | -| T | t | + or 7 | -| Z | z | 2 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Original + + Substituted +
+ A + + a + + ^ @ +
+ B + + b + + 8 +
+ C + + c + + + + + + + + + +
+ ( or { + <[
+
+ D + + d + + + + + + + + + +
+ ) or } + >]
+
+ E + + e + + 3 +
+ G + + g + + 6 or 9 +
+ I + + i + + + + + + + + +
+ ! or | +   1
+
+ O + + o + + 0 or (zero) +
+ S + + s + +

$ or 5

+
+ T + + t + + + or 7 +
+ Z + + z + + 2 +
## Tolerance diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/similarity_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/similarity_rule.md index 47a3567251..8b511441a0 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/similarity_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/similarity_rule.md @@ -28,6 +28,9 @@ Select the **Enabled** check box to enable the Similarity rule. tolerance is five (or lower), and accept it if the tolerance is six (or higher). Choose the **Auto** value to reject passwords that contain the user's entire current password. -**NOTE:** Click the Messages tab to customize the Password Policy Client rule inserts. This rule is +:::note +Click the Messages tab to customize the Password Policy Client rule inserts. This rule is only enforced if the Password Policy Client is installed. It does not store or transmit passwords or password hashes. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/administration/support_tools.md b/docs/passwordpolicyenforcer/10.2/administration/support_tools.md index 2af21b3763..f541a4e890 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/support_tools.md +++ b/docs/passwordpolicyenforcer/10.2/administration/support_tools.md @@ -63,7 +63,7 @@ Policy Enforcer 10.0,CN=System). **Step 8 –** Import configuration with the following command: -ldifde -i -f PPE10.1.txt +**ldifde -i -f PPE10.1.txt** Check **URL** and **wWWHomePage** attributes in ADSIEdit or AD Users and Computers before opening PPE Management Console to ensure that configuration has been maintained. @@ -73,8 +73,11 @@ PPE Management Console to ensure that configuration has been maintained. The Property Editor allows you to directly edit the Password Policy Enforcer configuration. You should only use the Property Editor if instructed to by Netwrix Support. -**CAUTION:** Only configure the settings on the Property Editor tab if instructed to do so by +:::warning +Only configure the settings on the Property Editor tab if instructed to do so by [Netwrix Support](https://www.netwrix.com/support.html). +::: + Follow the steps below to open and configure the Property Editor. diff --git a/docs/passwordpolicyenforcer/10.2/administration/uninstall.md b/docs/passwordpolicyenforcer/10.2/administration/uninstall.md index ae0e67cce9..ed178f90f3 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/uninstall.md +++ b/docs/passwordpolicyenforcer/10.2/administration/uninstall.md @@ -6,9 +6,12 @@ sidebar_position: 40 # Uninstall Netwrix Password Policy Enforcer -**NOTE:** Uninstalling the product does not remove system files as the PPE.DLL from the System32 +:::note +Uninstalling the product does not remove system files as the PPE.DLL from the System32 folder. Before rebooting the Domain Controller, Windows has a lock on the system files. You can delete system files after rebooting the Domain Controller. +::: + Follow the steps to uninstall Password Policy Enforcer. diff --git a/docs/passwordpolicyenforcer/10.2/administration/upgrading.md b/docs/passwordpolicyenforcer/10.2/administration/upgrading.md index 8932172e21..ca89b8381b 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/upgrading.md +++ b/docs/passwordpolicyenforcer/10.2/administration/upgrading.md @@ -43,7 +43,7 @@ topic for additional information. The Password Policy Enforcer 10.2 Password Policy Server is backwards compatible with the V8.x Password Policy Client. You can benefit from most of the new features by upgrading the Password Policy Server on the domain controllers. Do this before deploying the 10.2 Password Policy Client. -See the [What's New](/docs/passwordpolicyenforcer/10.2/overview/whatsnew.md) topic for additional information. +See the [What's New](/docs/passwordpolicyenforcer/10.2/whatsnew.md) topic for additional information. ### Upgrading the Password Policy Server @@ -71,11 +71,14 @@ You can run a combination of V8.x and 10.2 Password Policy Servers, but extended versions is not recommended as it adds administrative overhead. Maintain both versions only for a short time while you roll out Password Policy Enforcer V9.x. -**NOTE:** Any configuration changes made from the 10.2 management console will only affect 10.2 +:::note +Any configuration changes made from the 10.2 management console will only affect 10.2 domain controllers. Likewise, any changes made from the V8.x management console will only affect V8.x domain controllers. You must make configuration changes in both management consoles until all domain controllers are upgraded to 10.2. Failure to do so may lead to inconsistent enforcement of the password policy. +::: + Older versions of the Password Policy Enforcer Client (prior to V6.0) cannot detect passphrases. Users must comply with the policy's compliance level when these older clients are installed. See the @@ -102,11 +105,14 @@ topic for additional information. PPE/Web V3.x and Netwrix Password Reset V1.x use the Password Policy Enforcer V3.x communication protocol. These clients are not compatible with the 10.2 server. -**CAUTION:** Do not use the automatic tolerance option with Password Policy Enforcer V4.x clients. +:::warning +Do not use the automatic tolerance option with Password Policy Enforcer V4.x clients. These clients will enforce an extremely restrictive password policy if this option is enabled. They will reject any password that contains a character found in the comparison parameter. See the [Rules](/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md) topic for additional information. +::: + ### Upgrading the Password Policy Client @@ -127,7 +133,7 @@ topic for additional information. The Password Policy Enforcer 10.2 Password Policy Server is backwards compatible with the V7.x Password Policy Client. You can benefit from most of the new features by upgrading the Password Policy Server on the domain controllers. Do this before deploying the 10.2 Password Policy Client. -See the [What's New](/docs/passwordpolicyenforcer/10.2/overview/whatsnew.md) topic for additional information. +See the [What's New](/docs/passwordpolicyenforcer/10.2/whatsnew.md) topic for additional information. ### Upgrading the Password Policy Server @@ -153,11 +159,14 @@ You can run a combination of V7.x and V9.x Password Policy Servers, but extended versions is not recommended as it adds administrative overhead. Maintain both versions only for a short time while you roll out PPE V9.x. -**NOTE:** Any configuration changes made from the V10.2 management console will only affect V10.x +:::note +Any configuration changes made from the V10.2 management console will only affect V10.x domain controllers. Likewise, any changes made from the V7.x management console will only affect V7.x domain controllers. You must make configuration changes in both management consoles until all domain controllers are upgraded to V10.x. Failure to do so may lead to inconsistent enforcement of the password policy. +::: + Older versions of the PPE Client (prior to V6.0) cannot detect passphrases. Users must comply with the policy's compliance level when these older clients are installed. @@ -178,9 +187,12 @@ Netwrix Password Reset V2.x may truncate messages with long inserts. Password Policy Enforcer Web V3.x and Netwrix Password Reset V1.x use the Password Policy Enforcer V3.x communication protocol. These clients are not compatible with the V10.x server. -**CAUTION:** Do not use the automatic tolerance option with Password Policy Enforcer V4.x clients. +:::warning +Do not use the automatic tolerance option with Password Policy Enforcer V4.x clients. These clients will enforce an extremely restrictive password policy if this option is enabled. They will reject any password that contains a character found in the comparison parameter. +::: + The PPE Client for Windows 8, 10, Server 2012, Server 2016, and Server 2019 displays messages in a smaller area than previous versions of Windows. Some of the default message components were @@ -214,7 +226,7 @@ topic for complete installation instructions. The Password Policy Enforcer 10.2 Password Policy Server is backwards compatible with the V6.x Password Policy Client. You can benefit from most of the new features by upgrading the Password Policy Server on the domain controllers. Do this before deploying the 10.2 Password Policy Client. -See the [What's New](/docs/passwordpolicyenforcer/10.2/overview/whatsnew.md) topic for additional information. +See the [What's New](/docs/passwordpolicyenforcer/10.2/whatsnew.md) topic for additional information. ### Upgrading the Password Policy Server @@ -247,11 +259,14 @@ master role to Password Policy Enforcer V910x. See the [Rules](/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md) topic for additional information. -**NOTE:** Any configuration changes made from the 10.2 management console will only affect 10.2 +:::note +Any configuration changes made from the 10.2 management console will only affect 10.2 domain controllers. Likewise, any changes made from the V6.x management console will only affect V6.x domain controllers. You must make configuration changes in both management consoles until all domain controllers are upgraded to 10.2. Failure to do so may lead to inconsistent enforcement of the password policy. +::: + The **Do not check admin/helpdesk password resets** property in the PPS Properties page was renamed to **Enforce policy when password is reset**. The check box value changes after upgrading, but @@ -293,11 +308,14 @@ inserts. PPE/Web V3.x and Netwrix Password Reset V1.x use the Password Policy Enforcer V3.x communication protocol. These clients are not compatible with the 10.2 server. -**CAUTION:** Do not use the automatic tolerance option with Password Policy Enforcer V4.x clients. +:::warning +Do not use the automatic tolerance option with Password Policy Enforcer V4.x clients. These clients will enforce an extremely restrictive password policy if this option is enabled. They will reject any password that contains a character found in the comparison parameter. See the [Rules](/docs/passwordpolicyenforcer/10.2/administration/rules/rules.md) topic for additional information. +::: + The Password Policy Enforcer Client for Windows 2016, 2019, and 2022 displays messages in a smaller area than previous versions of Windows. Some of the default message components were shortened to fit diff --git a/docs/passwordpolicyenforcer/10.2/evaluation/configuring_policy_rules.md b/docs/passwordpolicyenforcer/10.2/evaluation/configuring_policy_rules.md index c0284103ca..d72afdefe2 100644 --- a/docs/passwordpolicyenforcer/10.2/evaluation/configuring_policy_rules.md +++ b/docs/passwordpolicyenforcer/10.2/evaluation/configuring_policy_rules.md @@ -43,5 +43,8 @@ Enforcer** folder. **Step 12 –** Click **Open**, then click **OK**. -**NOTE:** Press F1 while using the management console to display help information for the current +:::note +Press F1 while using the management console to display help information for the current window. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/evaluation/enforcing_multiple_policies.md b/docs/passwordpolicyenforcer/10.2/evaluation/enforcing_multiple_policies.md index dae98ea326..a78b2918bd 100644 --- a/docs/passwordpolicyenforcer/10.2/evaluation/enforcing_multiple_policies.md +++ b/docs/passwordpolicyenforcer/10.2/evaluation/enforcing_multiple_policies.md @@ -62,7 +62,10 @@ Directory Users and Computers console, or the Local Users and Groups console to changes and resets for the PPETestUser and PPETestAdmin accounts. Password Policy Enforcer should enforce the Users policy for PPETestUser, and the Admins policy for PPETestAdmin. -**NOTE:** The +:::note +The [Administration](/docs/passwordpolicyenforcer/10.2/administration/administration_overview.md) topic contains more information about policy assignments, and how Password Policy Enforcer resolves policy assignment conflicts that occur when more than one policy is assigned to a user. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/evaluation/evaluation_overview.md b/docs/passwordpolicyenforcer/10.2/evaluation/evaluation_overview.md index 69e409d856..ca5a40f7e2 100644 --- a/docs/passwordpolicyenforcer/10.2/evaluation/evaluation_overview.md +++ b/docs/passwordpolicyenforcer/10.2/evaluation/evaluation_overview.md @@ -18,8 +18,11 @@ Unlike password cracking products that check passwords after they are accepted b system, Password Policy Enforcer checks new passwords immediately to ensure that weak passwords do not jeopardize system security. -**NOTE:** You can also use Password Policy Enforcer to ensure that passwords are compatible with +:::note +You can also use Password Policy Enforcer to ensure that passwords are compatible with other systems, and to synchronize passwords with other systems and applications. +::: + The [Administration](/docs/passwordpolicyenforcer/10.2/administration/administration_overview.md) diff --git a/docs/passwordpolicyenforcer/10.2/evaluation/installation.md b/docs/passwordpolicyenforcer/10.2/evaluation/installation.md index 3e3cfdc630..dbe4a58821 100644 --- a/docs/passwordpolicyenforcer/10.2/evaluation/installation.md +++ b/docs/passwordpolicyenforcer/10.2/evaluation/installation.md @@ -10,11 +10,14 @@ You can install Password Policy Enforcer manually, or you can automate the insta software distribution tool. Installing Password Policy Enforcer does not extend the Active Directory schema. -**NOTE:** Refer to the +:::note +Refer to the [Administration](/docs/passwordpolicyenforcer/10.2/administration/administration_overview.md) topic to learn how to install Password Policy Enforcer with Group Policy. You can also use other software distribution tools like Microsoft's System Center Configuration Manager to install Password Policy Enforcer. +::: + Follow the steps below to manually install Password Policy Enforcer. @@ -47,5 +50,8 @@ Password Policy Client on a domain with client computers. See the [Password Policy Client](/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md) topic for additional information. -**NOTE:** The Password Policy Client does not replace or modify any Windows system files. You can +:::note +The Password Policy Client does not replace or modify any Windows system files. You can install it with Group Policy, or some other software distribution tool in your production network. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md b/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md index 07733dc12e..595359af3b 100644 --- a/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md +++ b/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md @@ -42,10 +42,13 @@ password complied with. Click the Log tab to view Password Policy Enforcer's internal event log. The information in the event log can help you to understand why Password Policy Enforcer accepted or rejected a password. -**NOTE:** Policy testing simulates a password change, but it may not always reflect what happens +:::note +Policy testing simulates a password change, but it may not always reflect what happens when a user changes their password. See the [Managing Policies](/docs/passwordpolicyenforcer/10.2/administration/managingpolicies/managing_policies.md) topic for more information. +::: + ## Windows Change Password Screen @@ -108,9 +111,12 @@ Follow the steps below to test password policies from these consoles. **Step 4 –** Click **OK**. -**NOTE:** These consoles do not explain why a password was rejected. Use the Password Policy +:::note +These consoles do not explain why a password was rejected. Use the Password Policy Enforcer management console, or the Change Password screen with the Password Policy Enforcer Client installed to see this information. +::: + The table below contains some sample passwords and expected test results when the Users policy is enforced. Try to change the password for the PPETestUser account to confirm that Password Policy @@ -138,5 +144,8 @@ These three passwords are only marginally stronger than the rejected passwords. shows you how to improve the password policy so Password Policy Enforcer will reject these passwords. -**NOTE:** Contact Netwrix support[ ](mailto:support@anixis.com)if Password Policy Enforcer is not +:::note +Contact Netwrix support[ ](mailto:support@anixis.com)if Password Policy Enforcer is not working as expected, and we will help you to resolve the problem. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/index.md b/docs/passwordpolicyenforcer/10.2/index.md deleted file mode 100644 index 0df6468dc5..0000000000 --- a/docs/passwordpolicyenforcer/10.2/index.md +++ /dev/null @@ -1 +0,0 @@ -# Password Policy Enforcer 10.2 diff --git a/docs/passwordpolicyenforcer/10.2/overview/overview.md b/docs/passwordpolicyenforcer/10.2/overview.md similarity index 95% rename from docs/passwordpolicyenforcer/10.2/overview/overview.md rename to docs/passwordpolicyenforcer/10.2/overview.md index e366c2efa7..44e3aaddaa 100644 --- a/docs/passwordpolicyenforcer/10.2/overview/overview.md +++ b/docs/passwordpolicyenforcer/10.2/overview.md @@ -1,7 +1,7 @@ --- title: "Netwrix Password Policy Enforcer v10.2" description: "Netwrix Password Policy Enforcer v10.2" -sidebar_position: 10 +sidebar_position: 1 --- # Netwrix Password Policy Enforcer v10.2 diff --git a/docs/passwordpolicyenforcer/10.2/overview/_category_.json b/docs/passwordpolicyenforcer/10.2/overview/_category_.json deleted file mode 100644 index b2756858b8..0000000000 --- a/docs/passwordpolicyenforcer/10.2/overview/_category_.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "label": "Netwrix Password Policy Enforcer v10.2", - "position": 10, - "collapsed": true, - "collapsible": true, - "link": { - "type": "doc", - "id": "overview" - } -} \ No newline at end of file diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md index 0c44110236..05abe605f6 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md @@ -8,6 +8,9 @@ key. To install a new license key, copy the entire license e-mail to the clipboard, and then click Get license from clipboard. -**NOTE:** Password Reset includes a 30-day evaluation license for up to 50 users. Please +:::note +Password Reset includes a 30-day evaluation license for up to 50 users. Please [contact Netwrix support](mailto:support@netwrix.com)[](mailto:support@anixis.com) if you would like to evaluate Password Reset with more than 50 users. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md index c532fcfd78..2f1e1e6274 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md @@ -24,24 +24,27 @@ code. The files for the US English language are: The formatting information is in `apr.css`, and the image files are in the images folder. These files are installed into the `\Inetpub\wwwroot\pwreset\` folder by default. -**NOTE:** Always backup the user interface files before and after editing them. Your changes may be +:::note +Always backup the user interface files before and after editing them. Your changes may be overwritten when Password Reset is upgraded, and some changes could stop Password Reset from working correctly. Having a backup allows you to quickly revert to a working setup. Web browsers display pages differently, so test your changes with several versions of the most popular browsers to ensure compatibility. +::: + ### Ranges and Fields `en_default.htm` contains static HTML, but the other .htm files contain special comment tags that are used to prepare the pages. Some of these comments define ranges. A range looks like this: -Some text or HTML +**Some text or HTML** The Web Interface deletes ranges (and the text inside them) when they are not needed. Some ranges span only one word, while others span several lines. The other type of comment tag is called a field. - +**** Fields are replaced by some other information. For example, the field above is replaced with a username. @@ -50,12 +53,12 @@ username. Each template ends with a resource string section. -** @RES_EMPTY_FIELD_USERNAME: Enter your username in the Username box. @RES_EMPTY_FIELD_DOMAIN: Enter your domain name in the Domain box. ---> +**-->** Resource strings are mostly validation error messages, but they can contain any text Password Reset may need to build the page. Do not modify the identifiers on the left, only edit the text on the @@ -72,8 +75,11 @@ text_short and text_long classes are used to display different content depending text_short elements are shown on small screens (up to 420 pixels wide). text_long elements are shown on larger screens. -**CAUTION:** You may rebrand the Password Reset user interface, but it is a violation of the License +:::warning +You may rebrand the Password Reset user interface, but it is a violation of the License Agreement to modify, remove or obscure any copyright notice. +::: + ## Examples @@ -207,8 +213,11 @@ Change the three question numbers on each line so they match the original number Password Reset will not work correctly. You should also edit the validation error messages in `en_enroll.htm` as some of them make reference to selecting questions from a list. -**NOTE:** Users may not choose appropriate security questions, so it is advisable to leave the +:::note +Users may not choose appropriate security questions, so it is advisable to leave the question lists for some of the enrollment questions. +::: + ### Change Font Sizes and Colors @@ -235,12 +244,15 @@ The Web Interface icons are in Scalable Vector Graphics (SVG) format. Vector gra sharpness when resized. You can easily change the colors of the icons with a text editor. Open the SVG file with a text editor like Notepad, and edit this section of the file: -fill="#FF7F00" +**fill="#FF7F00"** Replace the hexadecimal color code with your desired color code. You can use a color picker like this one to generate the color code: [https://www.w3schools.com/colors/colors_picker.asp](https://www.w3schools.com/colors/colors_picker.asp) -**NOTE:** Some old web browsers with basic HTML5 support cannot display SVG images. Password Reset +:::note +Some old web browsers with basic HTML5 support cannot display SVG images. Password Reset works with these browsers, but the SVG images are not shown. You can convert the icons to GIF or PNG format if you want them shown on these older browsers. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md index e164ee955c..64fd5e641d 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md @@ -15,8 +15,11 @@ Select the **Save e-mail to a pickup folder** option if NPR should save e-mails delivery by a mail server. Click **Browse...** to select a folder. The mail server must monitor this folder for new e-mail. -**NOTE:** Saving e-mail to a pickup folder is the fastest and most reliable delivery method. Use +:::note +Saving e-mail to a pickup folder is the fastest and most reliable delivery method. Use this option if your mail server supports pickup folders. +::: + ### Triggers @@ -40,9 +43,12 @@ use these macros. | [AD_OR_NPR_EMAIL] | The e-mail address in AD, or the e-mail address in Password Resetif the AD address is blank | | [NPR_OR_AD_EMAIL] | The e-mail address in NPR, or the e-mail address in AD if the Password Reset address is blank | -**NOTE:** Use [NPR_OR_AD_EMAIL] with caution as Password Reset does not check the validity of e-mail +:::note +Use [NPR_OR_AD_EMAIL] with caution as Password Reset does not check the validity of e-mail addresses. If the e-mail address in Password Reset's database is no longer valid, then the alert is only sent to the invalid address. +::: + Type additional recipient e-mail addresses in the **Bcc** text box if you want to send any blind carbon copies. Separate multiple recipients with a semicolon. @@ -72,10 +78,13 @@ understand their e-mail alerts. ![configuring_npr_5](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_5.webp) -**CAUTION:** An attacker may choose a specific language to avoid detection. E-mail alerts are sent +:::warning +An attacker may choose a specific language to avoid detection. E-mail alerts are sent in the Web Interface language chosen by the attacker if the target user has not enrolled or changed their password with Password Reset. The target user will receive the e-mail alerts, but they may not understand them. Use the Rest API to remind new users to enroll so their preferred language is known to Password Reset. See the [Enabling the API](/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md#enabling-the-api) topic for additional information. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md index 9c2ddffc26..278e09884e 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md @@ -9,7 +9,7 @@ Use the **Enroll** tab to maintain the list of enrollment questions and options. Users must answer some questions about themselves when they manually enroll. They choose their questions from the Question List. -Add a question +**Add a question** Follow the steps below to add a question to the list. @@ -21,7 +21,7 @@ Follow the steps below to add a question to the list. **Step 4 –** Click **OK**, and then click **Apply**. -Remove a question +**Remove a question** Follow the steps below to remove a question from the list. @@ -33,10 +33,13 @@ Follow the steps below to remove a question from the list. **Step 4 –** Click **Apply**. -**NOTE:** You can rearrange questions by dragging them. You can also replace question lists with +:::note +You can rearrange questions by dragging them. You can also replace question lists with text boxes so users can enter their own questions. See the [Editing the HTML Templates](/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md) document for more information +::: + ### Options diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md index 19a948f35b..75ea6fe087 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md @@ -30,8 +30,11 @@ The image above shows a filter on the Date, Source, and Source IP columns. Only events on 2/5/2015 originating from IP addresses starting with 192.168.115 are shown. The small blue icons in the column headers show which columns have active filters. -**NOTE:** Rows are shown only if they match all filter values (logical AND). Use the custom filter +:::note +Rows are shown only if they match all filter values (logical AND). Use the custom filter or the filter editor windows for a logical OR filter. +::: + ### Filtering by Column Values @@ -80,8 +83,11 @@ that meet either condition. Select an operator and value for the second condition, or leave them blank if your filter only has one condition. Click **OK** to close the Custom Filter window and apply the filter. -**NOTE:** The Filter Editor is shown instead of the Custom Filter window if the current filter is +:::note +The Filter Editor is shown instead of the Custom Filter window if the current filter is too complex for the Custom Filter window. +::: + ### The Filter and Status Bars @@ -112,8 +118,11 @@ Follow the steps below to export the visible rows in the current tab. **Step 3 –** Type a filename, and then click **Save**. -**NOTE:** When exporting to Excel, you can choose the file type from the **Export to Excel** window. +:::note +When exporting to Excel, you can choose the file type from the **Export to Excel** window. The default file type is .xlsx. +::: + ## Deleting Users @@ -128,5 +137,8 @@ Follow the steps below to delete a user. **Step 3 –** Press the **DELETE** key, and then click **OK**. -**NOTE:** You can still view a user's event history in the **Audit Log** tab after they are deleted +:::note +You can still view a user's event history in the **Audit Log** tab after they are deleted from the **Users** tab. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md index 0ba9e38b95..d4ba0d1662 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md @@ -12,7 +12,7 @@ information. The Domain List is empty when Password Reset is first installed, and users must type their domain name. You can configure Password Reset to display a list of domains instead of an empty text box. -Add a Domain to the list +**Add a Domain to the list** Follow the steps below to add a domain to the list. @@ -22,11 +22,14 @@ Follow the steps below to add a domain to the list. **Step 3 –** Click **OK**, and then click **Apply**. -**NOTE:** The most frequently used domain should be first in the list as it will be the default. You +:::note +The most frequently used domain should be first in the list as it will be the default. You can rearrange the domains by dragging them to another position. You can also click Sort to sort them alphabetically. +::: -Remove a Domain from the list + +**Remove a Domain from the list** Follow the steps below to remove a domain from the list: @@ -89,11 +92,14 @@ Enforcer queries to a specific IP address by setting the `PPEIPAddress` registry address of a Password Policy Server. The `PPEIPAddress` value is in `HKEY_LOCAL_MACHINE\SOFTWARE\ANIXIS\ANIXIS Password Reset\3.0`. -**NOTE:** Due to a protocol upgrade, Netwrix Password Reset v3.3 is not compatible with Netwrix +:::note +Due to a protocol upgrade, Netwrix Password Reset v3.3 is not compatible with Netwrix Password Policy Enforcer v8.x and earlier versions. If you are using Netwrix Password Reset with any of those older Netwrix Password Policy Enforcer versions, please consider upgrading Netwrix Password Policy Enforcer first to a current version, and only then upgrade Netwrix Password Reset to v3.3 (or later). +::: + Users are more likely to see the Password Policy Enforcer Generic Rejection message rather than the more detailed Rejection message when this registry value is set. Users may also have the wrong @@ -104,9 +110,12 @@ firewall rules to open this port. See the [Password Policy Client](/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md) topic for more information. -**NOTE:** Due to a protocol upgrade, it is now recommended to enable protocol encryption for +:::note +Due to a protocol upgrade, it is now recommended to enable protocol encryption for clients. To do so, please navigate to the PPS Properties in your Netwrix Password Policy Enforcer server configuration, and enable "Only accept encrypted client request". +::: + ![using_ppe_with_npr](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_ppe_with_npr.webp) @@ -115,6 +124,9 @@ Policy Enforcer v8.x or earlier versions, or with Netwrix Password Policy Enforc using Netwrix Password Reset v3.3 with any of those older versions of Netwrix Password Policy Enforcer, please consider upgrading first to a current and supported version. -**NOTE:** Password Policy Enforcer is not included with Password Reset. Go to +:::note +Password Policy Enforcer is not included with Password Reset. Go to [www.netwrix.com/password_policy_enforcer](https://www.netwrix.com/password_policy_enforcer.html) to learn more about Password Policy Enforcer. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md index df350b5ac8..25e99443bd 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md @@ -32,12 +32,15 @@ the credentials are valid. ![installing_npr_624x193](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/installing_npr_624x193.webp) -**NOTE:** Microsoft SQL Server Compact is installed with the Password Reset Server. SQL Server +:::note +Microsoft SQL Server Compact is installed with the Password Reset Server. SQL Server Compact is free to use, and should only be removed if you move the database to SQL Server. SQL Server Compact is an embedded database. Unlike SQL Server, you do not need to configure or manage it. See the [Working with the Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md) topic for additional information. +::: + ## Installation Types @@ -54,9 +57,12 @@ the two servers to communicate. You choose the installation type when installing Password Reset, but you can change it later. -**NOTE:** An Password Reset Server can accept requests from more than one Web Interface. Having +:::note +An Password Reset Server can accept requests from more than one Web Interface. Having multiple Web Interfaces allows for load balancing and failover, but you should only consider this option if you already have redundant web servers. Most organizations only need one Web Interface. +::: + Password Reset can share server resources with other applications. It is normally not necessary to dedicate a server exclusively to Password Reset. The Web Interface can be installed on an existing @@ -84,26 +90,35 @@ then click **Next** if you accept all the terms. **Step 7 –** Enter a **User Name**, **Domain**, and **Password** for the Password Reset service account. The account will be created and added to the Domain Admins group if it does not exist. -**NOTE:** You can remove the account from the Domain Admins group later. If using an existing +:::note +You can remove the account from the Domain Admins group later. If using an existing account, make sure it has the required permissions. See the [Securing Password Reset](/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md) topic for additional information. +::: + **Step 8 –** Click **Next**. **Step 9 –** Select an **IIS Web Site** from the drop-down list, and optionally change the default **Virtual Directory** for the Web Interface. -**NOTE:** The Web Interface should be installed in its own virtual directory. +:::note +The Web Interface should be installed in its own virtual directory. +::: + **Step 10 –** Click **Next** twice. **Step 11 –** Wait for Password Reset to install, and then click **Finish**. -**NOTE:** The Password Reset Setup wizard installs the Password Reset Server and associated files +:::note +The Password Reset Setup wizard installs the Password Reset Server and associated files into the `\Program Files\NetwrixPassword Reset\` folder by default. Use the SERVERDIR parameter to install the Password Reset Server to a different folder. For example, APR330.exe SERVERDIR="D:\Programs\NPR\" +::: + ### Multiple Server Installation @@ -129,7 +144,7 @@ The Password Reset Server responds with a datagram that has the following proper | Destination address | Web Interface server's IP address | | Destination Port | Any | -Install Password Reset Server on an Internal Network +**Install Password Reset Server on an Internal Network** Follow the steps below to install the Password Reset Server on a server in the internal network. @@ -148,25 +163,31 @@ then click **Next** if you accept all the terms. **Step 6 –** Type a **User Name**, **Domain**, and **Password** for the Password Reset service account. The account will be created and added to the Domain Admins group if it does not exist. -**NOTE:** You can remove the account from the Domain Admins group later. If using an existing +:::note +You can remove the account from the Domain Admins group later. If using an existing account, make sure it has the required permissions. See the [Securing Password Reset](/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md) topic for additional information. +::: + **Step 7 –** Make sure the **Create Windows Firewall Exception for the NPR Server service** check box is selected, and then click **Next** twice. **Step 8 –** Wait for the Password Reset Server to install, and then click **Finish**. -**NOTE:** Open UDP port 5100 on the Password Reset Server computer if a host-based firewall other +:::note +Open UDP port 5100 on the Password Reset Server computer if a host-based firewall other than the Windows Firewall is installed. This is needed in addition to the DMZ firewall rules above. The Password Reset Setup wizard installs the Password Reset Server and associated files into the `\Program Files\Netwrix Password Reset\` folder by default. Use the SERVERDIR parameter to install the Password Reset Server to a different folder. For example, APR330.exe SERVERDIR="D:\Programs\NPR\" +::: + -Install Web Interface Server in DMZ +**Install Web Interface Server in DMZ** Follow the steps below to install the Web Interface on a server in the DMZ. @@ -241,9 +262,12 @@ topic for additional information. Interface files before upgrading**. The Web Interface files are installed in the `\Inetpub\wwwroot\pwreset\` folder by default. -**NOTE:** A full backup of the NPR server(s) is recommended. This allows you to roll back to the +:::note +A full backup of the NPR server(s) is recommended. This allows you to roll back to the previous version if the upgrade cannot be completed. You may need to restart Windows after upgrading. +::: + If Password Reset was originally installed by someone else and you do not have their installation notes, then read the installation instructions above before you begin. Also make sure you know the @@ -277,11 +301,14 @@ the [Editing the HTML Templates](/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md) topic for additional information. -**CAUTION:** Due to a protocol upgrade, Netwrix Password Reset v3.3 is not compatible with Netwrix +:::warning +Due to a protocol upgrade, Netwrix Password Reset v3.3 is not compatible with Netwrix Password Policy Enforcer v8.x and earlier versions. If you are using Netwrix Password Reset with any of those older Netwrix Password Policy Enforcer versions, please consider upgrading Netwrix Password Policy Enforcer first to a current version, and only then upgrade Netwrix Password Reset to v3.3 (or later). +::: + ### Before You Begin @@ -310,7 +337,7 @@ imported. ## Other Tasks -Move Database files +**Move Database files** The database files are created in the installation folder when NPR is first installed. The default installation folder for NPR V2.x was below the Program Files (x86) folder, but in NPR V3.3 it is diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md index c618a17829..fea5784b93 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md @@ -6,7 +6,10 @@ Reset system. ![the_password_reset_client_905x750](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/the_password_reset_client_905x750.webp) -**NOTE:** The Password Reset Client does not modify any Windows system files. +:::note +The Password Reset Client does not modify any Windows system files. +::: + ## Installing the PRC @@ -44,8 +47,11 @@ access to authorized personnel only. **Step 4 –** Copy NPRClt330.msi into the distribution point folder. -**NOTE:** NPRClt330.msi is in the Client folder below the Netwrix Server's installation folder. +:::note +NPRClt330.msi is in the Client folder below the Netwrix Server's installation folder. (`\Program Files\Netwrix Password Reset\` by default). +::: + **Step 5 –** Give the Domain Computers security group read access to the NPRClt330.msi file in the distribution point. @@ -75,8 +81,11 @@ the left pane. **Step 4 –** Enter the full UNC path to NPRClt330.msi in the Open dialog box. -**NOTE:** You must enter a UNC path so that other computers can access this file over the network. +:::note +You must enter a UNC path so that other computers can access this file over the network. For example, \\file server\distributionpointshare\NPRClt330.msi +::: + **Step 5 –** Click **Open**. @@ -89,18 +98,21 @@ For example, \\file server\distributionpointshare\NPRClt330.msi Restart each computer to complete the installation. Windows installs the Password Reset Client during startup. The computer may restart itself automatically to complete the installation. -**NOTE:** Computers with Fast Logon Optimization enabled may not install the Password Reset Client +:::note +Computers with Fast Logon Optimization enabled may not install the Password Reset Client during the first restart. These computers perform a background refresh of Group Policy, and will install the client on the first restart after the refresh. Microsoft article [305293](http://support.microsoft.com/kb/305293) has more information about the Fast Logon Optimization feature. +::: + ## Configuring the PRC You must install an Active Directory administrative template to configure the Password Reset Client. The administrative template only has to be installed once. -Install PRC Administrative Template +**Install PRC Administrative Template** Follow the steps below to install the PRC administrative template. @@ -126,7 +138,7 @@ installation folder. (`\Program Files\Netwrix Password Reset\` by default). **Step 8 –** Click **Close**. -Configure the PRC +**Configure the PRC** Follow the steps below to configure the Password Reset Client. @@ -150,12 +162,18 @@ Management Editor. **Step 6 –** Enter the desired **Width** and **Height** of the PRC browser window. -**NOTE:** Set the Width and Height to 0 to have the PRC calculate an appropriate size. +:::note +Set the Width and Height to 0 to have the PRC calculate an appropriate size. +::: + **Step 7 –** Enter the **Start address** (URL) of the Password Reset system. The URL should point to the Password Reset menu or reset page. -**NOTE:** See the **Help** box for more information. +:::note +See the **Help** box for more information. +::: + **Step 8 –** Enter a **Restricted path** (URL) to stop users from following links to other sites from the Password Reset Client browser. @@ -175,18 +193,24 @@ ActiveX controls and Java applets. Send an e-mail to [support@netwrix.com ](mailto:support@netwrix.com)if you need to change the default filename and content restrictions. -**CAUTION:** Users may follow links to untrusted sites if the Password Reset user interface or +:::warning +Users may follow links to untrusted sites if the Password Reset user interface or server error pages contain external links. This is a security risk because the Password Reset Client runs under the context of the local system account. Specify a restricted path to stop users from following links to other sites from the Password Reset Client. The start address and restricted path should both begin with https:// +::: -**NOTE:** The **Enable Password Reset Client**, **Always show reset link**, and **Dialog attachment + +:::note +The **Enable Password Reset Client**, **Always show reset link**, and **Dialog attachment delay** are automatically set by the Password Reset Client, and are normally left in their default (Not configured) state. The administrative template contains detailed information about all the PRC configuration settings. This information is shown on the **Help** box. The **Help** box is shown after you double-click one of the configuration settings in the right pane. +::: + ## Licensing the PRC diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md index 65a1ba3e8f..d46cd164e2 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md @@ -71,6 +71,9 @@ response, it requests caching for up to two weeks. The web browser should cache it for the next two weeks before querying the server again. No caching is requested for other responses. -**NOTE:** You may get a **user is enrolled** response after deleting an enrolled user when testing +:::note +You may get a **user is enrolled** response after deleting an enrolled user when testing the API. Clearing the browser cache may fix this, but not if other HTTP caches have cached the response. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md index cb7a1fdecc..26dc88bc72 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md @@ -14,7 +14,10 @@ server. See the [Password Reset Client](/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md) topic for more information. -**CAUTION:** Do not use Password Reset on a production network without SSL encryption. +:::warning +Do not use Password Reset on a production network without SSL encryption. +::: + You can use a self-signed certificate with Password Reset, but most organizations purchase certificates from a certificate authority. You can install the Web Interface on a server that @@ -27,11 +30,14 @@ below. - [http://www.iis.net/learn/manage/configuring-security/how-to-set-up-ssl-on-iis](http://www.iis.net/learn/manage/configuring-security/how-to-set-up-ssl-on-iis) - [http://technet.microsoft.com/en-us/library/cc732230(WS.10).aspx](http://technet.microsoft.com/en-us/library/cc732230(WS.10).aspx) -**NOTE:** Ensure that users only access Password Reset over an encrypted connection after the SSL +:::note +Ensure that users only access Password Reset over an encrypted connection after the SSL certificate is installed. The Start address and Restricted path in the Password Reset Client configuration should start with https://. Web browsers can be redirected to the secure URL. See the [Configuring the PRC](/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md#configuring-the-prc) topic for more information. +::: + ## Delegating Permissions to the Netwrix Password Reset Server Service @@ -45,11 +51,11 @@ You can grant Active Directory permissions from the command-line with dsacls.exe graphical user interface. The examples below use the command-line, but you can use either method. The commands you need to execute are: -dsacls "[object]" /I:S /G "[account]:CA;Reset Password;user" +**dsacls "[object]" /I:S /G "[account]:CA;Reset Password;user"** dsacls "[object]" /I:S /G "[account]:RPWP;lockoutTime;user" -dsacls "[object]" /I:S /G "[account]:RPWP;pwdLastSet;user" +**dsacls "[object]" /I:S /G "[account]:RPWP;pwdLastSet;user"** Where [object] is the distinguished name of the domain or OU containing the user accounts, and [account] is the name of the service account in user@domain or domain\user format. @@ -63,7 +69,7 @@ after a reset** option is enabled in the Configuration Console's **Security** ta For example, the following command grants the axs\apr account permission to reset passwords for users in the axs.net domain: -dsacls "dc=axs,dc=net" /I:S /G "axs\apr:CA;Reset Password;user" +**dsacls "dc=axs,dc=net" /I:S /G "axs\apr:CA;Reset Password;user"** If Password Reset is configured to use an SQL Server Compact database, then give the service account read and write permissions to the database files. See the @@ -93,18 +99,21 @@ If you want to allow these users to reset their password and unlock their accoun Reset, then you need to change the permissions for the AdminSDHolder container. The commands you need to execute are: -dsacls "[AdminSDHolder]" /G "[account]:CA;Reset Password" +**dsacls "[AdminSDHolder]" /G "[account]:CA;Reset Password"** dsacls "[AdminSDHolder]" /G "[account]:RPWP;lockoutTime" -dsacls "[AdminSDHolder]" /G "[account]:RPWP;pwdLastSet" +**dsacls "[AdminSDHolder]" /G "[account]:RPWP;pwdLastSet"** Where [AdminSDHolder] is the distinguished name of the AdminSDHolder container, and [account] is the name of the service account in user@domain or domain\user format. The DN of the AdminSDHolder container for the netwrix.com domain is CN=AdminSDHolder,CN=System,DC=netwrix,DC=com -**NOTE:** Changes to the AdminSDHolder container are not applied to accounts immediately. You may +:::note +Changes to the AdminSDHolder container are not applied to accounts immediately. You may need to wait up to an hour for Windows to update the DACL for these accounts. You can also start the process manually. Search for runProtectAdminGroupsTask or FixUpInheritance in Microsoft's documentation or more information. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md index 60ae4c65e7..4b680b323d 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md @@ -33,11 +33,14 @@ them from resetting a recently changed password. Users whose passwords are set to never expire in Active Directory will not be forced to change their password during logon, even if this check box is selected. -**NOTE:** Password Policy Enforcer's History rule is enforced for password resets if the **Enforce +:::note +Password Policy Enforcer's History rule is enforced for password resets if the **Enforce policy when password is reset** check box is selected in the PPS properties page, and if the **Enforce this rule when a password is reset** check box is selected in the History rule's properties page. Netwrix Password Policy Enforcer does not enforce the Minimum Age rule for password resets. +::: + Users may try to evade the password history policy by resetting their password several times in quick succession to push a password off the password history list. Select a value from the @@ -60,6 +63,9 @@ the lockout feature. Incorrect verification codes are counted as incorrect answe users if they enter too many incorrect verification codes** check box is selected on the **Verification** tab. -**NOTE:** Locked out users must re-enroll before they can use Password Reset to reset their password +:::note +Locked out users must re-enroll before they can use Password Reset to reset their password or unlock their account. The incorrect answer count is reset when a user enrolls, or answers all questions during a reset or unlock. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md index e355e92d63..153cb1868e 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md @@ -17,11 +17,14 @@ Where [server] is the name or IP address of the server hosting the Web Interface Users access the Enroll, Reset, Unlock, and Change features from the menu. These features are explained on the following pages. -**CAUTION:** The connection between the Web Interface and Password Reset Server is always encrypted. +:::warning +The connection between the Web Interface and Password Reset Server is always encrypted. Install an SSL certificate on the web server and use HTTPS to encrypt connections from the browser to the web server. See the [Installing and Using an SSL Certificate](/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md#installing-and-using-an-ssl-certificate) topic for more information. +::: + ## Enroll @@ -51,9 +54,12 @@ each question in the **Answer** text boxes. **Step 5 –** Click **Next**, and then click **OK** to return to the menu. -**NOTE:** Windows increments the bad password count in Active Directory when a user tries to enroll +:::note +Windows increments the bad password count in Active Directory when a user tries to enroll with an incorrect password. This may trigger a lockout if the Windows account lockout policy is enabled. +::: + ## Reset @@ -113,10 +119,13 @@ phone by e-mail or SMS. Type the **Code**, and then click **Next**. **Step 5 –** Click **OK** to return to the menu. -**NOTE:** The Unlock feature unlocks accounts in Active Directory. Users who are locked out of +:::note +The Unlock feature unlocks accounts in Active Directory. Users who are locked out of Password Reset should re-enroll to gain access to Password Reset. See the [Verification Codes](/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md#verification-codes) topic for more information. +::: + ## Change @@ -137,9 +146,12 @@ Follow the steps below to change an account password. **Step 4 –** Click **OK** to return to the menu. -**NOTE:** Windows increments the bad password count in Active Directory when a user tries to change +:::note +Windows increments the bad password count in Active Directory when a user tries to change their password with an incorrect password. This may trigger a lockout if the Windows account lockout policy is enabled. +::: + ## Error Messages diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md index 63902c8647..1d355bd60d 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md @@ -48,5 +48,8 @@ The **Users** tab has seven columns: - Last Unlock — Date and time of last successful account unlock - Last Change — Date and time of last successful password change -**NOTE:** The Data Console does not automatically display new information as it is added to the +:::note +The Data Console does not automatically display new information as it is added to the database. Press F5 to refresh the view. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md index 4b45cd0062..9655d3036f 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md @@ -105,9 +105,12 @@ The user's Active Directory mobile phone number is read from the mobile attribut **AD Attribute** if you want to use a phone number from a different attribute. Type the name of the attribute, and then click **OK**. -**NOTE:** Use a script to perform additional processing before sending the SMS. For example, a +:::note +Use a script to perform additional processing before sending the SMS. For example, a script could read the user's phone number from a database, or send a language-specific SMS based on the value of the [LANG] macro. Put the path of the scripting engine executable in the **Command** text box, and the path to the script file and other parameters in the **Parameters** text box. +::: + ![configuring_npr_7](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_7.webp) diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md index a97cb80ad8..4d3b48990f 100644 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md +++ b/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md @@ -42,7 +42,7 @@ The database files (apr.sdf and aprlog.sdf) are in the Password Reset Server's i by default, but the location is configurable. The following commands create copies of the files with a .bak extension. Copy the .bak files to another device, and run the backup script daily. -net stop "Netwrix Password Reset" +**net stop "Netwrix Password Reset"** copy /Y "c:\program files\netwrix password reset\apr.sdf" "c:\program files\netwrix password reset\apr.bak" @@ -50,11 +50,14 @@ reset\apr.bak" copy /Y "c:\program files\netwrix password reset\aprlog.sdf" "c:\program files\netwrix password reset\aprlog.bak" -net start "Netwrix Password Reset" +**net start "Netwrix Password Reset"** -**NOTE:** Change the paths above if the database files are in a different folder. See the +:::note +Change the paths above if the database files are in a different folder. See the [Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md#database) topic for more information. +::: + **Restoring database from backup** @@ -70,6 +73,9 @@ Follow the steps below to restore the database files from a backup. **Step 5 –** Start . -**CAUTION:** apr.sdf contains hashes of the user answers. The hashes are salted and encrypted to +:::warning +apr.sdf contains hashes of the user answers. The hashes are salted and encrypted to protect them from attack, but you should still ensure that this file and all backup copies are stored securely. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/web/configuration.md b/docs/passwordpolicyenforcer/10.2/web/configuration.md index 34a6550fd9..b7528d7bbf 100644 --- a/docs/passwordpolicyenforcer/10.2/web/configuration.md +++ b/docs/passwordpolicyenforcer/10.2/web/configuration.md @@ -23,7 +23,7 @@ When Password Policy Enforcer/Web is first installed, the Domain List is empty a their domain name. You can configure Password Policy Enforcer/Web to display a list of domains instead of an empty text box. -Add Domain +**Add Domain** Follow the steps below to add a domain to the list. @@ -33,11 +33,14 @@ Follow the steps below to add a domain to the list. **Step 3 –** Click **OK**, the click **Apply**. -**NOTE:** The most frequently used domain should be first in the list as it will be the default. You +:::note +The most frequently used domain should be first in the list as it will be the default. You can rearrange the domains by dragging them to another position. You can also click **Sort** to sort them alphabetically. +::: -Remove Domain + +**Remove Domain** Follow the steps below to remove a domain from the list. @@ -64,10 +67,13 @@ controllers. You can also set the Port, Timeout, and number of Retries for the Password Policy Protocol if the defaults are not suitable. -**NOTE:** A Password Policy Enforcer/Web license does not include a Password Policy Enforcer +:::note +A Password Policy Enforcer/Web license does not include a Password Policy Enforcer license. Go to [netwrix.com/password_policy_enforcer](https://www.netwrix.com/password_policy_enforcer.html) to learn more about Password Policy Enforcer. +::: + ## About Tab diff --git a/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md b/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md index 16a10f36e3..9a52a3f0bc 100644 --- a/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md +++ b/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md @@ -25,10 +25,13 @@ The other user interface files are language independent. Most of the formatting and some additional CSS for Internet Explorer is in ppeweb_ie.css. The image files are in the images folder. These files are installed into the `\Inetpub\wwwroot\ppeweb\` folder by default. -**NOTE:** Always backup the user interface files before and after editing them. Your changes may be +:::note +Always backup the user interface files before and after editing them. Your changes may be overwritten when Password Policy Enforcer/Web is upgraded, and some changes could stop Password Policy Enforcer/Web from working correctly. Web browsers display pages differently, so test your changes with several versions of the most popular browsers to ensure compatibility. +::: + The en_default.htm contains static HTML, but the other .htm files contain special comment tags that are used to prepare the pages. Some of these comments define ranges. A range looks like this: @@ -39,7 +42,7 @@ Password Policy Enforcer/Web deletes ranges (and the text inside them) when they Some ranges span only one word, while others span several lines. The other type of comment tag is called a field. - +**** Fields are replaced by some other information. For example, the field above is replaced with a username. @@ -54,7 +57,7 @@ Templates end with a resource string section. @RES_EMPTY_FIELD_DOMAIN:    Enter your domain name in the Domain box. ---> +**-->** Resource strings are mostly validation error messages, but they can contain any text Password Policy Enforcer/Web may need to build the page. See the @@ -63,10 +66,13 @@ topic for additional information. Do not modify the identifiers on the left, onl the right. Resource strings are always inside a range called RESOURCE_STRINGS. Password Policy Enforcer/Web deletes this range before sending the page to the user's web browser. -**CAUTION:** You may rebrand the Password Policy Enforcer/Web user interface, but it is a violation +:::warning +You may rebrand the Password Policy Enforcer/Web user interface, but it is a violation of the License Agreement to modify, remove or obscure any copyright notice. See the [License Agreement](/docs/passwordpolicyenforcer/10.2/web/license_agreement.md) topic for additional information. +::: + ## Examples @@ -104,11 +110,11 @@ or they may be displayed on the wrong page. ``` - +****

Enter your old and new passwords in the text boxes below.

- +**** ### Edit Validation Error Messages @@ -148,7 +154,7 @@ error, but you can delete them if you do not want them. If you want to display some text for all error messages, then insert your text above or below the `

{/*ERROR*/}

` line. For example: -

{/*ERROR*/}

+**

{/*ERROR*/}

**

The help desk phone number is 555-555-5555.

@@ -187,8 +193,11 @@ some understanding of CSS to do this. For example, this is the CSS for the valid Edit these properties to change the appearance of the error box. You may need to clear your web browser's cache to see the changes. -**NOTE:** Web browsers display pages differently, so test your changes with several versions of the +:::note +Web browsers display pages differently, so test your changes with several versions of the most popular browsers to ensure compatibility. +::: + ### Replace URLs to the Welcome Page @@ -199,4 +208,4 @@ To display a different page when users click OK or Cancel, search for `en_defaul `en_ppeweb.htm`, `en_finished.htm`, and `en_error.htm` and replace `en_default.htm` with an alternative URL. For example: -https://myserver/accounts/login.htm +**https://myserver/accounts/login.htm** diff --git a/docs/passwordpolicyenforcer/10.2/web/installation.md b/docs/passwordpolicyenforcer/10.2/web/installation.md index 9d0a862414..0122b03c96 100644 --- a/docs/passwordpolicyenforcer/10.2/web/installation.md +++ b/docs/passwordpolicyenforcer/10.2/web/installation.md @@ -15,8 +15,11 @@ Password Policy Enforcer/Web from their web browser. - 5 megabytes of free disk space. - 5 megabytes free RAM. -**NOTE:** Password Policy Enforcer/Web can share server resources with other applications. It can be +:::note +Password Policy Enforcer/Web can share server resources with other applications. It can be installed on an existing, well secured web server. +::: + ## Preparing IIS @@ -159,7 +162,10 @@ Enforcer/Web documentation and tools, then click **Next**. **Step 6 –** Select an **IIS Web Site** from the dropdown. Change the default Virtual Directory, if needed. -**NOTE:** Password Policy Enforcer/Web should be installed in its own virtual directory. +:::note +Password Policy Enforcer/Web should be installed in its own virtual directory. +::: + **Step 7 –** Click **Next** twice. @@ -176,13 +182,19 @@ The HTML templates and associated images are overwritten during an upgrade. You customized HTML templates and images before upgrading. The HTML templates and images are installed in the `\Inetpub\wwwroot\ppeweb\` folder by default. -**NOTE:** A full backup of the PPE/Web server is recommended. This allows you to roll back to the +:::note +A full backup of the PPE/Web server is recommended. This allows you to roll back to the previous version if the upgrade cannot be completed. You may need to restart Windows after upgrading. +::: -**CAUTION:** PPE/Web V7.11 is only compatible with Password Policy Enforcer V7.0 and later. Upgrade + +:::warning +PPE/Web V7.11 is only compatible with Password Policy Enforcer V7.0 and later. Upgrade Password Policy Enforcer to a compatible version if you have enabled Password Policy Enforcer integration. +::: + #### Upgrading to V7.11 @@ -203,13 +215,19 @@ The HTML templates and associated images are overwritten during an upgrade. You customized HTML templates and iages before upgrading The HTML templates and images are installed in the `\Inetpub\wwwroot\ppeweb\` folder by default. -**NOTE:** A full backup of the PPE/Web server is recommended. This allows you to roll back to the +:::note +A full backup of the PPE/Web server is recommended. This allows you to roll back to the previous version if the upgrade cannot be completed. You may need to restart Windows after upgrading. +::: -**CAUTION:** PPE/Web V7.11 is only compatible with Password Policy Enforcer V7.0 and later. Upgrade + +:::warning +PPE/Web V7.11 is only compatible with Password Policy Enforcer V7.0 and later. Upgrade Password Policy Enforcer to a compatible version if you have enabled Password Policy Enforcer integration. +::: + #### Upgrading to V7.11Upgrading to V7.11 @@ -245,7 +263,10 @@ Right-click the PPE/Web item in the right pane, then click Delete. Click Yes to **Step 4 –** Back up the PPE/Web V3.x files. -**NOTE:** the PPE/Web V3.x files are most likely located in the `\Inetpub\wwwroot\ppeweb\` folder. +:::note +the PPE/Web V3.x files are most likely located in the `\Inetpub\wwwroot\ppeweb\` folder. +::: + **Step 5 –** Delete the folder containing the PPE/Web V3.x files. @@ -257,7 +278,10 @@ Follow the steps below to upgrade to PPE/Web V7.x. **Step 2 –** Open the Configuration console to configure PPE/Web and install your new license key. -**NOTE:** Any customizations to the PPE/Web V3.x user interface will need to be recreated after +:::note +Any customizations to the PPE/Web V3.x user interface will need to be recreated after upgrading to PPE/Web V7.11. See the [Editing HTML Templates](/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md) topic for additional information. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/web/license_agreement.md b/docs/passwordpolicyenforcer/10.2/web/license_agreement.md index 851f8c2b67..7a63a5b533 100644 --- a/docs/passwordpolicyenforcer/10.2/web/license_agreement.md +++ b/docs/passwordpolicyenforcer/10.2/web/license_agreement.md @@ -5,7 +5,7 @@ ACCEPT ALL OF THE TERMS CONTAINED IN THIS SOFTWARE LICENSE AGREEMENT. PLEASE REA CAREFULLY. IF YOU DO NOT AGREE WITH THESE TERMS, THEN NETWRIX IS UNWILLING TO LICENSE THE SOFTWARE TO YOU. -NETWRIX SOFTWARE LICENSE AGREEMENT AND WARRANTY STATEMENT +**NETWRIX SOFTWARE LICENSE AGREEMENT AND WARRANTY STATEMENT** (End-User Trial Use License With Option For Extended Use/Redistribution Prohibited) diff --git a/docs/passwordpolicyenforcer/10.2/web/securing_web.md b/docs/passwordpolicyenforcer/10.2/web/securing_web.md index 2d0ef05702..af4134567e 100644 --- a/docs/passwordpolicyenforcer/10.2/web/securing_web.md +++ b/docs/passwordpolicyenforcer/10.2/web/securing_web.md @@ -17,7 +17,10 @@ Password Policy Enforcer/Web sends passwords to the domain controllers over a se you need to set up SSL (Secure Sockets Layer) encryption for the connection between the web browser and the web server. -**CAUTION:** Do not use Password Policy Enforcer/Web on a production network without SSL encryption. +:::warning +Do not use Password Policy Enforcer/Web on a production network without SSL encryption. +::: + You can use a self-signed certificate, but most organizations purchase certificates from a certificate authority. This is a recurring cost, and you will need to complete forms for the diff --git a/docs/passwordpolicyenforcer/10.2/web/using_web.md b/docs/passwordpolicyenforcer/10.2/web/using_web.md index 590bb0a7c0..0f728433d4 100644 --- a/docs/passwordpolicyenforcer/10.2/web/using_web.md +++ b/docs/passwordpolicyenforcer/10.2/web/using_web.md @@ -22,14 +22,20 @@ You can also include the username and/or domain in the URL: `http://[server]/ppeweb/ppeweb.dll?username=maryjones&domain=ANIXIS` -**_RECOMMENDED:_** Install the SSL Certificate the web server and use the HTTPS protocol if Password +:::info +Install the SSL Certificate the web server and use the HTTPS protocol if Password Policy Enforcer/Web will be used on an unencrypted network. See the [Installing and Using an SSL Certificate](/docs/passwordpolicyenforcer/10.2/web/securing_web.md#installing-and-using-an-sslcertificate) topic for additional information. +::: -**NOTE:** A license reminder message is shown occasionally when Password Policy Enforcer/Web is used + +:::note +A license reminder message is shown occasionally when Password Policy Enforcer/Web is used without a license key. Contact Netwrix support if you would like to evaluate Password Policy Enforcer/Web without the reminder message. +::: + ## Changing a Password @@ -46,9 +52,12 @@ Follow the steps below to change a password with Password Policy Enforcer/Web. **Step 3 –** Enter the **Old Password**, **New Password**, and **Confirm Password**, then click **Next**. -**NOTE:** Windows increments the bad password count in Active Directory every time a user enters +:::note +Windows increments the bad password count in Active Directory every time a user enters their old password incorrectly. This may trigger a lockout if the Windows account lockout policy is enabled. +::: + ## Error Messages diff --git a/docs/passwordpolicyenforcer/10.2/web/what_new.md b/docs/passwordpolicyenforcer/10.2/web/what_new.md index 0553dc1cbc..d529e90082 100644 --- a/docs/passwordpolicyenforcer/10.2/web/what_new.md +++ b/docs/passwordpolicyenforcer/10.2/web/what_new.md @@ -6,20 +6,20 @@ sidebar_position: 10 # What's New -User Interface +**User Interface** - Displays a diagnostic message if the Password Policy Enforcer does not respond to a request. This is likely to happen if a domain controller is not running Password Policy Enforcer, or if a firewall is blocking access to the PPS port. -Compatibility +**Compatibility** - Compatible with Windows Server 2012 and 2012 R2 (as well as Windows Server 2003, 2003 R2, 2008, and 2008 R2). - Improved Setup Wizard to ensure that PPEWeb.dll is always added to the list of Web Service Extensions on Windows 2003 and 2003 R2 64-bit editions. -Other +**Other** - Uses the Password Policy Enforcer V7.x libraries for improved compatibility with new features in recent version of Password Policy Enforcer. @@ -29,13 +29,16 @@ Other [Upgrading from PPW/Web V6.x](/docs/passwordpolicyenforcer/10.2/web/installation.md#upgrading-from-ppwweb-v6x) topic for additional information. -**NOTE:** PPE/Web V7.11 integrates with Password Policy Enforcer V7.0 or later. Disable Password +:::note +PPE/Web V7.11 integrates with Password Policy Enforcer V7.0 or later. Disable Password Policy Enforcer integration in the PPE/Web Configuration console if you need to use PPE/Web with an older version of Password Policy Enforcer. +::: + #### New in PPE/Web V6.x (Previous Version) -User Interface +**User Interface** - Updated HTML Templates allow customization of all user interface elements including error messages. @@ -45,12 +48,12 @@ User Interface - The Setup Wizard installs and configures PPE/Web without the manual setup steps from earlier versions. -Compatibility +**Compatibility** - Compatible with Windows Server 2008 and 2008 R2 (as well as Windows Server 2003 and 2003 R2). - Compatible with 64-bit and 32-bit Windows editions. -Other +**Other** - Additional validation of all user input to improve security. - Can get user and domain names from URL parameters. @@ -59,4 +62,7 @@ Other - Can be used without Password Policy Enforcer if Password Policy Enforcer's additional password policy controls are not needed. -**NOTE:** PPE/Web V6.0 integrates with Password Policy Enforcer V6.0 or later. +:::note +PPE/Web V6.0 integrates with Password Policy Enforcer V6.0 or later. + +::: diff --git a/docs/passwordpolicyenforcer/10.2/overview/whatsnew.md b/docs/passwordpolicyenforcer/10.2/whatsnew.md similarity index 83% rename from docs/passwordpolicyenforcer/10.2/overview/whatsnew.md rename to docs/passwordpolicyenforcer/10.2/whatsnew.md index b26b5a2214..c9908514a7 100644 --- a/docs/passwordpolicyenforcer/10.2/overview/whatsnew.md +++ b/docs/passwordpolicyenforcer/10.2/whatsnew.md @@ -1,7 +1,7 @@ --- title: "What's New" description: "What's New" -sidebar_position: 10 +sidebar_position: 2 --- # What's New @@ -18,12 +18,12 @@ Password Policy Enforcer version. ### Password Policy Enforcer v10.2 -NEW: Bulk Password Testing +**NEW: Bulk Password Testing** Check a large number of passwords against a selected policy and a get a report of the accepted and rejected passwords. -NEW: HIPB Updater +**NEW: HIPB Updater** Downloads the most recent Have I Been Pwnd (HIBP) hash list and incremental updates directly from Netwrix Labs . Offers options to apply scheduling and triggers. This feature replaces the Pwnd @@ -33,34 +33,34 @@ See the [HIBP Updater](/docs/passwordpolicyenforcer/10.2/administration/hibpupdater.md) topic for additional information. -NEW: Password Quality Feedback +**NEW: Password Quality Feedback** End users get real-time feedback when typing a new password on the Windows Change Password screen, indicating whether the new password meets the applied policies. -Enhancement: Updated Password Checker User Interface +**Enhancement: Updated Password Checker User Interface** Added a three-tab user layout for better separation of settings and improved usability. Password Checker can now be accessed from the PPS Properties page. -Enhancement: Event Logging in Password Checker +**Enhancement: Event Logging in Password Checker** Password Checker now has an option to log an event when it finds a compromised password. -Enhancement: Force Password Expiration in Password Checker +**Enhancement: Force Password Expiration in Password Checker** Password Checker now has an option to force password expiration for accounts where compromised passwords are found. -Enhancement: License Usage Count +**Enhancement: License Usage Count** The License tab on PPS Properties page now displays the number of connected active AD accounts and the number of AD accounts where policies are applied. -Enhancement: Security Update +**Enhancement: Security Update** Added option to utilize RPC Kerberos Sign/Seal protocol for client-server communication. -Enhancement: Rule Name Properties +**Enhancement: Rule Name Properties** Added the names of the rules to their properties’ windows for better identification. diff --git a/static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_1.webp b/static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_1.webp new file mode 100644 index 0000000000000000000000000000000000000000..85d6d660efb1660cb0aa37f92eb85f7c0261e7ba GIT binary patch literal 46650 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
;|4a1u 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 literal 0 HcmV?d00001 From c84d51cd98c23a79d22928be25d0a8f64350e582 Mon Sep 17 00:00:00 2001 From: Hassaan Khan Date: Thu, 17 Jul 2025 19:17:34 +0500 Subject: [PATCH 2/6] reviewing --- .../installing_password_policy_client.md | 4 ++-- .../The Password Policy Client_3.webp | Bin 0 -> 92495 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_3.webp diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md index d467e203cb..e6945fce8f 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md @@ -82,7 +82,7 @@ this domain, and Link it here...**. **Step 4 –** Enter **Password Policy Client** in the provided field, then press **ENTER**. -![the_password_policy_client_1](/img/product_docs/passwordpolicyenforcer/10.2/administration/installing_ppe.webp) +![the_password_policy_client_1](/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_1.webp) ## Edit the Group Policy Object @@ -161,7 +161,7 @@ You need to create the GPO if you chose the Express Setup option. **Step 4 –** Click **Domain Profile** in the left pane then double-click **Windows Firewall: Define inbound port exceptions** in the right pane. -![the_password_policy_client_3](/img/product_docs/passwordpolicyenforcer/10.2/administration/the_password_policy_client_3.webp) +![the_password_policy_client_3](/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_3.webp) **Step 5 –** Select the **Enabled** option, and then click **Show...**. diff --git a/static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_3.webp b/static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_3.webp new file mode 100644 index 0000000000000000000000000000000000000000..068bc37273ec2d59734f906d8e5cb877eefc8c51 GIT binary patch literal 92495 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
    hWp zkNdhO<=(pqc$^%O%OQi$77pK~1nbyU-rG&-l}zN2<89R{Y>_g`d$(M&WRSFG%OYrc$n-rL|;tR0ilVYuoHuZRrU?^qkm z+9&h}E*+p9U+e7Q=1>d@PYw#t8biA-Z_qM5m?_P4^$*4EN!x|D(-0d~{VuQ1d5zU(>udhnStaFvT3DAfHj5D^NbBbQ83PeRLKgRpV}kN7TDpD0?HcWyzv{A} z&4pXNQXP^Par$=A$EoEz(u&|gNAXAh7i8Dod3vc6rVqsyy;e8$U0>q{hsoqm-n+DwGI@ew_#}V|&`& z$#=f$M(P2~pWlYIGUzmO8hKDck&h&4D>3>N#MCV|({^R&f-j^wwSM)ylUBMC_4VD< zff6*Vy^SAI!3?^qDu{zuy$zcLJ~WTArAJ)EM?85ETa1uzb4%fVN7B!KgR3jTohIqt zjG9oF!0(BCCgVEKX(ndMWn<&B08Ji_w@p}=r?ugELN3#cZ+z=c=N%V_8ShA7>CZG5 z)z7cuepRAlq)z`{H-E-ahxPIuu#LXQEszCSidJeDk ze%(7i8kNgkTXXA2xwaZaD+6%)_Lg=skk5c}Fc{6BMuj+L^d18(Dhf5QRQH?C)FG9J z5gm@8fL``Z9Qd4{h;)^oM;ku4?BR^9y;hls`}ky7t`H7h~rKv%m3b zbDfya!%7L0NAm40D-)^3h*Ok}cQnbDC72XCRiNfzTBi+DTv!9+_728iu+|U@KY{ja ze8RFV4BI@Yq|evRYh8N@hIfID;iq-MV7+$|h8_>3G=07>g_5|f30~Y@1$}2Mv^|EP zzN~;qmeG8(aw`*M?m^AH?C_3Hx1GaC7=NsH;Hd{p2zxGVBmt)|8@|S+4>3pQS;FE2 zkj1LeBp_sX6~F6ry3EdZzv}!m*~r;>j{ocgpJ|*rS?+PcsvtY_W}5ZC0z>G3fMKW+ zM)oD0B-0E7I~<(mpbJf?YE(cxrgAwZ1y&W)xd2F@N_e+Zy8oc}FJ4Hyz##bjt%qAq zXv~bQi)55Fr1i~JSm-yl;|d1(T8r!azK8NUB7V2>AFc6WH&vp6CHGC#n87Qwm1aU? z8YB$U?U*^$C}Q>NkP7^?1W3EjbLA1w#swT)4G|XlCMyvbiby`{Ge^{UgnUqj^u$=@ z7$@Xnf?<0$*;5Ta9BvYHkU?|RHyjjwfn_RerI%H_jS$YxN8wGUEdLtK-dj079h$9k z0K+y>cT?oTP@GSmVKHpENSQz@XLPj|04>mrE~2FN#jdqo)~i zK)J#_O8>k6J)NU94vLY^>k+SD!1J6j$-pN6`J>#+STO4L+w+;qmks|-CV7zMo7e@$ z8j_yPv3U#U)56d;4NncH-C#pjRs4#rvg^6BxG2k30e~~cceR8K1hJ$P1swauw4GUBmw5)=8_RuEA zne+Yo(bO=tDYC5UP&`dml;hGlzT!m+96ubYXez&@*rh>%Y*F(GchCnVOz`MX`?914 zPSQb)=Jv+}v@f1FWW!!uM*4G@ftI+nkUtkL4pvc0v6u`#0TTj?!2#*Fw*meyR%REW zHnib)t9cSrQ79O@*>Qc^dxVC9XCzUK9XVuf6H(XC%2SDMS&N;5RiWn=LI%_AUY z|0#$ztp^dzAbG2H>XpA6qy>B-g;0HKL4^eCe!d#lGo%cr`Ue_*xst@_)#48BqLkm< z_QDgw4G2y7`txRx&4@Bdbb3@Lff0ER`59BqpC&0ylTmj&(b4HKoav{IU$7_o=p%T% zjc?=?t_WKkWr@jKku>F-%Ir_>hlWj}_=?D)QJC4!R+ zLPIKS?{bI=u$Dpm*s;C-p4%zF$q(ZRTCZ4`rW!KrDJjleOoIz1@qfcyfsvR|%od&S zF|Frtrb=SUP6Aq>K<|JK8%KKRE6S

    L10s9SqvZZOCz(r;f!HS`%Vk}JItBxk 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 ce)YFr;z!HEgXSc5pje Date: Fri, 18 Jul 2025 09:47:06 +0500 Subject: [PATCH 3/6] reviewing --- docs/passwordpolicyenforcer/10.2/{overview.md => index.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/passwordpolicyenforcer/10.2/{overview.md => index.md} (100%) diff --git a/docs/passwordpolicyenforcer/10.2/overview.md b/docs/passwordpolicyenforcer/10.2/index.md similarity index 100% rename from docs/passwordpolicyenforcer/10.2/overview.md rename to docs/passwordpolicyenforcer/10.2/index.md From c3d39cd93c84631cf90a6e75747c782ad4697e3f Mon Sep 17 00:00:00 2001 From: Hassaan Khan Date: Fri, 18 Jul 2025 12:16:07 +0500 Subject: [PATCH 4/6] reviewing --- .../installing_password_policy_client.md | 4 +- .../administration/about_tab.md | 16 - .../administration/administration_overview.md | 37 -- .../configuring_password_reset.md | 18 - .../editing_the_html_templates.md | 258 ------------ .../administration/email_tab.md | 90 ---- .../administration/enroll_tab.md | 56 --- .../administration/filter_editor.md | 33 -- .../administration/filtering_data.md | 144 ------- .../administration/general_tab.md | 132 ------ .../administration/installation.md | 391 ------------------ .../administration/moving_to_sql_server.md | 119 ------ .../administration/password_reset_client.md | 253 ------------ .../administration/permissions_tab.md | 25 -- .../persuading_users_to_enroll.md | 79 ---- .../administration/securing_password_reset.md | 119 ------ .../administration/security_tab.md | 71 ---- .../administration/using_password_reset.md | 175 -------- .../administration/using_the_data_console.md | 55 --- .../administration/verification_tab.md | 116 ------ .../working_with_the_database.md | 81 ---- .../evaluation/evaluation_overview.md | 18 - .../10.2/web/license_agreement.md | 144 ------- ...assword Policy Client_1.webp => ppe1.webp} | Bin ...assword Policy Client_3.webp => ppe2.webp} | Bin 25 files changed, 2 insertions(+), 2432 deletions(-) delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/administration_overview.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_password_reset.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/filter_editor.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/moving_to_sql_server.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/permissions_tab.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md delete mode 100644 docs/passwordpolicyenforcer/10.2/password_reset/evaluation/evaluation_overview.md delete mode 100644 docs/passwordpolicyenforcer/10.2/web/license_agreement.md rename static/img/product_docs/passwordpolicyenforcer/10.2/administration/{The Password Policy Client_1.webp => ppe1.webp} (100%) rename static/img/product_docs/passwordpolicyenforcer/10.2/administration/{The Password Policy Client_3.webp => ppe2.webp} (100%) diff --git a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md index e6945fce8f..53cf735207 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md +++ b/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/installing_password_policy_client.md @@ -82,7 +82,7 @@ this domain, and Link it here...**. **Step 4 –** Enter **Password Policy Client** in the provided field, then press **ENTER**. -![the_password_policy_client_1](/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_1.webp) +![the_password_policy_client_1](/img/product_docs/passwordpolicyenforcer/10.2/administration/ppe1.webp) ## Edit the Group Policy Object @@ -161,7 +161,7 @@ You need to create the GPO if you chose the Express Setup option. **Step 4 –** Click **Domain Profile** in the left pane then double-click **Windows Firewall: Define inbound port exceptions** in the right pane. -![the_password_policy_client_3](/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_3.webp) +![the_password_policy_client_3](/img/product_docs/passwordpolicyenforcer/10.2/administration/ppe2.webp) **Step 5 –** Select the **Enabled** option, and then click **Show...**. diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md deleted file mode 100644 index 05abe605f6..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md +++ /dev/null @@ -1,16 +0,0 @@ -# About Tab - -Use the **About** tab to check the version and license information, and to install a new license -key. - -![configuring_npr_10](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_10.webp) - -To install a new license key, copy the entire license e-mail to the clipboard, and then click Get -license from clipboard. - -:::note -Password Reset includes a 30-day evaluation license for up to 50 users. Please -[contact Netwrix support](mailto:support@netwrix.com)[](mailto:support@anixis.com) if you would like -to evaluate Password Reset with more than 50 users. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/administration_overview.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/administration_overview.md deleted file mode 100644 index 982e30de77..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/administration_overview.md +++ /dev/null @@ -1,37 +0,0 @@ -# Administration - -Netwrix Password Reset is a self-service password management system that helps you to reduce the -number of password related help desk calls. Password Reset allows users to securely change their -password and unlock their account, even if they have forgotten their password. This section details -the different benefits of using Password Reset. - -## Reduced Costs - -Studies into the costs of password management show that between 20% and 40% of help desk calls are -password related. Password Reset helps you to reduce the number of these calls. - -## Increased Productivity - -Employee productivity plummets while they wait in the help desk queue to have their password reset. -With Password Reset, users can reset their own password in less than two minutes. Users can reset -their password from the Windows logon screen, or a mobile device. This frees the help desk to handle -more important issues. - -## Improved Security - -Identifying staff over the phone can be difficult, especially in large organizations. Password Reset -identifies users by asking them to answer some questions about themselves, and optionally by sending -a verification code to their mobile phone. Incorrect answers are logged, and you can configure -Password Reset to automatically lock out users who give too many incorrect answers. See the -[Configuring Password Reset](/docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_password_reset.md) -topic for additional information. - -## Higher Availability - -Password Reset is ready to respond to password management requests at any hour of the day and night. -It takes only minutes to install, and can handle thousands of requests every hour. - -The -[Evaluation](/docs/passwordpolicyenforcer/10.2/password_reset/evaluation/evaluation_overview.md) -topic contains step-by-step instructions to help you quickly install, configure, and evaluate -Password Reset. diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_password_reset.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_password_reset.md deleted file mode 100644 index 6bece39785..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_password_reset.md +++ /dev/null @@ -1,18 +0,0 @@ -# Configuring Password Reset - -In the previous section, you used Password Reset with a default configuration. You can use the -Configuration Console to edit the configuration settings. Click **Start** > **Netwrix Password -Reset** > **NPR Configuration Console**on the Password Reset Server computer to open the -Configuration Console. - -![configuring_npr](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr.webp) - -Information about the configuration console tabs can be found in the following topics: - -- [General Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md) -- [Enroll Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md) -- [E-mail Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md) -- [Verification Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md) -- [Security Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md) -- [Permissions Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/permissions_tab.md) -- [About Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/about_tab.md) diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md deleted file mode 100644 index 2f1e1e6274..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md +++ /dev/null @@ -1,258 +0,0 @@ -# Editing the HTML Templates - -Password Reset's user interface is built with customizable templates. You can easily modify the user -interface by editing the templates. The templates are written in HTML5 and formatted with CSS3, so -they work with all modern web browsers. Older browsers such as Internet Explorer 8 may work, but the -pages may be badly formatted. Please [contact Netwrix support](mailto:support@netwrix.com) if you -need to use Password Reset with older web browsers. - -## User Interface Files - -Password Reset installs seven `.htm` files for every language. Each filename starts with a language -code. The files for the US English language are: - -| Filename | Content | -| ----------------- | ------------------------------------ | -| `en_default.htm` | Static HTML for the menu page | -| `en_enroll.htm` | Template for the Enroll page | -| `en_reset.htm` | Template for the Reset pages | -| `en_unlock.htm` | Template for the Unlock pages | -| `en_change.htm` | Template for the Change pages | -| `en_finished.htm` | Template for the Finished page | -| `en_error.htm` | Template for the Critical Error page | - -The formatting information is in `apr.css`, and the image files are in the images folder. These -files are installed into the `\Inetpub\wwwroot\pwreset\` folder by default. - -:::note -Always backup the user interface files before and after editing them. Your changes may be -overwritten when Password Reset is upgraded, and some changes could stop Password Reset from working -correctly. Having a backup allows you to quickly revert to a working setup. -Web browsers display pages differently, so test your changes with several versions of the most -popular browsers to ensure compatibility. -::: - - -### Ranges and Fields - -`en_default.htm` contains static HTML, but the other .htm files contain special comment tags that -are used to prepare the pages. Some of these comments define ranges. A range looks like this: - -**Some text or HTML** - -The Web Interface deletes ranges (and the text inside them) when they are not needed. Some ranges -span only one word, while others span several lines. The other type of comment tag is called a -field. - -**** - -Fields are replaced by some other information. For example, the field above is replaced with a -username. - -### Resource Strings - -Each template ends with a resource string section. - -**** - -@RES_EMPTY_FIELD_USERNAME: Enter your username in the Username box. @RES_EMPTY_FIELD_DOMAIN: Enter -your domain name in the Domain box. - -**-->** - -Resource strings are mostly validation error messages, but they can contain any text Password Reset -may need to build the page. Do not modify the identifiers on the left, only edit the text on the -right. Resource strings are always inside a range called RESOURCE_STRINGS. Password Reset deletes -this range before sending the page to the user's web browser. See the -[Error Messages](/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md#error-messages) topic -for additional information. - -### Responsive Content - -Password Reset's templates are responsive. The page layout and content changes to suit the user's -screen size. The layout is defined in the CSS file, and the content in the HTML files. The -text_short and text_long classes are used to display different content depending on the screen size. -text_short elements are shown on small screens (up to 420 pixels wide). text_long elements are shown -on larger screens. - -:::warning -You may rebrand the Password Reset user interface, but it is a violation of the License -Agreement to modify, remove or obscure any copyright notice. -::: - - -## Examples - -This section contains examples of common customizations. Use these examples to gain a better -understanding of Password Reset's templates. You don't need to be an expert in HTML to follow these -examples, but a basic understanding of HTML will help. - -Work through them carefully, and backup files before you edit them. The examples in this section are -from the US English files, but the format is the same for all languages. - -### Replace the Netwrix Logo - -The Netwrix logo is shown at the top of the page. The logo is installed into the -`\Inetpub\wwwroot\pwreset\images\` folder by default, and it is called logo.svg. You can replace -this file with one containing your organization's logo. - -You will also need to edit the HTML files if your logo is not in SVG format, or if it has a -different aspect ratio to the Netwrix logo. Open every HTML file in a text editor such as Notepad, -and search for the line shown below. Change the filename (logo.svg), height (70 pixels) and width -(116 pixels) to suit your logo. - -`` - -### Edit Page Instructions - -Instructions appear at the top of each page. You can edit the instructions by opening the relevant -.htm file and searching for the text you wish to modify. - -Instructions are often inside a range called SECTION_A, SECTION_B, SECTION_C, or SECTION_D. Each -section contains instructions for the different pages in the template. Make sure you edit the -instructions in the correct section, or they may be displayed on the wrong page. The text_long and -text_short classes are used in page instructions to tailor content to the screen size. - -```html - -

    Enter your username and domain, and then click Next to continue…

    -

    Use the reset feature if you have forgotten y…

    - -``` - -```html - -

    Answer the question below to confirm your identity. Your answer…

    -

    You may need to answer additional questions b…

    - -``` - -### Edit Validation Error Messages - -Validation error messages are shown in a red box below the page instructions. Validation errors are -normally caused by invalid user input. - -![using_npr_12](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_12.webp) - -Validation error messages are defined in the relevant template (en_enroll.htm, en_reset.htm, -en_unlock.htm, or en_change.htm). The error messages are in the resource strings section near the -end of the file. Some messages are defined in more than one file, so you may need to edit several -files to change all instances of a message. See the [Resource Strings](#resource-strings) topic for -more information. - -You may see placeholders like %1 and %2 in some error messages. These are replaced with more -information about the error. You should keep these, but you can delete them if you do not want them. - -| String | Message | -| --------------------------- | ----------------------------------------------- | -| `@RES_EMPTY_FIELD_EMAIL` | `Enter your e-mail address in the E-mail box.` | -| `@RES_EMPTY_FIELD_QUESTION` | `Select a question from the Question %1 list.` | -| `@RES_IDENTICAL_QUESTIONS` | `Question %1 and %2 are the same. Select a di…` | - -### Edit Critical Error Messages - -All the critical error messages are defined in en_error.htm. The messages are in the resource -strings section near the end of the file. See the [Resource Strings](#resource-strings) topic for -more information. - -![using_npr_13](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_13.webp) - -You may see placeholders like %1 and %2 in some error messages. These are replaced with more -information about the error. You should keep these, but you can delete them if you do not want them. - -| String | Message | -| --------------------- | ----------------------------------------------------- | -| `@RES_LOCKED_OUT` | `This feature has been disabled because too many qu…` | -| `@RES_LOCKED_OUT_AD` | `Your account is locked because an incorrect passwo…` | -| `@RES_REQUEST_FAILED` | `The server %1 could not handle your request. Pleas…` | - -If you want to display some text for all error messages, then insert your text above or below the -`

    {/*ERROR*/}

    ` line. For example: - -

    {/*ERROR*/}

    -

    The help desk phone number is 555-555-5555.

    - -### Edit Finished Messages - -Finished messages are shown after users successfully complete an enroll, reset, unlock, or change. -These messages are defined in the Resource Strings section near the end of `en_finished.htm`. See -the [Resource Strings](#resource-strings) topic for more information. - -![using_npr_9](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_9.webp) - -`en_finished.htm` has two resource strings for password changes (RES_FINISHED_CHANGE and -RES_FINISHED_CHANGE_INVITE). The first is shown when a user who has enrolled into NPR changes their -password. The second is shown when a user who has not enrolled changes their password. The second -message invites the user to enroll so they can also use the reset and unlock features in future. - -### Replace Enroll Question Lists with Text Boxes - -When users enroll into Password Reset, they choose their questions from the Question List. You can -replace some or all of the question lists with text boxes so users can enter their own questions. -See the -[Question List](/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md#question-list) -topic for additional information. - -The lines you need to edit in en_enroll.htm look like this: - -```html - -``` - -There are ten of these lines in en_enroll.htm, each with their own question number (the number after -the q). You do not have to edit all ten lines. If users will be allowed to enter two questions, then -only edit the q1 and q2 lines. Replace these lines with a line like this: - -```html - -``` - -Change the three question numbers on each line so they match the original numbers, otherwise -Password Reset will not work correctly. You should also edit the validation error messages in -`en_enroll.htm` as some of them make reference to selecting questions from a list. - -:::note -Users may not choose appropriate security questions, so it is advisable to leave the -question lists for some of the enrollment questions. -::: - - -### Change Font Sizes and Colors - -apr.css contains the user interface formatting information. You can change font sizes and colors by -editing this file. You can even reposition and resize items, but you will need some understanding of -CSS to do this. For example, this is the CSS for the validation error box: - -```css -.apr_form .error { - background-color: #ce482f; - border-radius: 5px; - color: #fff; - margin: 0 15px 15px; - padding: 10px 13px; -} -``` - -Edit these properties to change the appearance of the error box. You may need to clear your web -browser's cache to see the changes. - -### Change Icon Colors - -The Web Interface icons are in Scalable Vector Graphics (SVG) format. Vector graphics maintain their -sharpness when resized. You can easily change the colors of the icons with a text editor. Open the -SVG file with a text editor like Notepad, and edit this section of the file: - -**fill="#FF7F00"** - -Replace the hexadecimal color code with your desired color code. You can use a color picker like -this one to generate the color code: -[https://www.w3schools.com/colors/colors_picker.asp](https://www.w3schools.com/colors/colors_picker.asp) - -:::note -Some old web browsers with basic HTML5 support cannot display SVG images. Password Reset -works with these browsers, but the SVG images are not shown. You can convert the icons to GIF or PNG -format if you want them shown on these older browsers. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md deleted file mode 100644 index 64fd5e641d..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/email_tab.md +++ /dev/null @@ -1,90 +0,0 @@ -# E-mail Tab - -Use the **E-mail** tab to configure how e-mail is sent to users, when it is sent, and also to edit -the e-mail templates. - -![configuring_npr_3_709x772](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_3_709x772.webp) - -### E-mail Delivery - -Password Reset can send e-mail alerts directly to an SMTP server, or save them to a pickup folder. -Select the **Send e-mail to an SMTP server** option if Password Reset should send e-mails directly -to an SMTP server. Type the name or IP address of an SMTP server in the **Server** text box, and the -SMTP port number in the **Port** text box. -Select the **Save e-mail to a pickup folder** option if NPR should save e-mails to a folder for -delivery by a mail server. Click **Browse...** to select a folder. The mail server must monitor this -folder for new e-mail. - -:::note -Saving e-mail to a pickup folder is the fastest and most reliable delivery method. Use -this option if your mail server supports pickup folders. -::: - - -### Triggers - -Triggers define when e-mails are sent. If the trigger for an event is enabled, then Password Reset -sends an e-mail when the event occurs. Enabled triggers are underlined. - -Click the name of an enabled trigger to edit the trigger's e-mail template. - -![configuring_npr_4](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_4.webp) - -Type the name and e-mail address you wish to appear in the e-mail's From field in the **From** text -box. The correct format is `"Display Name" ` -Type the recipient's e-mail address in the **To** text box. The correct format is -`"Display Name" `. Separate multiple recipients with a semicolon. You can also -use these macros. - -| Macro | Replace with | -| ----------------- | --------------------------------------------------------------------------------------------- | -| [AD_EMAIL] | The e-mail address in Active Directory | -| [NPR_EMAIL] | The e-mail address in Password Reset's database | -| [AD_OR_NPR_EMAIL] | The e-mail address in AD, or the e-mail address in Password Resetif the AD address is blank | -| [NPR_OR_AD_EMAIL] | The e-mail address in NPR, or the e-mail address in AD if the Password Reset address is blank | - -:::note -Use [NPR_OR_AD_EMAIL] with caution as Password Reset does not check the validity of e-mail -addresses. If the e-mail address in Password Reset's database is no longer valid, then the alert is -only sent to the invalid address. -::: - - -Type additional recipient e-mail addresses in the **Bcc** text box if you want to send any blind -carbon copies. Separate multiple recipients with a semicolon. - -Type the e-mail's subject in the **Subject** text box. - -Type the e-mail's body in the large text box. The e-mail is sent as plain text unless the body -contains the `` tag. Include the entire HTML document when sending e-mail as HTML. You can -also use these macros. - -| Macro | Replaced with | -| ----------- | --------------------------------------- | -| [AD_DOMAIN] | The user's Active Directory domain name | -| [AD_USER] | The user's Active Directory logon name | - -Password Reset stores the user's preferred language every time they successfully complete an Enroll, -Reset, Unlock, or Change. E-mail alerts are sent in the user's preferred language, or in the current -Web Interface language if the user's preferred language is not known. If an e-mail template is not -defined for the user's preferred language, then the alert is sent in English. - -Use the drop-down list at the bottom of the E-mail template editor to switch between template -languages. Changes are preserved as you switch between languages. The **From**, **To**, and **Bcc** -are the same for all languages. -A warning icon is shown beside the language drop-down list if an e-mail template is not defined for -every language. You should define an e-mail template for every language to ensure that users can -understand their e-mail alerts. - -![configuring_npr_5](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_5.webp) - -:::warning -An attacker may choose a specific language to avoid detection. E-mail alerts are sent -in the Web Interface language chosen by the attacker if the target user has not enrolled or changed -their password with Password Reset. The target user will receive the e-mail alerts, but they may not -understand them. Use the Rest API to remind new users to enroll so their preferred language is known -to Password Reset. See the -[Enabling the API](/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md#enabling-the-api) -topic for additional information. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md deleted file mode 100644 index 278e09884e..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md +++ /dev/null @@ -1,56 +0,0 @@ -# Enroll Tab - -Use the **Enroll** tab to maintain the list of enrollment questions and options. - -![configuring_npr_2](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_2.webp) - -### Question List - -Users must answer some questions about themselves when they manually enroll. They choose their -questions from the Question List. - -**Add a question** - -Follow the steps below to add a question to the list. - -**Step 1 –** Select a language from the drop-down list above the Question List. - -**Step 2 –** Click **Add...** - -**Step 3 –** Type the new question, including the question mark. - -**Step 4 –** Click **OK**, and then click **Apply**. - -**Remove a question** - -Follow the steps below to remove a question from the list. - -**Step 1 –** Select a language from the drop-down list above the Question List. - -**Step 2 –** Select the question in the Question List. - -**Step 3 –** Click **Remove**, and then click **Yes** when asked to confirm. - -**Step 4 –** Click **Apply**. - -:::note -You can rearrange questions by dragging them. You can also replace question lists with -text boxes so users can enter their own questions. See the -[Editing the HTML Templates](/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md) -document for more information -::: - - -### Options - -Password Reset can send e-mail alerts to users when a request is submitted for their account. These -alerts can be sent to the user's Active Directory e-mail address and/or to an e-mail address in -Password Reset's database. Select the **Users must enter an e-mail address to enroll** check box if -users should enter an e-mail address during enrollment. - -The number of questions that users must answer to enroll is configurable, and is set to three by -default. Select the desired number of questions from the **Users must answer...** drop-down list. - -You can also set a minimum length for each answer. Only alphanumeric characters are counted because -Password Reset only checks alphanumeric characters. Select the minimum number of alphanumeric -characters in each answer from the **Answers must contain at least...** drop-down list. diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/filter_editor.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/filter_editor.md deleted file mode 100644 index 49e2500822..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/filter_editor.md +++ /dev/null @@ -1,33 +0,0 @@ -# Filter Editor - -Use the Filter Editor to create complex filters, filters for hidden columns, or to save and open -regularly used filters. Press **CTRL** + **F** to open the Filter Editor, or click the **Filter -Editor** button in the lower right corner of the Data Console. - -![using_the_data_console_9](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_9.webp) - -A filter may contain several conditions. Conditions start with a column name, followed by an -operator, and sometimes a value. Column names are shown in green, operators in maroon, and values in -blue. - -A filter also contains a root node and optionally one or more groups. These are used to include -Boolean operators in the filter. Boolean operators are shown in red. Grouped conditions are -indented. - -The filter in the image above contains the root node, one group, and four conditions. It will show -all reset requests in the last fourteen days originating from IP addresses starting with 192.168.115 -or 192.168.119. - -Click the **Click here to add a new condition** button to add a new condition to the filter. Click -the ellipsis button on the left of each line to add or remove conditions and groups. Click column -names, operators, and values to edit them. Most can be selected from a list. Values can also contain -the ? and \* wildcard characters. - -Click **Save As...** to save a filter to a file, or **Open...** to use a saved filter. Click **OK** -to close the Filter Editor and apply the filter. - -Some columns are hidden in the Data Console. You can use the Filter Editor to create filters for -these columns. For example, the filter in the image below shows all users with an NPR v1 enrollment -record. - -![using_the_data_console_10](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_10.webp) diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md deleted file mode 100644 index 75ea6fe087..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md +++ /dev/null @@ -1,144 +0,0 @@ -# Filtering Data - -The Data Console can show thousands of records, but only some of them will be of interest to you at -any time. Filters let you focus on the important information. - -You can create simple filters by typing values directly into the filter row, or by selecting values -from [Filtering by Column Values](#filtering-by-column-values). More complex filters are created -with the [Custom Filters](#custom-filters) and -[Filter Editor](/docs/passwordpolicyenforcer/10.2/password_reset/administration/filter_editor.md) -windows. - -### The Filter Row - -The top row in the **Audit Log** and **Users** tabs is called the Filter Row. You can type filter -values directly into this row. - -![using_the_data_console_3](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_3.webp) - -The Filter Row is empty when you first open the Data Console. To create a filter, click the **Filter -Row** in the column you wish to filter. A cursor will appear. Type a value, and then press **ENTER** -or **TAB**. - -Click the button to shown an editor or selector that helps you enter a value. Values can include -wildcard characters. Use a ? to match any single character, or a \* to match more than one -character. - -![using_the_data_console_4](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_4.webp) - -The image above shows a filter on the Date, Source, and Source IP columns. Only password reset -events on 2/5/2015 originating from IP addresses starting with 192.168.115 are shown. The small blue -icons in the column headers show which columns have active filters. - -:::note -Rows are shown only if they match all filter values (logical AND). Use the custom filter -or the filter editor windows for a logical OR filter. -::: - - -### Filtering by Column Values - -You can also create a filter by selecting values from a list in the column headers. - -![using_the_data_console_5](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_5.webp) - -Hover the mouse pointer over a column header until a small button appears on the right side of the -header. - -![using_the_data_console_6](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_6.webp) - -Click the button to show a list of values in the column. - -Select one or more values from the list. Rows that do not match one of the selected values are -hidden. - -![using_the_data_console_7](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_7.webp) - -The list of values for date and date/time columns also includes date ranges such as **Last 7 days**, -**Today**, **Yesterday**, etc. - -Click **(All)** to clear the filter and display all values. Click **(Custom...)** to create a custom -filter. - -### Custom Filters - -Use custom filters to search for partial matches, find a range of values, or to create more complex -filters. Click **(Custom...)** in a column header's value list to create a custom filter. - -![using_the_data_console_8](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_8.webp) - -Custom filters can contain one or two conditions for each column. Select an operator for the first -condition from the drop-down list below the column name. Only relevant operators are shown for each -column. - -Type a value for the condition in the text box beside the operator. The text box may have a button -on the right. Click the button to shown an editor or selector that will help you enter a value. -Values can include wildcard characters. Use a ? to match any single character, or a \* to match more -than one character. - -Select the **AND** or **OR** operator if the filter will have two conditions. Select **AND** if the -filter should only show rows that meet both conditions. Select **OR** if the filter should show rows -that meet either condition. - -Select an operator and value for the second condition, or leave them blank if your filter only has -one condition. Click **OK** to close the Custom Filter window and apply the filter. - -:::note -The Filter Editor is shown instead of the Custom Filter window if the current filter is -too complex for the Custom Filter window. -::: - - -### The Filter and Status Bars - -The Status Bar appears at the very bottom of the Data Console. It shows the number of visible -records and the total record count. The Filter Bar appears above the Status Bar, and it shows the -active filter. The button on the right side of the Filter Bar opens the Filter Editor. - -![using_the_data_console_11](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_11.webp) - -A button and a check box appear on the left side of the Filter Bar when a filter is active. Click -the button to clear the filter. Toggle the check box to disable or enable the filter. - -![using_the_data_console_12](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_12.webp) - -A drop-down button appears to the right of the filter. Click it to select a recently used filter. - -![using_the_data_console_13](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_13.webp) - -## Exporting Data - -You can export the visible rows to Microsoft Excel, HTML, text, and XML formats. - -Follow the steps below to export the visible rows in the current tab. - -**Step 1 –** Click the **Audit Log** or **Users** tab. - -**Step 2 –** Click the **File** menu, and then click one of the export menu items. - -**Step 3 –** Type a filename, and then click **Save**. - -:::note -When exporting to Excel, you can choose the file type from the **Export to Excel** window. -The default file type is .xlsx. -::: - - -## Deleting Users - -Users are automatically deleted from Password Reset's database approximately one week after they are -deleted from Active Directory. You can also manually delete users from the Data Console. - -Follow the steps below to delete a user. - -**Step 1 –** Click the **Users** tab. - -**Step 2 –** Select the user(s) you wish to delete. - -**Step 3 –** Press the **DELETE** key, and then click **OK**. - -:::note -You can still view a user's event history in the **Audit Log** tab after they are deleted -from the **Users** tab. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md deleted file mode 100644 index d4ba0d1662..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md +++ /dev/null @@ -1,132 +0,0 @@ -# General Tab - -Use the General tab to maintain the list of managed domains, set the database options, and enable -the Password Policy Enforcer integration. See the -[Netwrix Password Policy Enforcer](#netwrix-password-policy-enforcer) topic for additional -information. - -![configuring_npr](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr.webp) - -### Domain List - -The Domain List is empty when Password Reset is first installed, and users must type their domain -name. You can configure Password Reset to display a list of domains instead of an empty text box. - -**Add a Domain to the list** - -Follow the steps below to add a domain to the list. - -**Step 1 –** Click **Add...** - -**Step 2 –** Type a NetBIOS (NT Compatible) or DNS domain name. - -**Step 3 –** Click **OK**, and then click **Apply**. - -:::note -The most frequently used domain should be first in the list as it will be the default. You -can rearrange the domains by dragging them to another position. You can also click Sort to sort them -alphabetically. -::: - - -**Remove a Domain from the list** - -Follow the steps below to remove a domain from the list: - -**Step 1 –** Select the domain name in the Domain List. - -**Step 2 –** Click **Remove**, and then click **Yes** when asked to confirm. - -**Step 3 –** Click **Apply**. - -### Database - -Password Reset uses an SQL Server Compact database by default. It creates two database files -(apr.sdf and aprlog.sdf) in the Password Reset installation folder. - -Follow the steps below to move these files to another folder. - -**Step 1 –** Close the Data Console if it is open. - -**Step 2 –** Stop the Password Reset service. - -**Step 3 –** Move apr.sdf and aprlog.sdf to their new location. The database files should remain on -a local disk. - -**Step 4 –** Give the Password Reset service account read and write permissions to the database -files in their new location. - -**Step 5 –** Open the Password Reset Configuration Console, and click **Change...** in the -**General** tab. - -**Step 6 –** Click **Browse...** and select the new database path. - -**Step 7 –** Click **OK** twice, and then click **Apply**. - -**Step 8 –** Start the Password Reset service. - -**Step 9 –** Update the backup script to copy from the new folder. See the -[Working with the Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md) -topic for additional information. - -You can also move the database from SQL Server Compact to SQL Server. See the -[Working with the Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md) -topic for more information. - -### Netwrix Password Policy Enforcer - -Password Reset is a configurable password filter that enforces granular password policies with many -advanced features. Password Reset can integrate with Password Policy Enforcer to help users choose a -compliant password. - -![configuring_npr_1](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_1.webp) - -Password Reset displays the Password Policy Enforcer policy message when users are prompted for -their new password, and the Password Policy Enforcer rejection message if the new password does not -comply with the password policy. Select the **Password Policy Enforcer integration** check box if -you have installed and configured Password Policy Enforcer on your domain controllers. - -Password Reset locates and queries a domain controller in the user's domain when Password Policy -Enforcer integration is enabled. You can override this behavior and send all Password Policy -Enforcer queries to a specific IP address by setting the `PPEIPAddress` registry value to the IP -address of a Password Policy Server. The `PPEIPAddress` value is in -`HKEY_LOCAL_MACHINE\SOFTWARE\ANIXIS\ANIXIS Password Reset\3.0`. - -:::note -Due to a protocol upgrade, Netwrix Password Reset v3.3 is not compatible with Netwrix -Password Policy Enforcer v8.x and earlier versions. If you are using Netwrix Password Reset with any -of those older Netwrix Password Policy Enforcer versions, please consider upgrading Netwrix Password -Policy Enforcer first to a current version, and only then upgrade Netwrix Password Reset to v3.3 (or -later). -::: - - -Users are more likely to see the Password Policy Enforcer Generic Rejection message rather than the -more detailed Rejection message when this registry value is set. Users may also have the wrong -policy, or no policy enforced if the queried server is not a domain controller in the user's -domain. -Queries to the Password Policy Server are sent to UDP port 1333 by default. You may need to create -firewall rules to open this port. See the -[Password Policy Client](/docs/passwordpolicyenforcer/10.2/administration/passwordpolicyclient/password_policy_client.md) -topic for more information. - -:::note -Due to a protocol upgrade, it is now recommended to enable protocol encryption for -clients. To do so, please navigate to the PPS Properties in your Netwrix Password Policy Enforcer -server configuration, and enable "Only accept encrypted client request". -::: - - -![using_ppe_with_npr](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_ppe_with_npr.webp) - -Please do not enable this option if you are using Netwrix Password Reset v3.3 with Netwrix Password -Policy Enforcer v8.x or earlier versions, or with Netwrix Password Policy Enforcer/Web. If you are -using Netwrix Password Reset v3.3 with any of those older versions of Netwrix Password Policy -Enforcer, please consider upgrading first to a current and supported version. - -:::note -Password Policy Enforcer is not included with Password Reset. Go to -[www.netwrix.com/password_policy_enforcer](https://www.netwrix.com/password_policy_enforcer.html) to -learn more about Password Policy Enforcer. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md deleted file mode 100644 index 25e99443bd..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md +++ /dev/null @@ -1,391 +0,0 @@ -# Installation - -Netwrix Password Reset V3.30 is designed to run on Windows 2008 to 2019. Users access Password Reset -from a web browser, or from the Password Reset console. - -## System Requirements - -- Windows 2008\*, 2008 R2, 2012, 2012 R2, 2016, or 2019. - - \*x64 only for NPR Server and Web Interface. - -- 20 Megabytes free disk space. -- 20 Megabytes free RAM. - -## System Components - -Password Reset has two server components, and an optional client. Both server components can be -installed on one server, or they may be installed on separate servers if your web server is in a -DMZ. - -### The Web Interface - -The Web Interface is the component that users interact with. It accepts user requests, encrypts -them, and sends them to the Password Reset Server. The Web Interface must be installed on a server -running IIS 7 or later. - -### The Netwrix Password Reset Server - -The Password Reset Server is the component that performs requests on behalf of users. It receives -requests from the Web Interface, checks the user's credentials, and performs the requested task if -the credentials are valid. - -![installing_npr_624x193](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/installing_npr_624x193.webp) - -:::note -Microsoft SQL Server Compact is installed with the Password Reset Server. SQL Server -Compact is free to use, and should only be removed if you move the database to SQL Server. SQL -Server Compact is an embedded database. Unlike SQL Server, you do not need to configure or manage -it. See the -[Working with the Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md) -topic for additional information. -::: - - -## Installation Types - -A single server installation is recommended where users will only access Password Reset from a -trusted network, including a VPN. In this installation type, the Web Interface and Password Reset -Server are both installed on the same server. The server must have access to a domain controller in -each managed domain. - -If Password Reset will be accessible from the Internet without a VPN, then it is likely that you -will want to run the Web Interface in a DMZ. A multiple server installation is recommended for this -scenario. In this installation type, the Web Interface is installed on an server in the DMZ and the -Password Reset Server is installed on another server in the internal network. A firewall rule allows -the two servers to communicate. - -You choose the installation type when installing Password Reset, but you can change it later. - -:::note -An Password Reset Server can accept requests from more than one Web Interface. Having -multiple Web Interfaces allows for load balancing and failover, but you should only consider this -option if you already have redundant web servers. Most organizations only need one Web Interface. -::: - - -Password Reset can share server resources with other applications. It is normally not necessary to -dedicate a server exclusively to Password Reset. The Web Interface can be installed on an existing -web server as long as it is well secured and not overloaded. The Password Reset Server can run on an -existing member server or domain controller. - -### Single Server Installation - -Follow the steps below to install the Web Interface and Password Reset Server on a single server. - -**Step 1 –** Start the Password Reset Setup wizard (APR330.exe). - -**Step 2 –** The Setup wizard may ask you to backup some files if an older version of Password Reset -is detected. Backup the files, and then click **Next**. - -**Step 3 –** Click **Next**. - -**Step 4 –** Read the License Agreement. Click **I accept the terms of the license agreement**, and -then click **Next** if you accept all the terms. - -**Step 5 –** Select the **All Components** option, and then click **Next**. - -**Step 6 –** The Setup wizard may offer to install IIS. Click **OK** to install IIS. - -**Step 7 –** Enter a **User Name**, **Domain**, and **Password** for the Password Reset service -account. The account will be created and added to the Domain Admins group if it does not exist. - -:::note -You can remove the account from the Domain Admins group later. If using an existing -account, make sure it has the required permissions. See the -[Securing Password Reset](/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md) -topic for additional information. -::: - - -**Step 8 –** Click **Next**. - -**Step 9 –** Select an **IIS Web Site** from the drop-down list, and optionally change the default -**Virtual Directory** for the Web Interface. - -:::note -The Web Interface should be installed in its own virtual directory. -::: - - -**Step 10 –** Click **Next** twice. - -**Step 11 –** Wait for Password Reset to install, and then click **Finish**. - -:::note -The Password Reset Setup wizard installs the Password Reset Server and associated files -into the `\Program Files\NetwrixPassword Reset\` folder by default. Use the SERVERDIR parameter to -install the Password Reset Server to a different folder. For example, APR330.exe -SERVERDIR="D:\Programs\NPR\" -::: - - -### Multiple Server Installation - -Create firewall rules to allow the Web Interface and Password Reset Server to communicate if there -is a DMZ firewall between them. The Web Interface initiates a request by sending a datagram with the -following properties: - -| Web Interface Datagram | | -| ---------------------- | ---------------------------------- | -| Protocol | UDP | -| Source Address | Web Interface server's IP address | -| Source Port | Any | -| Destination address | Password Reset Server's IP address | -| Destination Port | 5100 | - -The Password Reset Server responds with a datagram that has the following properties: - -| NPR Server Datagram | | -| ------------------- | ---------------------------------- | -| Protocol | UDP | -| Source Address | Password Reset Server's IP address | -| Source Port | 5100 | -| Destination address | Web Interface server's IP address | -| Destination Port | Any | - -**Install Password Reset Server on an Internal Network** - -Follow the steps below to install the Password Reset Server on a server in the internal network. - -**Step 1 –** Start the Password Reset Setup wizard (APR330.exe). - -**Step 2 –** The Setup wizard may ask you to backup some files if an older version of Password Reset -is detected. Backup the files, and then click **Next**. - -**Step 3 –** Click **Next**. - -**Step 4 –** Read the License Agreement. Click **I accept the terms of the license agreement**, and -then click **Next** if you accept all the terms. - -**Step 5 –** Select the Server **Only option**, and then click **Next**. - -**Step 6 –** Type a **User Name**, **Domain**, and **Password** for the Password Reset service -account. The account will be created and added to the Domain Admins group if it does not exist. - -:::note -You can remove the account from the Domain Admins group later. If using an existing -account, make sure it has the required permissions. See the -[Securing Password Reset](/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md) -topic for additional information. -::: - - -**Step 7 –** Make sure the **Create Windows Firewall Exception for the NPR Server service** check -box is selected, and then click **Next** twice. - -**Step 8 –** Wait for the Password Reset Server to install, and then click **Finish**. - -:::note -Open UDP port 5100 on the Password Reset Server computer if a host-based firewall other -than the Windows Firewall is installed. This is needed in addition to the DMZ firewall rules -above. -The Password Reset Setup wizard installs the Password Reset Server and associated files into the -`\Program Files\Netwrix Password Reset\` folder by default. Use the SERVERDIR parameter to install -the Password Reset Server to a different folder. For example, APR330.exe -SERVERDIR="D:\Programs\NPR\" -::: - - -**Install Web Interface Server in DMZ** - -Follow the steps below to install the Web Interface on a server in the DMZ. - -**Step 1 –** Start the Password Reset Setup wizard (APR330.exe). - -**Step 2 –** The Setup wizard may ask you to backup some files if an older version of Password Reset -is detected. Backup the files, and then click **Next**. - -**Step 3 –** Click **Next**. - -**Step 4 –** Read the License Agreement. Click **I accept the terms of the license agreement**, and -then click **Next** if you accept all the terms. - -**Step 5 –** Select the **Web Interface Only** option, and then click **Next**. - -**Step 6 –** The Setup wizard may offer to install IIS. Click **OK** to install IIS. - -**Step 7 –** Select an **IIS Web Site** from the drop-down list, and optionally change the default -**Virtual Directory** for the Web Interface. The Web Interface should be installed in its own -virtual directory. - -**Step 8 –** Click **Next** twice. - -**Step 9 –** Wait for the Web Interface to install, and then click **Finish**. - -**Step 10 –** Start the Registry Editor (regedit.exe). - -**Step 11 –** Expand the **HKEY_LOCAL_MACHINE**, **SOFTWARE**, **ANIXIS**, **ANIXIS Password -Reset**, and **3.0** registry keys. - -**Step 12 –** Set the **ServerIP** registry value to the IP address of the computer that you -installed the Password Reset Server onto. - -![installing_npr_1](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/installing_npr_1.webp) - -The Password Reset Setup wizard only installs one Web Interface on each server, but you can copy the -files to another directory and publish several Web Interfaces from one server. This allows you to -present different user interfaces from each directory. The Web Interfaces all communicate with the -same NPR Server because there is only one ServerIP value. - -Follow the steps below to configure the Web Interfaces to communicate with different Password Reset -Servers. - -**Step 1 –** Start the Registry Editor (regedit.exe). - -**Step 2 –** Expand the **HKEY_LOCAL_MACHINE**, **SOFTWARE**, **ANIXIS**, **ANIXIS Password Reset**, -and **3.0** registry keys. - -**Step 3 –** Clear the data in the **ServerIP** registry value. - -**Step 4 –** Create a REG_SZ value for each Web Interface called ServerIP_VDIR where VDIR is the -name of the virtual directory. - -For example, if the virtual directory is called Finance, then the registry value should be called -ServerIP_Finance. - -**Step 5 –** Set each ServerIP_VDIR value to the IP address of the Password Reset Server. - -## Upgrading From NPR V3.x - -Some planning is needed to ensure a smooth upgrade from NPR V3.x. A trial run on a lab network is -recommended if you have not installed NPR before. - -### Before You Begin - -The database files are not overwritten during an upgrade, but you should still create a backup -before upgrading. See the -[Backing up the Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md#backing-up-the-database) -topic for additional information. - -**The Web Interface files are overwritten during an upgrade. You must backup any customized Web -Interface files before upgrading**. The Web Interface files are installed in the -`\Inetpub\wwwroot\pwreset\` folder by default. - -:::note -A full backup of the NPR server(s) is recommended. This allows you to roll back to the -previous version if the upgrade cannot be completed. -You may need to restart Windows after upgrading. -::: - - -If Password Reset was originally installed by someone else and you do not have their installation -notes, then read the installation instructions above before you begin. Also make sure you know the -password for the Password Reset Server service account as you will need it during the upgrade. - -### Upgrading to V3.3 - -Start the Password Reset Setup wizard (APR330.exe) and follow the prompts. The Setup wizard -uninstalls the previous version, so there is no need to manually uninstall it. - -If the Password Reset Server and Web Interface are installed on different servers, then upgrade all -servers before using the new version. The Password Reset Server and Web Interface are only tested -with matching versions. - -Restore any customized Web Interface files after upgrading. Do not restore APR.dll from the backup -as it belongs to the previous version. You should keep a copy of the original Web Interface files -and compare them with the files from the previous version using a file comparison tool. Any changes -between versions should be merged into your customized files. - -The Password Reset V3.30 data console does not read the VerificationCode or EnrollRecord columns -from the User table on SQL Server. Access to these columns can be denied for Data Console users -after upgrading all instances of the Data Console. See the -[Using the Data Console](/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md) -topic for additional information. - -## Upgrading From NPR V2.x - -As this is a major upgrade with many changes, some planning is needed to ensure a smooth upgrade. A -trial run on a lab network is recommended, especially if you are customizing the user interface. See -the -[Editing the HTML Templates](/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md) -topic for additional information. - -:::warning -Due to a protocol upgrade, Netwrix Password Reset v3.3 is not compatible with Netwrix -Password Policy Enforcer v8.x and earlier versions. If you are using Netwrix Password Reset with any -of those older Netwrix Password Policy Enforcer versions, please consider upgrading Netwrix Password -Policy Enforcer first to a current version, and only then upgrade Netwrix Password Reset to v3.3 (or -later). -::: - - -### Before You Begin - -**Step 1 –** Backup the NPR V2.x server(s). - -**Step 2 –** Close the Data Console if it is open. - -**Step 3 –** Stop the Netwrix Password Reset service and backing up the database. See the -[Backing up the Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md#backing-up-the-database) -topic for additional information. - -### Upgrading to V3.23 - -**Step 1 –** Follow the steps for either [Single Server Installation](#single-server-installation) -or [Multiple Server Installation](#multiple-server-installation). If the Web Interface is on a -different server, then upgrade it as well. - -**Step 2 –** Open the Data Console, and check the Audit Log and User tabs to make sure the data was -imported. - -**Step 3 –** Open NPR in a web browser and test the Enroll, Reset, and Change features. - -**Step 4 –** Install your new license key if you have a perpetual license. - -**Step 5 –** Update the Client license key if you have a perpetual license. - -## Other Tasks - -**Move Database files** - -The database files are created in the installation folder when NPR is first installed. The default -installation folder for NPR V2.x was below the Program Files (x86) folder, but in NPR V3.3 it is -below the Program Files folder. The database files are not moved automatically during an upgrade, so -you should move them to the new installation folder (or a different folder) after upgrading. - -Follow the steps below to move the database files to the `\Program Files\Netwrix Password Reset\` -folder. - -**Step 1 –** Close the Data Console if it is open. - -**Step 2 –** Stop the Netwrix Password Reset service. - -**Step 3 –** Move apr.sdf and aprlog.sdf from the \Program Files (x86)\Netwrix Password Reset\ -folder to the \Program Files\Netwrix Password Reset\ folder. - -**Step 4 –** Open the Configuration Console. - -**Step 5 –** Click the **General** tab. - -**Step 6 –** Click **Change...** - -**Step 7 –** Click **Browse...** and then browse to the \Program Files\Netwrix Password Reset\ -folder. - -**Step 8 –** Click **OK** twice, and then click **Apply**. - -**Step 9 –** Start the Netwrix Password Reset service. - -**Step 10 –** Update the backup script to copy from the new folder. See the -[Backing up the Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md#backing-up-the-database) -topic for additional information. - -Configure Password Reset Client to use IE11 emulation mode - -Older versions of the Password Reset Client display pages in Internet Explorer 7 emulation mode. -This mode cannot display the new HTML templates correctly. You can upgrade the Password Reset Client -to the latest version, or configure existing installations to use IE 11 mode. This only works on -Windows Vista and later with IE 9 or later. - -Follow the steps below to configure the Password Reset Client to use IE 11 mode. - -**Step 1 –** Start the Registry Editor (regedit.exe). - -**Step 2 –** Expand the **HKEY_LOCAL_MACHINE**, **SOFTWARE**, **Microsoft**, **Internet Explorer**, -**MAIN**, **FeatureControl**, and **FEATURE_BROWSER_EMULATION** registry keys. - -**Step 3 –** Create a new DWORD value called **LogonUI.exe**, and set it to 2AF8 (hex). - -Create this registry value on all the Password Reset Client computers. IE 11 mode can be requested -even if the computer is running an older version of IE. diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/moving_to_sql_server.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/moving_to_sql_server.md deleted file mode 100644 index 045b21be32..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/moving_to_sql_server.md +++ /dev/null @@ -1,119 +0,0 @@ -# Moving to SQL Server - -Some planning is needed before moving the database to SQL Server. A trial run on a lab network is -recommended. You can run the Data Copy wizard more than once if you cannot complete the move on the -first attempt. A move back to SQL Server Compact is also possible. - -### Create the Database - -Your database administrator needs to set up the SQL Server database. The instructions below are an -overview of the procedure, they are not step-by-step instructions. NPR V3.30 has been tested with -SQL Server 2012 to 2019. - -Follow the instructions below for an overview of the procedure. - -**Step 1 –** Create an SQL Server database. - -**Step 2 –** Create an SQL Server login for the Password Reset service account, and configure it for -Windows authentication. To identify the service account, open services.msc, double-click the -Password Reset service, and then click the Log On tab. Password Reset logs on to SQL Server with -this account. - -![working_with_the_database](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.webp) - -**Step 3 –** Create an SQL Server user, and map it to the service account login. - -**Step 4 –** Add the SQL Server user to the db_datareader, db_datawriter, and db_ddladmin server -roles for the database. - -Your database administrator also needs to grant access to the users that will use the Data Console. -These users only need to be added to the db_datareader server role, and they can be denied access to -the VerificationCode and EnrollRecord columns in the User table. The user running the Data Copy -wizard also needs to be added to the db_datawriter and db_ddladmin server roles. - -Additional permissions can be set for users of the Data Console after the tables are created. Grant -the DELETE privilege on the User table to users who are allowed to delete user records. Deny all -privileges on the VerificationCode and EnrollRecord columns in the User table as they are not used -by the Data Console. - -### Create the Tables and Copy the Data - -The Data Copy wizard creates the database tables and copies the data to SQL Server. You must run the -wizard even if the SQL Server Compact database is empty. Data in the destination database is deleted -before it is copied from the source database. - -Follow the steps below to create the tables and copy the data. - -**Step 1 –** Open the Configuration Console. - -**Step 2 –** Click the **General** tab. - -**Step 3 –** Click **Copy Data...** to open the Data Copy wizard. - -**Step 4 –** Click **Copy from SQL Compact to SQL Server**. - -**Step 5 –** Check the path to the SQL Server Compact database files. If the default path is -incorrect, then click **Browse...**, choose a path, and then click **OK**. - -**Step 6 –** Click **Next**. - -**Step 7 –** Set the SQL Server connection settings for the Data Copy wizard. You can set different -connection settings for the service account later. The **Username** and **Password** are only needed -if **SQL Server Authentication** is selected. The user must be in the db_datareader, db_datawriter, -and db_ddladmin SQL Server roles. **Encrypt connection** should be selected to protect user -information, and **Trust server certificate** must be selected if SQL Server is using a self-signed -certificate. SQL Server uses a self-signed certificate if a trusted certificate is not installed. -The SQL Server Native Client must be installed if **Trust server certificate** is selected. - -![working_with_the_database_1](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database_1.webp) - -**Step 8 –** Click **Next**. - -**Step 9 –** Check the summary information, and then click **Start**. - -**Step 10 –** Wait for the wizard to finish, and then click **Close**. - -### Configure Netwrix Password Reset to Connect to SQL Server - -Configure Password Reset to connect to SQL Server immediately after copying the data. If the cutover -is delayed, then run the Data Copy wizard again to update the SQL Server database with the latest -data. To configure Password Reset to connect to SQL Server: - -**Step 1 –** Open the Configuration Console. - -**Step 2 –** Click the **General** tab. - -**Step 3 –** Click **Change...** - -**Step 4 –** Select the **SQL Server** option. - -**Step 5 –** Type the server name in the **Server** text box. Use `[server]\[instance]` to connect -to a named instance. - -**Step 6 –** Type the database name in the **Database** text box. - -**Step 7 –** Select the **Encrypt connection** option to encrypt the connection to SQL Server. This -option should be selected to protect user information. - -**Step 8 –** Select the **Trust server certificate** option if SQL Server is using a self-signed -certificate. SQL Server uses a self-signed certificate if a trusted certificate is not installed. -Password Reset cannot connect to SQL Server with a self-signed certificate if this option is not -selected. The SQL Server Native Client must be installed if **Trust server certificate** is -selected. - -**Step 9 –** Click **OK**, and then click **Apply**. - -**Step 10 –** Restart the Password Reset service. If the service does not start, then check the -database connection options and the SQL Server login, user, and server roles configured earlier. You -can change the database back to SQL Server Compact while you troubleshoot the issue. - -### Other Tasks - -Open the Data Console and set your SQL Server connection options. You will need to enter a password -every time you open the Data Console if **SQL Server Authentication** is selected. The Data Console -executable and help file (APRDC.exe and CHM_NPR.chm) can be copied to the computers of other users -who will use the Data Console. - -Delete the two SQL Server Compact database files (apr.sdf and aprlog.sdf) after cutting over to SQL -Server. These files will soon contain outdated information, and leaving them on the server is an -unnecessary security risk. Also ensure that the SQL Server database is backed up regularly. diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md deleted file mode 100644 index fea5784b93..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md +++ /dev/null @@ -1,253 +0,0 @@ -# Password Reset Client - -The Password Reset Client allows users to securely reset their password or unlock their account from -the Windows Logon and Unlock Computer screens. Users click **Reset Password** to access the Password -Reset system. - -![the_password_reset_client_905x750](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/the_password_reset_client_905x750.webp) - -:::note -The Password Reset Client does not modify any Windows system files. -::: - - -## Installing the PRC - -The Password Reset Client is designed to run on Windows XP to Windows 10, and Server 2003 to -Server 2019. The PRC is compatible with Remote Desktop Services on these operating systems. Support -for Windows XP and Server 2003 is depreciated because the PRC uses Internet Explorer for page -rendering, and Internet Explorer 8 has very limited support for HTML5. Send an e-mail to -[support@netwrix.com ](mailto:support@netwrix.com)if you need to use the Password Reset Client with -these older operating systems. - -### System Requirements - -- Windows Vista, 7, 8, 8.1, or 10. - Windows Server 2008, 2008 R2, 2012, 2012 R2, 2016, or 2019. - Windows XP, Server 2003, or 2003 R2 (depreciated). -- 1 Megabyte free disk space. -- 128 Kilobytes free RAM (per session if using Remote Desktop Services). - -You can install the PRC manually if you only have a few computers, but it is easier to perform an -automated installation if you have many computers. Follow the instructions below to perform an -automated installation with Group Policy. - -### Create a Distribution Point - -A distribution point can either be a UNC path to a server share, or a DFS (Distributed File System) -path. Organizations with large, multi-site networks should use DFS as it offers fault tolerance and -load sharing. To create a PRC distribution point: - -**Step 1 –** Log on to a server as an administrator. - -**Step 2 –** Create a shared network folder to distribute the files from. - -**Step 3 –** Give the Domain Computers security group read access to the share, and limit write -access to authorized personnel only. - -**Step 4 –** Copy NPRClt330.msi into the distribution point folder. - -:::note -NPRClt330.msi is in the Client folder below the Netwrix Server's installation folder. -(`\Program Files\Netwrix Password Reset\` by default). -::: - - -**Step 5 –** Give the Domain Computers security group read access to the NPRClt330.msi file in the -distribution point. - -### Create a Group Policy Object - -**Step 1 –** Start the Group Policy Management Console (gpmc.msc). - -**Step 2 –** Expand the forest and domain items in the left pane. - -**Step 3 –** Right-click the domain root node in the left pane, and then click **Create a GPO in -this domain, and Link it here...** - -**Step 4 –** Enter **Password Reset Client**, then press **ENTER**. - -![the_password_reset_client_1_895x652](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/the_password_reset_client_1_895x652.webp) - -### Edit the Group Policy Object - -**Step 1 –** **Right-**Click the **Password Reset Client GPO**, then click the Edit**...** button. - -**Step 2 –** Expand the **Computer Configuration**, **Policies**, and **Software Settings** items in -the left pane. - -**Step 3 –** **Right-Click** the **Software installation** item, and then select **New** > -**Package**. - -**Step 4 –** Enter the full UNC path to NPRClt330.msi in the Open dialog box. - -:::note -You must enter a UNC path so that other computers can access this file over the network. -For example, \\file server\distributionpointshare\NPRClt330.msi -::: - - -**Step 5 –** Click **Open**. - -**Step 6 –** Select the **Assigned deployment** method, then click **OK**. - -**Step 7 –** Close the Group Policy Management Editor. - -### Complete the Installation - -Restart each computer to complete the installation. Windows installs the Password Reset Client -during startup. The computer may restart itself automatically to complete the installation. - -:::note -Computers with Fast Logon Optimization enabled may not install the Password Reset Client -during the first restart. These computers perform a background refresh of Group Policy, and will -install the client on the first restart after the refresh. Microsoft article -[305293](http://support.microsoft.com/kb/305293) has more information about the Fast Logon -Optimization feature. -::: - - -## Configuring the PRC - -You must install an Active Directory administrative template to configure the Password Reset Client. -The administrative template only has to be installed once. - -**Install PRC Administrative Template** - -Follow the steps below to install the PRC administrative template. - -**Step 1 –** Use the Group Policy Management Console (gpmc.msc) to display the GPOs linked at the -domain level. - -**Step 2 –** **Right-click** the **Password Reset Client** GPO, and then **click** the -**Edit...**button. - -**Step 3 –** Expand the **Computer Configuration** item. - -**Step 4 –** Expand the **Policies** item if it is visible. - -**Step 5 –** **Right-click** the **Administrative Templates** item, and then click **Add/Remove -Templates...** - -**Step 6 –** Click **Add...** and then browse to the Client folder below the Password Reset Server's -installation folder. (`\Program Files\Netwrix Password Reset\` by default). - -**Step 7 –** Select **NPRClt.adm**, and then click **Open**. - -![the_password_reset_client_2](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/the_password_reset_client_2.webp) - -**Step 8 –** Click **Close**. - -**Configure the PRC** - -Follow the steps below to configure the Password Reset Client. - -**Step 1 –** Use the Group Policy Management Console (gpmc.msc) to display the GPOs linked at the -domain level. - -**Step 2 –** **Right-click** the **Password Reset Client** GPO, then click the **Edit...** button. - -**Step 3 –** Expand the **Computer Configuration, Policies** (if it exists), **Administrative -Templates**, **Classic Administrative Templates (ADM)**, **Netwrix Password Reset**, and **Password -Reset Client** items. - -**Step 4 –** Double-click the **Browser settings** item in the right pane of the Group Policy -Management Editor. - -![the_password_reset_client_3](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/the_password_reset_client_3.webp) - -**Step 5 –** Select the **Enabled** option. - -![the_password_reset_client_4](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/the_password_reset_client_4.webp) - -**Step 6 –** Enter the desired **Width** and **Height** of the PRC browser window. - -:::note -Set the Width and Height to 0 to have the PRC calculate an appropriate size. -::: - - -**Step 7 –** Enter the **Start address** (URL) of the Password Reset system. The URL should point to -the Password Reset menu or reset page. - -:::note -See the **Help** box for more information. -::: - - -**Step 8 –** Enter a **Restricted path** (URL) to stop users from following links to other sites -from the Password Reset Client browser. - -**Step 9 –** Click **OK**. - -**Step 10 –** Close the Group Policy Management Editor. - -The new PRC configuration is applied to all computers in the domain. This does not happen -immediately, as Windows takes some time to apply the changes to Group Policy. You can force an -immediate refresh of Group Policy on the local computer with the following command: gpupdate -/target:computer - -The Password Reset Client only opens URLs with .dll, .htm, and .html extensions. URLs without a -filename are not opened. The PRC also blocks some page content, including audio and video files, -ActiveX controls and Java applets. Send an e-mail to -[support@netwrix.com ](mailto:support@netwrix.com)if you need to change the default filename and -content restrictions. - -:::warning -Users may follow links to untrusted sites if the Password Reset user interface or -server error pages contain external links. This is a security risk because the Password Reset Client -runs under the context of the local system account. Specify a restricted path to stop users from -following links to other sites from the Password Reset Client. The start address and restricted path -should both begin with https:// -::: - - -:::note -The **Enable Password Reset Client**, **Always show reset link**, and **Dialog attachment -delay** are automatically set by the Password Reset Client, and are normally left in their default -(Not configured) state. -The administrative template contains detailed information about all the PRC configuration settings. -This information is shown on the **Help** box. The **Help** box is shown after you double-click one -of the configuration settings in the right pane. -::: - - -## Licensing the PRC - -Follow the steps below to add a license key to the PRC configuration. - -**Step 1 –** Open the **Configuration Console** and install your license key. - -**Step 2 –** Start the **Registry Editor** (regedit.exe). - -**Step 3 –** Expand the **HKEY_LOCAL_MACHINE**, **SOFTWARE**, **ANIXIS**, **ANIXIS Password Reset**, -and **3.0** registry keys. - -**Step 4 –** Double-click the **LicenseKey** value, and then copy the entire license key to the -clipboard. - -**Step 5 –** Use the Group Policy Management Console (gpmc.msc) to display the GPOs linked at the -domain level. - -**Step 6 –** Right-click the **Password Reset Client** GPO, then click the **Edit...** button. - -**Step 7 –** Expand the **Computer Configuration**, **Policies** (if it exists), **Administrative -Templates**, **Classic Administrative Templates (ADM)**, **Netwrix Password Reset**, and **Password -Reset Client** items. - -**Step 8 –** Double-click the **License key** item in the right pane of the Group Policy Management -Editor. - -**Step 9 –** Select the **Enabled** option. - -**Step 10 –** Click inside the **License key** text box, then paste the license key. - -![the_password_reset_client_5](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/the_password_reset_client_5.webp) - -**Step 11 –** Click **OK**. - -**Step 12 –** Close the Group Policy Management Editor. - -The license key is applied to all computers in the domain. This does not happen immediately, as -Windows takes some time to apply the changes to Group Policy. You can force an immediate refresh of -Group Policy on the local computer with the following command: `gpupdate /target:computer` diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/permissions_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/permissions_tab.md deleted file mode 100644 index a32acb6260..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/permissions_tab.md +++ /dev/null @@ -1,25 +0,0 @@ -# Permissions Tab - -Use the **Permissions** tab to control which users can use Password Reset. - -![configuring_npr_9](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_9.webp) - -### Enroll - -Select the **Allow all users to enroll** option if all users are permitted to enroll. Only enrolled -users can reset passwords and unlock accounts. - -Select the **Allow only members of these groups to enroll** option if users are permitted to enroll -only if they belong to a specified group. Click **Add...** to choose which groups are permitted to -enroll. - -Select the **Allow all users except members of these groups to enroll** option if users are -permitted to enroll unless they belong to a specified group. Click **Add...** to choose which groups -are not permitted to enroll. - -To remove a group from the list, select it and then click **Remove**. Enrolled users can continue to -reset their passwords and unlock their accounts even if they are no longer allowed to enroll. - -### Change - -These settings specify which users can change their password with Password Reset. diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md deleted file mode 100644 index d46cd164e2..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.md +++ /dev/null @@ -1,79 +0,0 @@ -# Persuading Users to Enroll - -The Web Interface includes a REST API which your web sites and applications can query to determine -if a user is enrolled. Your web site or application can take appropriate action to encourage the -user to enroll. This could be anything from displaying a discreet message to denying access until -the user enrolls. - -## Enabling the API - -The API is disabled by default. If an attacker sends many queries to the API, they could try to -guess the domain and user names of enrolled users. They could get the same information by sending -many requests to the Web Interface.API is the more attractive target because API responds faster and -API queries are not logged to the Audit Log. - -If you do not want to enable the API because your Web Interface is accessible from the Internet, -then you could leave the API disabled on your Internet-facing Web Interface and set up an internal -Web Interface for API queries. Use the ServerIP registry value to point both Web Interfaces to the -same NPR Server, and enable the API only on the internal server. See the -[Multiple Server Installation](/docs/passwordpolicyenforcer/10.2/password_reset/administration/installation.md#multiple-server-installation) -topic for more information. - -Follow the steps below to enable the API. - -**Step 1 –** Start the Registry Editor (regedit.exe). - -**Step 2 –** Expand the **HKEY_LOCAL_MACHINE**, **SOFTWARE**, **ANIXIS**, **ANIXIS Password Reset**, -and **3.0** registry keys. - -**Step 3 –** Create a new **DWORD** value called **WebAPIState**, and set it to 1. - -![persuading_users_to_enroll](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/persuading_users_to_enroll.webp) - -## Querying the API - -Send a GET request with the user's Active Directory domain and user name like: - -GET https://[server]/pwreset/apr.dll/api/enrollments/**[domain]**/**[user]** - -You can also use the User Principal Name (UPN): - -GET https://[server]/pwreset/apr.dll/api/enrollments/upn/**[user@domain]** - -## Interpreting the Response - -There are three possible responses: - -| Response | Meaning | -| ----------------------- | -------------------------------------- | -| `{"isEnrolled": true}` | User is enrolled | -| `{"isEnrolled": false}` | User is not enrolled or does not exist | -| `{}` | System maintenance is running | - -The API may also return one of these HTTP errors: - -| Error | Reason | -| ------------------------- | ------------------------------------------ | -| 400 Bad Request | Invalid request path | -| 403 Forbidden | API disabled, or cannot read configuration | -| 500 Internal Server Error | Other error | - -## Performance and Caching - -API performance is dependent on many factors. Synchronous queries will suffice in most cases, but -asynchronous queries are recommended to avoid delays. - -Avoid unnecessary calls to the API as they can overload the server. Try to call the API only once -after users logon. - -Caching improves performance and increases capacity. When the API sends a **user is enrolled** -response, it requests caching for up to two weeks. The web browser should cache the response and use -it for the next two weeks before querying the server again. No caching is requested for other -responses. - -:::note -You may get a **user is enrolled** response after deleting an enrolled user when testing -the API. Clearing the browser cache may fix this, but not if other HTTP caches have cached the -response. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md deleted file mode 100644 index 26dc88bc72..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md +++ /dev/null @@ -1,119 +0,0 @@ -# Securing Password Reset - -Password Reset has many inbuilt security features, but there are some things you should do to secure -Password Reset. The most important of these is to install an SSL certificate for the Web Interface. -You can also set up a standard user account with delegated permissions for the Password Reset -Server. - -## Installing and Using an SSL Certificate - -The Web Interface and Password Reset Server always communicate over a secure channel. You do not -have to configure the encryption for this connection, but you do need to set up SSL (Secure Sockets -Layer) encryption for the connection between the web browser (or Password Reset Client) and the web -server. See the -[Password Reset Client](/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md) -topic for more information. - -:::warning -Do not use Password Reset on a production network without SSL encryption. -::: - - -You can use a self-signed certificate with Password Reset, but most organizations purchase -certificates from a certificate authority. You can install the Web Interface on a server that -already has an SSL certificate if you would rather not purchase another one. - -Your certificate authority will have instructions to guide you through the certificate request and -installation process. You can also learn more about using SSL certificates with IIS on the pages -below. - -- [http://www.iis.net/learn/manage/configuring-security/how-to-set-up-ssl-on-iis](http://www.iis.net/learn/manage/configuring-security/how-to-set-up-ssl-on-iis) -- [http://technet.microsoft.com/en-us/library/cc732230(WS.10).aspx](http://technet.microsoft.com/en-us/library/cc732230(WS.10).aspx) - -:::note -Ensure that users only access Password Reset over an encrypted connection after the SSL -certificate is installed. The Start address and Restricted path in the Password Reset Client -configuration should start with https://. Web browsers can be redirected to the secure URL. See the -[Configuring the PRC](/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md#configuring-the-prc) -topic for more information. -::: - - -## Delegating Permissions to the Netwrix Password Reset Server Service - -When the Setup wizard creates a service account for the Password Reset Server, it adds the account -to the Domain Admins group. This allows Password Reset to start working without additional -configuration, but it also gives the service excessive permissions. You can improve security by -removing the service account from the Domain Admins group and granting only the required -permissions. - -You can grant Active Directory permissions from the command-line with dsacls.exe, or with the -graphical user interface. The examples below use the command-line, but you can use either method. -The commands you need to execute are: - -**dsacls "[object]" /I:S /G "[account]:CA;Reset Password;user"** - -dsacls "[object]" /I:S /G "[account]:RPWP;lockoutTime;user" - -**dsacls "[object]" /I:S /G "[account]:RPWP;pwdLastSet;user"** - -Where [object] is the distinguished name of the domain or OU containing the user accounts, and -[account] is the name of the service account in user@domain or domain\user format. - -The first two commands allow NPR to reset passwords and unlock accounts. Both commands are required -even if the Unlock item is hidden from the menu because Password Reset automatically unlocks an -account when its password is reset. The third command allows Password Reset to set **User must -change password at next logon** in Active Directory if the **Require users to change their password -after a reset** option is enabled in the Configuration Console's **Security** tab. - -For example, the following command grants the axs\apr account permission to reset passwords for -users in the axs.net domain: - -**dsacls "dc=axs,dc=net" /I:S /G "axs\apr:CA;Reset Password;user"** - -If Password Reset is configured to use an SQL Server Compact database, then give the service account -read and write permissions to the database files. See the -[Moving to SQL Server](/docs/passwordpolicyenforcer/10.2/password_reset/administration/moving_to_sql_server.md) -topic for more information. - -Remove the service account from the Domain Admins group and restart the Password Reset service after -executing these commands. Check the Windows Application event log if the service does not start. - -### Using Delegated Permissions with Protected Groups - -When you delegate permissions for the Password Reset service account, the delegated permissions are -initially applied to all users in the domain or OU. After some time, Windows restores the original -permissions for some important user accounts. The restored permissions do not allow Password Reset -to reset passwords or unlock accounts for these users. - -The accounts protected by this feature vary by Windows version, and include members of the Domain -Admins, Enterprise Admins, and Schema Admins groups. The list of protected groups is configurable, -so it may differ from the defaults in the Windows documentation. - -If you are using an Password Reset service account with delegated permissions and do not want these -privileged accounts to reset their password or unlock their account with Password Reset, then there -is no need to make any configuration changes. Windows automatically restores the original -permissions for these accounts. This is done every hour by default. - -If you want to allow these users to reset their password and unlock their account with Password -Reset, then you need to change the permissions for the AdminSDHolder container. The commands you -need to execute are: - -**dsacls "[AdminSDHolder]" /G "[account]:CA;Reset Password"** - -dsacls "[AdminSDHolder]" /G "[account]:RPWP;lockoutTime" - -**dsacls "[AdminSDHolder]" /G "[account]:RPWP;pwdLastSet"** - -Where [AdminSDHolder] is the distinguished name of the AdminSDHolder container, and [account] is the -name of the service account in user@domain or domain\user format. -The DN of the AdminSDHolder container for the netwrix.com domain is -CN=AdminSDHolder,CN=System,DC=netwrix,DC=com - -:::note -Changes to the AdminSDHolder container are not applied to accounts immediately. You may -need to wait up to an hour for Windows to update the DACL for these accounts. You can also start the -process manually. Search for runProtectAdminGroupsTask or FixUpInheritance in Microsoft's -documentation or more information. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md deleted file mode 100644 index 4b680b323d..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/security_tab.md +++ /dev/null @@ -1,71 +0,0 @@ -# Security Tab - -Use the **Security** tab to configure the inactivity timeout, password reset policies, and the -lockout threshold. - -![configuring_npr_8](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_8.webp) - -### Inactivity Timeout - -Users should remain at their computer while resetting their password or unlocking their account. -Their account could be compromised if they leave their computer after answering the first question. -NPR protects user accounts by expiring sessions if users take too long to respond. Select the -inactivity timeout from the **Expire idle sessions after...** drop-down list. Set it to 0 seconds to -disable the inactivity timeout. - -### Reset Policies - -Select the **Enforce the AD password history and minimum age policies for resets** check box to -enforce these Active Directory password policies during a reset. Older Windows versions cannot -enforce these policies for password resets. This capability was added as a hotfix for Windows 2008 -and 2008 R2. See the [KB2386717](http://support.microsoft.com/kb/2386717) Microsoft knowledge base -article for additional information. The hotfix is included with SP1 for Windows 2008 R2, and is a -standard feature on later Windows versions. - -Users are more likely to forget a password shortly after changing it. Enforcing a minimum age for -password resets may increase the number of help desk calls because users won't be able to reset -recently changed passwords. One solution is to clear the check box above, and select the **Require -users to change their password after a reset** check box instead. The Active Directory password -history policy won't be enforced for the password reset, but it will be enforced for the password -change when the user logs on. This stops users from reusing a recent password, but it won't stop -them from resetting a recently changed password. - -Users whose passwords are set to never expire in Active Directory will not be forced to change their -password during logon, even if this check box is selected. - -:::note -Password Policy Enforcer's History rule is enforced for password resets if the **Enforce -policy when password is reset** check box is selected in the PPS properties page, and if the -**Enforce this rule when a password is reset** check box is selected in the History rule's -properties page. Netwrix Password Policy Enforcer does not enforce the Minimum Age rule for password -resets. -::: - - -Users may try to evade the password history policy by resetting their password several times in -quick succession to push a password off the password history list. Select a value from the -**Passwords can only be reset if they are at least...** drop-down list to stop users from doing -this. Set it to 0 days to disable this feature. If the Active Directory minimum password age policy -is also enforced for password resets, then the effective minimum age is the greater of the AD and -NPR minimum ages. - -### Lockout - -Password Reset's lockout should not be confused with the Windows lockout policy. A Windows lockout -stops users from logging on, whereas an Password Reset lockout stops users from resetting their -password and unlocking their account. Windows locks out users when they enter too many incorrect -passwords. Password Reset locks out users when they enter too many incorrect answers or verification -codes. - -Select a value from the **Lockout user after...** drop-down list to specify how many incorrect -answers Password Reset accepts before locking out a user. Set it to 0 incorrect answers to disable -the lockout feature. Incorrect verification codes are counted as incorrect answers if the **Lockout -users if they enter too many incorrect verification codes** check box is selected on the -**Verification** tab. - -:::note -Locked out users must re-enroll before they can use Password Reset to reset their password -or unlock their account. The incorrect answer count is reset when a user enrolls, or answers all -questions during a reset or unlock. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md deleted file mode 100644 index 153cb1868e..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_password_reset.md +++ /dev/null @@ -1,175 +0,0 @@ -# Using Password Reset - -Netwrix Password Policy Enforcer is a web application. Users can access it from a web browser, or -from the Password Reset Client. The default URL for the Web Interface -is:` http://[server]/pwreset/` -See the -[Password Reset Client](/docs/passwordpolicyenforcer/10.2/password_reset/administration/password_reset_client.md) -topic for more information. - -You can use URL parameters to open a specific page, and to set the user and domain names. For -example: `http://[server]/pwreset/apr.dll? cmd=enroll&username=johnsmith&domain=CORP` - -Where [server] is the name or IP address of the server hosting the Web Interface. - -![using_npr_866x634](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_866x634.webp) - -Users access the Enroll, Reset, Unlock, and Change features from the menu. These features are -explained on the following pages. - -:::warning -The connection between the Web Interface and Password Reset Server is always encrypted. -Install an SSL certificate on the web server and use HTTPS to encrypt connections from the browser -to the web server. See the -[Installing and Using an SSL Certificate](/docs/passwordpolicyenforcer/10.2/password_reset/administration/securing_password_reset.md#installing-and-using-an-ssl-certificate) -topic for more information. -::: - - -## Enroll - -Only enrolled users can reset their password and unlock their account. Users can enroll manually by -answering some questions about themselves, or they can be enrolled automatically if automatic -enrollment is enabled. Users only need to enroll once, but they can enroll again if they are locked -out of Password Reset, or if they want to change their questions or answers. See the -[Verification Codes](/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md#verification-codes) -and -[Verification Tab](/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md) -topics for more information. - -Follow the steps below to manually enroll into Password Reset. - -**Step 1 –** Click the **Enroll** item in the menu. - -![using_npr_0_765x963](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_0_765x963.webp) - -**Step 2 –** Type a **Username**, **Domain**, and **Password**. - -**Step 3 –** Type an e-mail address if the **E-mail** text box is visible. See the -[Options](/docs/passwordpolicyenforcer/10.2/password_reset/administration/enroll_tab.md#options) -topic for more information. - -**Step 4 –** Select a question from each of the **Question** drop-down lists, and type an answer to -each question in the **Answer** text boxes. - -**Step 5 –** Click **Next**, and then click **OK** to return to the menu. - -:::note -Windows increments the bad password count in Active Directory when a user tries to enroll -with an incorrect password. This may trigger a lockout if the Windows account lockout policy is -enabled. -::: - - -## Reset - -Users should use the Reset feature if they have forgotten their password. Resetting a password also -unlocks the account if it is locked. - -Follow the steps below to reset an account password. - -**Step 1 –** Click the **Reset** item in the menu. - -![using_npr_1_824x469](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_1_824x469.webp) - -**Step 2 –** Type a **Username** and **Domain**, and then click **Next**. - -![using_npr_2_809x640](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_2_809x640.webp) - -**Step 3 –** Type the **Answer** to the first question, and then click **Next**. Repeat until all -questions are answered correctly. - -![using_npr_3](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_3.webp) - -**Step 4 –** You may be asked to enter a verification code. The verification code is sent to your -phone by e-mail or SMS. Type the **Code**, and then click **Next**. - -![using_npr_5](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_5.webp) - -**Step 5 –** Type the new **Password** into both text boxes, and then click **Next**. - -![using_npr_6](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_6.webp) - -**Step 6 –** Click **OK** to return to the menu. - -## Unlock - -Users should use the Unlock feature if they know their password, but have entered it incorrectly too -many times and locked out their account. - -Follow the steps below to unlock an account. - -**Step 1 –** Click the **Unlock** item in the menu. - -![using_npr_7](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_7.webp) - -**Step 2 –** Type a **Username** and **Domain**, and then click **Next**. - -![using_npr_4_842x816](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_4_842x816.webp) - -**Step 3 –** Type the **Answer** to the first question, and then click **Next**. Repeat until all -questions are answered correctly. - -![using_npr_8](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_8.webp) - -**Step 4 –** You may be asked to enter a verification code. The verification code is sent to your -phone by e-mail or SMS. Type the **Code**, and then click **Next**. - -![using_npr_9_789x276](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_9_789x276.webp) - -**Step 5 –** Click **OK** to return to the menu. - -:::note -The Unlock feature unlocks accounts in Active Directory. Users who are locked out of -Password Reset should re-enroll to gain access to Password Reset. See the -[Verification Codes](/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md#verification-codes) -topic for more information. -::: - - -## Change - -Users should use the Change feature if they know their password and would like to change it. - -Follow the steps below to change an account password. - -**Step 1 –** Click the **Change** item in the menu. - -![using_npr_10_771x440](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_10_771x440.webp) - -**Step 2 –** Type a **Username** and **Domain**, and then click **Next**. - -![using_npr_11_773x593](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_11_773x593.webp) - -**Step 3 –** Type the **Old Password**, **New Password**, and **Confirm Password**, and then click -**Next**. - -**Step 4 –** Click **OK** to return to the menu. - -:::note -Windows increments the bad password count in Active Directory when a user tries to change -their password with an incorrect password. This may trigger a lockout if the Windows account lockout -policy is enabled. -::: - - -## Error Messages - -Validation errors are shown in a red box below the page instructions. Validation errors are normally -caused by invalid user input. They can often be overcome by changing the value of one or more input -fields and resubmitting the form. - -![using_npr_12](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_12.webp) - -Critical errors are shown on their own page. These errors are mostly a result of configuration or -system errors. An event may be written to the Windows Application event log on the Password Reset -Server computer when a critical error occurs. Users can sometimes overcome a critical error by -following the instructions in the error message, but most critical errors are beyond the user's -control. - -![using_npr_13](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_npr_13.webp) - -Validation and critical error messages are stored in the HTML templates. You can modify the default -messages by editing the templates. See the -[Resource Strings](/docs/passwordpolicyenforcer/10.2/password_reset/administration/editing_the_html_templates.md#resource-strings) -topic for more information. diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md deleted file mode 100644 index 1d355bd60d..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.md +++ /dev/null @@ -1,55 +0,0 @@ -# Using the Data Console - -The Data Console allows you to view and export data collected by Password Reset. Click **Start** > -**Netwrix Password Reset** > **NPR Data Console** to open the console. - -The Data Console has three tabs. The **Recent Activity** tab shows a chart of recent requests. The -chart is empty when Password Reset is first installed, but it will populate itself as the system is -used. - -![using_the_data_console](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console.webp) - -The bars in the chart show how many successful enrollments, resets, unlocks, and changes occurred -every day. You can click the bars to see a filtered view of the events for that day. For example, -you could click the blue bar on 2/19/2015 to see all the password resets for that day. - -![using_the_data_console_1_1393x772](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_1_1393x772.webp) - -The resulting view shows only the 15 successful password resets on 2/19/2015. These are shown in the -**Audit Log** tab. You can create your own filter to find events in this tab. See the -[Custom Filters](/docs/passwordpolicyenforcer/10.2/password_reset/administration/filtering_data.md#custom-filters) -topic for additional information. You can drag a column's header to rearrange the columns, or click -a column header to sort the records. - -The **Audit Log** tab has nine columns: - -- Type — Event type (Success or Failure) -- Date — Event date -- Time — Event time -- Source — Event source (Reset, Unlock, etc.) -- User — User's Active Directory user logon name -- Domain — User's Active Directory domain -- Event — A description of the event -- Source IP — The request's source IP address -- Source User — The request's source username (blank if anonymous access is enabled) - -The **Users** tab contains Information about each user. All users are shown by default, but you can -create filters to find specific users. - -![using_the_data_console_2_1317x725](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/using_the_data_console_2_1317x725.webp) - -The **Users** tab has seven columns: - -- User — User's Active Directory user logon name -- Domain — User's Active Directory domain -- E-mail — E-mail address entered during enrollment -- Last Enroll — Date and time of last successful enroll -- Last Reset — Date and time of last successful password reset -- Last Unlock — Date and time of last successful account unlock -- Last Change — Date and time of last successful password change - -:::note -The Data Console does not automatically display new information as it is added to the -database. Press F5 to refresh the view. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md deleted file mode 100644 index 9655d3036f..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/verification_tab.md +++ /dev/null @@ -1,116 +0,0 @@ -# Verification Tab - -Use the **Verification** tab to enable verification codes for resets and unlocks. Verification codes -are used for two-factor authentication, and to authenticate users that have not manually enrolled. A -verification code is sent to the user's mobile phone by e-mail and/or SMS, and the user enters the -verification code to continue. - -![configuring_npr_6](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_6.webp)7 - -#### Verification Codes - -Select the **Send verification codes for resets and unlocks** check box to enable verification -codes. - -Select the **Users can reset and unlock with only a verification code if they have not enrolled** -check box to enable automatic enrollment. Automatic enrollment allows users to reset their password -and unlock their account even if they have not previously enrolled. Password Reset enrolls the users -when they request a reset or unlock, and sends them a verification code for authentication. Users -that are automatically enrolled can also manually enroll with questions later. Users that are only -automatically enrolled cannot continue to reset their password and unlock their account if this -option is subsequently disabled. Automatic enrollment should only be used with secure devices -connected to a secure network, otherwise a stolen or lost device could be used to reset a user's -password. - -Automatically enrolled users: - -- Do not have an Password Reset e-mail address, so verification codes are only sent to the user's - Active Directory e-mail address and/or phone number. -- Must be authenticated with a verification code, so their reset or unlock request will be denied - even if the Users can reset and unlock without a verification code if a code cannot be sent check - box is selected. -- Need to manually enroll if the sending of verification codes, or automatic enrollments are - disabled after they are automatically enrolled. -- Can manually enroll at any time. Authenticating users with questions and verification codes is - more secure than using only verification codes. -- Are not sent the After Enroll e-mail alert. - -Select the **Users can reset and unlock without a verification code if a code cannot be sent** check -box if users should be allowed to continue when a verification code cannot be sent. Verification -codes can only be sent to users that have a mobile phone number or e-mail address in Active -Directory, or an e-mail address in Password Reset's database. Even if this information is present, -an error could stop the verification code from being sent. If this check box is not selected, then -users will need to contact the help desk if a verification code cannot be sent. - -Select the **Lockout users if they enter too many incorrect verification codes** check box if the -incorrect answer count should be incremented when users submit an incorrect verification code. A -user's Password Reset record can be locked out if they enter too many incorrect answers or -verification codes. The lockout threshold is set on the **Security** tab. - -Select the **Show incomplete e-mail addresses and phone numbers to users** check box if NPR should -hide parts of the e-mail address and phone number when requesting a verification code. This is -especially important if automatic enrollment is enabled, as it stops an attacker from discovering -information about the user. - -![configuring_npr_0](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_0.webp) - -Verification codes are of a specified length, and may contain both alpha and numeric characters. -Select the desired options from the **Create verification codes with...** drop-down lists. Longer, -more complex (alphanumeric) verification codes are harder to guess, but also harder to enter. -Verification codes do not need to be very long or complex if the verification code lockout and -expiry features are enabled. - -Select a value from the **Expire verification codes after...** drop-down list to limit how long -users have to enter their verification code. Set it to 0 minutes if the verification code should not -expire. A new verification code is sent for every reset and unlock. This setting limits how long a -user has to enter their verification code, it does not allow old verification codes to be reused. - -### E-mail - -Select the **Send verification codes by e-mail** check box to send verification codes to users via -e-mail. You must configure the E-mail delivery options in the **E-mail** tab to send verification -codes by e-mail. See the E-mail Tab configuration for additional information. - -Verification codes can be sent to the Active Directory e-mail address and/or the Password Reset -e-mail address. Select the desired option from the **Send to** drop-down list. - -Click **Edit...** to edit the e-mail template for verification codes. The [CODE] macro is replaced -with the verification code, so include the [CODE] macro in the e-mail subject or body. - -The user's Active Directory e-mail address is read from the **mail** attribute by default. Click -**AD Attribute** if you want to use an e-mail address from a different attribute. Type the name of -the attribute, and then click **OK**. - -#### SMS - -Select the **Send verification codes by SMS** check box to send verification codes to users via SMS. -Any SMS provider with a Windows command-line interface (CLI) can be used. - -Click **Browse...** to select the executable that sends the SMS. The executable is supplied by your -SMS provider. - -Type the command-line parameters in the Parameters text box. Refer to your SMS provider's -documentation for the expected parameters. You can also use the macros in the table below. Use -quotes around parameters and macros that may contain space characters. - -| Macro | Replaced with | -| ---------- | --------------------------------------- | -| [CODE] | Verification code | -| [PHONE] | User's Active Directory phone number | -| [USERNAME] | User's Active Directory user login name | -| [DOMAIN] | User's Active Directory domain name | -| [LANG] | Current Web Interface language code | - -The user's Active Directory mobile phone number is read from the mobile attribute by default. Click -**AD Attribute** if you want to use a phone number from a different attribute. Type the name of the -attribute, and then click **OK**. - -:::note -Use a script to perform additional processing before sending the SMS. For example, a -script could read the user's phone number from a database, or send a language-specific SMS based on -the value of the [LANG] macro. Put the path of the scripting engine executable in the **Command** -text box, and the path to the script file and other parameters in the **Parameters** text box. -::: - - -![configuring_npr_7](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/administration/configuring_npr_7.webp) diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md b/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md deleted file mode 100644 index 4d3b48990f..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/administration/working_with_the_database.md +++ /dev/null @@ -1,81 +0,0 @@ -# Working with the Database - -The NPR Server stores user and event information in a database. The default database is Microsoft -SQL Server Compact, an embedded version of SQL Server. The benefits of using SQL Server Compact -include: - -- No manual installation or configuration required. -- No maintenance apart from database. See the [Backing up the Database](#backing-up-the-database) - topic for additional information. -- Fast and lightweight. -- Free to use. - -Despite these benefits, there are some disadvantages to using an embedded database. The benefits of -using SQL Server include: - -- Remote access to the database from the Data Console and other applications. -- Improved availability if SQL Server is configured for high availability. -- Increased security. - -See solutions to these disadvantages in the -[Moving to SQL Server](/docs/passwordpolicyenforcer/10.2/password_reset/administration/moving_to_sql_server.md) -topic. - -## Backing up the Database - -The database should be backed up regularly. The instructions below are for a SQL Server Compact -database. If using SQL Server, then use your backup software to backup the database. - -Follow the steps below for the recommended backup procedure. - -**Step 1 –** Close the **Data Console** if it is open. - -**Step 2 –** Stop - -**Step 3 –** Copy the database files to a local or network disk. - -**Step 4 –** Start the **Netwrix Password Reset** service. - -**Step 5 –** Copy the database files to another device. - -The database files (apr.sdf and aprlog.sdf) are in the Password Reset Server's installation folder -by default, but the location is configurable. The following commands create copies of the files with -a .bak extension. Copy the .bak files to another device, and run the backup script daily. - -**net stop "Netwrix Password Reset"** - -copy /Y "c:\program files\netwrix password reset\apr.sdf" "c:\program files\netwrix password -reset\apr.bak" - -copy /Y "c:\program files\netwrix password reset\aprlog.sdf" "c:\program files\netwrix password -reset\aprlog.bak" - -**net start "Netwrix Password Reset"** - -:::note -Change the paths above if the database files are in a different folder. See the -[Database](/docs/passwordpolicyenforcer/10.2/password_reset/administration/general_tab.md#database) -topic for more information. -::: - - -**Restoring database from backup** - -Follow the steps below to restore the database files from a backup. - -**Step 1 –** Restore apr.bak and aprlog.bak from the backup device. - -**Step 2 –** Close the Data Console if it is open. - -**Step 3 –** Stop . - -**Step 4 –** Copy apr.bak over apr.sdf, and aprlog.bak over aprlog.sdf. - -**Step 5 –** Start . - -:::warning -apr.sdf contains hashes of the user answers. The hashes are salted and encrypted to -protect them from attack, but you should still ensure that this file and all backup copies are -stored securely. - -::: diff --git a/docs/passwordpolicyenforcer/10.2/password_reset/evaluation/evaluation_overview.md b/docs/passwordpolicyenforcer/10.2/password_reset/evaluation/evaluation_overview.md deleted file mode 100644 index 253f012fdd..0000000000 --- a/docs/passwordpolicyenforcer/10.2/password_reset/evaluation/evaluation_overview.md +++ /dev/null @@ -1,18 +0,0 @@ -# Evaluation - -Password Reset is a self-service password management system that helps organizations to reduce the -number of password related help desk calls. Password Reset allows users to securely change their -password and unlock their account, even if they have forgotten their password. - -This Evaluator's Guide shows you how to quickly install, configure, and test Password Reset. You -should read this guide if you are evaluating Password Reset, or if you are using Password Reset for -the first time. - -Please [contact Netwrix support](mailto:support@netwrix.com) if you have any questions, or if you -encounter any problems during your evaluation. - -![introduction_1_1](/img/product_docs/passwordpolicyenforcer/10.2/password_reset/evaluation/introduction_1_1.webp) - -The Password Reset Administrator's Guide contains additional installation and configuration -information. Refer to the Administrator's Guide for more detailed coverage of the topics discussed -in this guide. diff --git a/docs/passwordpolicyenforcer/10.2/web/license_agreement.md b/docs/passwordpolicyenforcer/10.2/web/license_agreement.md deleted file mode 100644 index 7a63a5b533..0000000000 --- a/docs/passwordpolicyenforcer/10.2/web/license_agreement.md +++ /dev/null @@ -1,144 +0,0 @@ -# License Agreement - -NETWRIX PTY LTD ("NETWRIX") IS WILLING TO LICENSE THIS SOFTWARE ONLY UPON THE CONDITION THAT YOU -ACCEPT ALL OF THE TERMS CONTAINED IN THIS SOFTWARE LICENSE AGREEMENT. PLEASE READ THE TERMS -CAREFULLY. IF YOU DO NOT AGREE WITH THESE TERMS, THEN NETWRIX IS UNWILLING TO LICENSE THE SOFTWARE -TO YOU. - -**NETWRIX SOFTWARE LICENSE AGREEMENT AND WARRANTY STATEMENT** - -(End-User Trial Use License With Option For Extended Use/Redistribution Prohibited) - -1. The Software. - - The Software licensed under this Agreement consists of computer programs, data compilation(s), - and documentation referred to as PPE/Web V7.x (the "Software"). - -2. Trial Use. - - You are authorized to use the Software for evaluation purposes during a trial use term of thirty - (30) days, unless prior to the expiration of the trial use term this license is terminated by - You for convenience or terminated by either party for material breach. You have the option to - register for full use of the Software at any time by paying the required license fee. - Registration will authorize You to use an unlocking key which will convert the Software to full - use, subject to the terms and conditions of this agreement. Your use of the Software under this - trial use license for any purpose after the expiration of the initial trial use term is not - authorized without the prior written consent of Netwrix. Upon expiration of the limited trial - use term, the Software may automatically disable itself. Immediately upon expiration of the - limited trial use term, You shall either register for full use of the Software, or destroy all - copies of the Software and documentation. - -3. Perpetual Term. - - If You purchase a perpetual license, then the term of the license granted herein shall be - perpetual unless terminated by You for convenience or terminated by either party for material - breach. - - Immediately upon termination of this license for any reason, You shall destroy all copies of the - Software and documentation. - -4. Subscription Term(s). - - If You purchase a subscription license, then the term of this license is on a subscription basis - with an initial term of one (1) year, and optional renewal terms of one (1) year each, unless - prior to renewal this license is terminated by You for convenience or terminated by either party - for material breach. Renewal procedures are available from Netwrix, and unless such procedures - are strictly satisfied, including the payment of any required license fee, Your use of the - Software for any purpose after the expiration of the subscription term is not authorized. Upon - expiration of the subscription term, the Software may automatically disable itself. Immediately - upon expiration or termination of this license for any reason, You shall destroy all copies of - the Software and documentation. - -5. License Grant. - - You are granted non-exclusive rights to install and use the Software on any computer and/or - transmit the Software over a computer network, provided that You acquire and dedicate a licensed - copy of the Software for each user who may access the Software. A license for the Software may - not be shared or used concurrently by different users. You may purchase additional licenses for - the Software from time to time. This Agreement shall take precedence over any purchase order for - additional licenses, and any conflicting, inconsistent, or additional terms in such purchase - orders shall be null and void. You may copy the Software for archival purposes, provided that - all copies must contain the original Software's proprietary notices in unaltered form. - -6. Restrictions. - - You may not: (i) permit others to use the Software, except as expressly provided above for - authorized network use; (ii) modify or translate the Software, except the HTML, CSS, and image - files; (iii) reverse engineer, decompile, or disassemble the Software, except to the extent this - restriction is expressly prohibited by applicable law; (iv) create derivative works based on the - Software; (v) merge the Software with another product; (vi) copy the Software, except as - expressly provided above; or (vii) modify, remove or obscure any copyright, trademark or other - proprietary rights notices or labels on the Software. - -7. Transfers. - - You may not transfer the Software or any rights under this Agreement without the prior written - consent of Netwrix, which consent shall not be unreasonably withheld. A condition to any - transfer or assignment shall be that the recipient agrees to the terms of this Agreement. Any - attempted transfer or assignment in violation of this provision shall be null and void. - -8. Ownership. - - Netwrix and its suppliers own the Software and all intellectual property rights embodied - therein, including copyrights and valuable trade secrets embodied in the Software's design and - coding methodology. The Software is protected by Australian copyright laws and international - treaty provisions. This Agreement provides You only a limited use license, and no ownership of - any intellectual property. - -LIMITED WARRANTY STATEMENT; LIMITATION OF LIABILITY. Netwrix warrants only to You that the Software -shall, in unmodified form, perform substantially in accordance with accompanying documentation under -normal use for a period of thirty (30) days from the purchase date. The entire and exclusive -liability and remedy for breach of this Limited Warranty shall be, at Netwrix option, either (i) -return of the amount received by Netwrix for the Software, or (ii) replacement of defective Software -and/or documentation. NETWRIX AND ITS SUPPLIERS AND RESELLERS SPECIFICALLY DISCLAIM THE IMPLIED -WARRANTIES OF TITLE, NON- INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, SYSTEM -INTEGRATION, AND DATA ACCURACY. THERE IS NO WARRANTY OR GUARANTEE THAT THE OPERATION OF THE SOFTWARE -WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT THE SOFTWARE WILL MEET ANY PARTICULAR CRITERIA OF -PERFORMANCE, QUALITY, ACCURACY, PURPOSE, OR NEED, EXCEPT AS EXPRESSLY PROVIDED IN THE LIMITED -WARRANTY. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS AGREEMENT. NO USE OF THE -SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. No action for the above Limited -Warranty may be commenced after one (1) year following the expiration date of the warranty. To the -extent that this Warranty Statement is inconsistent with the jurisdiction where You use the -Software, the Warranty Statement shall be deemed to be modified consistent with such local law. -Under such local law, certain limitations may not apply, and You may have additional rights which -vary from jurisdiction to jurisdiction. For example, some states in the United States and some -jurisdictions outside the United States may: (i) preclude the disclaimers and limitations of this -Warranty Statement from limiting the rights of a consumer; (ii) otherwise restrict the ability of a -manufacturer to make such disclaimers or to impose such limitations; or (iii) grant the consumer -additional legal rights, specify the duration of implied warranties which the manufacturer cannot -disclaim, or prohibit limitations on how long an implied warranty lasts. - -INDEPENDENT OF THE FORGOING PROVISIONS, IN NO EVENT AND UNDER NO LEGAL THEORY, INCLUDING WITHOUT -LIMITATION, TORT, CONTRACT, OR STRICT PRODUCTS LIABILITY, SHALL NETWRIX OR ANY OF ITS SUPPLIERS BE -LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF -ANY KIND, INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER -MALFUNCTION, OR ANY OTHER KIND OF COMMERCIAL DAMAGE, EVEN IF NETWRIX HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL -INJURY TO THE EXTENT PROHIBITED BY APPLICABLE LAW. - -IN NO EVENT SHALL NETWRIX'S LIABILITY FOR ACTUAL DAMAGES FOR ANY CAUSE WHATSOEVER, AND REGARDLESS OF -THE FORM OF ACTION, EXCEED THE AMOUNT OF THE PURCHASE PRICE PAID, IF ANY, FOR THE SOFTWARE LICENSE. - -EXPORT CONTROLS. You agree to comply with all local laws in Your jurisdiction which might impact -Your right to import, export or use the Software, and You represent that You have complied with any -regulations or registration procedures required by applicable law to make this license enforceable. - -MISCELLANEOUS. This Agreement constitutes the entire understanding of the parties with respect to -the subject matter of this Agreement and merges all prior communications, representations, and -agreements. This Agreement may be modified only by a written agreement signed by the parties. If any -provision of this Agreement is held to be unenforceable for any reason, such provision shall be -reformed only to the extent necessary to make it enforceable. This Agreement shall be construed -under the laws of the State of New South Wales, Australia, excluding rules regarding conflicts of -law. This Agreement will not be governed by the United Nations Convention on Contracts for the -International Sale of Goods, the application of which is expressly excluded. The parties have -requested that this Agreement and all documents contemplated hereby be drawn up in English. Les -parties aux presentes ont exige que cette entente et tous autres documents envisages par les -presentes soient rediges en anglais. - -U.S. GOVERNMENT END USERS: If the Software and documentation is acquired by or for the United States -Government then it is provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the United -States Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of The Rights -in Technical Data and Computer Software clause at DFARS 252.227-7013, or subparagraphs (c)(1) and -(2) of the Commercial Computer Software-Restricted Rights at 48 CFR 52.227-19 or clause -18-52.227-86(d) of the NASA supplement to the FAR, as applicable. Manufacturer is NETWRIX PTY LTD, 9 -Monteray Terrace, Glenmore Park, NSW 2745 Australia. diff --git a/static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_1.webp b/static/img/product_docs/passwordpolicyenforcer/10.2/administration/ppe1.webp similarity index 100% rename from static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_1.webp rename to static/img/product_docs/passwordpolicyenforcer/10.2/administration/ppe1.webp diff --git a/static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_3.webp b/static/img/product_docs/passwordpolicyenforcer/10.2/administration/ppe2.webp similarity index 100% rename from static/img/product_docs/passwordpolicyenforcer/10.2/administration/The Password Policy Client_3.webp rename to static/img/product_docs/passwordpolicyenforcer/10.2/administration/ppe2.webp From f478000f10ef6eb4e77e97ddb48b8529e6319aef Mon Sep 17 00:00:00 2001 From: Hassaan Khan Date: Fri, 18 Jul 2025 16:00:27 +0500 Subject: [PATCH 5/6] review completed --- .../10.2/administration/ppe_tool.md | 39 +++++++------- .../administration/rules/character_rules.md | 19 +++---- .../administration/rules/dictionary_rule.md | 53 +++++++++++++++++-- .../evaluation/testing_the_password_policy.md | 7 +-- .../10.2/web/editing_html_templates.md | 4 +- .../10.2/web/using_web.md | 2 +- 6 files changed, 83 insertions(+), 41 deletions(-) diff --git a/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md b/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md index 39f4f9e6bb..aa35a8a63f 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md +++ b/docs/passwordpolicyenforcer/10.2/administration/ppe_tool.md @@ -43,21 +43,23 @@ should not execute the /e (Export) and /i (Import) operations simultaneously; **Common PPE Tool Operations** -| Operation | Operation Name | Operation Description | -| --------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| /? | help | - Displays Help and exits the application. All other options are ignored. | -| /m | minimal | - Configures the PPE Tool to operate in Minimal mode. - This operation strips away all extraneous information (e.g., policy messages, license information, etc.) while importing or exporting to the PPE Tool. - By default, the PPE Tool imports and exports all information available (e.g., policy messages, license information, etc.). | -| /d | domain [in controller] | - Configures the PPE Tool to operate in Domain mode. - The default controller is localhost. - This operation will make PPE Tool work with the LDAP Password Policy Enforcer instance. PPE Tool imports or exports configurations from the local registry. - To use this operation , you must run PPE Tool as a domain administrator user. However, this operation can be used on both the domain controller and on any member. If an invalid domain controller is provided as an argument, then the PPE Tool will fail at the import / export stage. - This operation is ignored when used to create reports from the file source (present with the /c (Config [in file name]) option). When the PPE Tool starts in a domain environment without the /d (Domain [in controller]) operation, a warning message will appear. However, this will not prevent the PPE Tool from operating on a local environment. | -| /c | config [in file name] | - Uses a config file instead of Password Policy Enforcer export when exporting reports (in the case of /i (Import), /h (Human [out file name]), and /r (Report [out file name]). - The default file is `config.xml`. - This operation defines the input file for the i/ (Import) operation, and thus is necessary for importing files to the PPE Tool. An error message will appear if the /c (Config [in file name]) option is omitted. - By default, the /h (Human [out file name]) and /r (Report [out file name]) operations use the Password Policy Enforcer instance as the reporting source. The /c (Config [in file name]) operation should provide the source configuration file as an argument to create reports. If an invalid file name is provided as an argument in this operation, the PPE Tool will display the appropriate error message and will fail. | +| Operation | Operation Name | Operation Description | +| --------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| /? | help |
    • Displays Help and exits the application. All other options are ignored.
    | +| /m | minimal |
    • Configures the PPE Tool to operate in Minimal mode.
    • This operation strips away all extraneous information (e.g., policy messages, license information, etc.) while importing or exporting to the PPE Tool.
    • By default, the PPE Tool imports and exports all information available (e.g., policy messages, license information, etc.).
    | +| /d | domain [in controller] |
    • Configures the PPE Tool to operate in Domain mode.
    • The default controller is localhost.
    • This operation will make PPE Tool work with the LDAP Password Policy Enforcer instance. PPE Tool imports or exports configurations from the local registry.
    • To use this operation , you must run PPE Tool as a domain administrator user. However, this operation can be used on both the domain controller and on any member. If an invalid domain controller is provided as an argument, then the PPE Tool will fail at the import / export stage.
    • This operation is ignored when used to create reports from the file source (present with the /c (Config [in file name]) option). When the PPE Tool starts in a domain environment without the /d (Domain [in controller]) operation, a warning message will appear. However, this will not prevent the PPE Tool from operating on a local environment.
    | +| /c | config [in file name] |
    • Uses a config file instead of Password Policy Enforcer export when exporting reports (in the case of /i (Import), /h (Human [out file name]), and /r (Report [out file name]).
    • The default file is `config.xml`.
    • This operation defines the input file for the i/ (Import) operation, and thus is necessary for importing files to the PPE Tool. An error message will appear if the /c (Config [in file name]) option is omitted.
    • By default, the /h (Human [out file name]) and /r (Report [out file name]) operations use the Password Policy Enforcer instance as the reporting source. The /c (Config [in file name]) operation should provide the source configuration file as an argument to create reports. If an invalid file name is provided as an argument in this operation, the PPE Tool will display the appropriate error message and will fail.
    | + Operations PPE Tool options are as follows: -| Task | Task Name | Task Description | -| ---- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| /e | export [out file name] | - Exports config data (default) from the Password Policy Enforcer instance to the file. - This operations is enabled by default. - This operation can not be used with /c (Config [in file name]) or i/ (Import) operations, but can be combined with /h (Human [out file name]). | -| /i | import | - Imports the config file. - Imports existing configuration using the input configuration file defined by the /d (Domain [in controller]) . If the /c (Config [in file name]) operation is omitted, the PPE Tool will display an error message and exit the application. - When i/ (Import) is used with the /h (Human [out file name]) or /r (Report [out file name]) operations, the latter will be ignored. - /d (Domain [in controller]) and /m (Minimal) operations my affect the result of the import. | -| /h | human [out file name] | - Converts the config file to a human-readable format and produces a human-readable report based on the current Password Policy Enforcer instance configuration or the configuration provided by the /d (Domain [in controller]). - If no custom file name is provided, the default file name will be `config_human_readable.xml`. | -| /r | report [out file name] | - Converts the config file to HTML and produces an HTML report file based on the current Password Policy Enforcer instance configuration or the configuration provided by the /d (Domain [in controller]). - Generates the HTML report into `C:\Program Files (x86)\Password Policy Enforcer\Report` alongside the .css file. - The default files name is `report.html`. | +| Task | Task Name | Task Description | +| ---- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| /e | export [out file name] |
    • Exports config data (default) from the Password Policy Enforcer instance to the file.
    • This operations is enabled by default.
    • This operation can not be used with /c (Config [in file name]) or i/ (Import) operations, but can be combined with /h (Human [out file name]).
    | +| /i | import |
    • Imports the config file.
    • Imports existing configuration using the input configuration file defined by the /d (Domain [in controller]) . If the /c (Config [in file name]) operation is omitted, the PPE Tool will display an error message and exit the application.
    • When i/ (Import) is used with the /h (Human [out file name]) or /r (Report [out file name]) operations, the latter will be ignored.
    • /d (Domain [in controller]) and /m (Minimal) operations my affect the result of the import.
    | +| /h | human [out file name] |
    • Converts the config file to a human-readable format and produces a human-readable report based on the current Password Policy Enforcer instance configuration or the configuration provided by the /d (Domain [in controller]).
    • If no custom file name is provided, the default file name will be `config_human_readable.xml`.
    | +| /r | report [out file name] |
    • Converts the config file to HTML and produces an HTML report file based on the current Password Policy Enforcer instance configuration or the configuration provided by the /d (Domain [in controller]).
    • Generates the HTML report into `C:\Program Files (x86)\Password Policy Enforcer\Report` alongside the .css file.
    • The default files name is `report.html`.
    | + ### PPE Usage Samples @@ -72,12 +74,13 @@ C:\Windows/system32>cd.. Once this location has been accessed in the Command console, enter one of the following commands in the [operation] variable above to execute a PPE Tool operation in the Command console. -| Action | Operation | Message | -| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Simple Config export operation | - ppetool | Warning: PPETool started in domain environment without /d option. Using local source. Hope you know what are you doing. Config successfully exported. | -| Simple Config export in domain environment with DC %Full computer name of Domain Controller% | - ppetool /d localhost - ppetool /d %Full computer name of Domain Controller% | Config successfully exported. | -| Export local config into local.xml and create it from the HR.xml and report.html reports | - ppetool /e local.xml /h HR.xml /r Report.html | Warning: PPETool started in domain environment without /d option. Using local source. Hope you know what are you doing. Config successfully exported. Human readable config representation successfully exported. HTML config representation exported successfully. | -| Import Config from config.xml | - ppetool /c config.xml /i | Warning: PPETool started in domain environment without /d option. Using local source. Hope you know what are you doing. Config import successful. | +| Action | Operation | Message | +| -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Simple Config export operation |
    • ppetool
    | Warning: PPETool started in domain environment without /d option. Using local source. Hope you know what are you doing. Config successfully exported. | +| Simple Config export in domain environment with DC %Full computer name of Domain Controller% |
    • ppetool /d localhost
    • ppetool /d %Full computer name of Domain Controller%
    | Config successfully exported. | +| Export local config into local.xml and create it from the HR.xml and report.html reports |
    • ppetool /e local.xml /h HR.xml /r Report.html
    | Warning: PPETool started in domain environment without /d option. Using local source. Hope you know what are you doing. Config successfully exported. Human readable config representation successfully exported. HTML config representation exported successfully. | +| Import Config from config.xml |
    • ppetool /c config.xml /i
    | Warning: PPETool started in domain environment without /d option. Using local source. Hope you know what are you doing. Config import successful. | + ### Generating Reports with Custom Descriptions diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md b/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md index 65cde91513..80565f31ee 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md @@ -28,15 +28,16 @@ for all products) will always use the Password Policy Enforcer character set. This default character set contains the following: -| Rule | Default character set | -| ----------- | -------------------------------------------------- | -| Alpha Lower | Lowercase alphabetic (a - z) | -| Alpha Upper | Uppercase alphabetic (A - Z) | -| Alpha | Uppercase and lowercase alphabetic (a - z & A - Z) | -| Numeric | Numerals (0 - 9) | -| Special | All characters not included above | -| High | All characters above ANSI 126 | -| Custom | No default characters | +| Rule | Default character set | +| ----------- | ------------------------------------------------------------------------ | +| Alpha Lower | Lowercase alphabetic (a
    • z)
    | +| Alpha Upper | Uppercase alphabetic (A
    • Z)
    | +| Alpha | Uppercase and lowercase alphabetic (a
    • z & A
    • Z)
    | +| Numeric | Numerals (0
    • 9)
    | +| Special | All characters not included above | +| High | All characters above ANSI 126 | +| Custom | No default characters | + Select the **Enabled** check box to enable the Character rule. diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md b/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md index 36490fcca7..8aa04fdcf1 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/dictionary_rule.md @@ -35,10 +35,55 @@ templates in the dictionary file. Wildcard templates are specially formatted dic Password Policy Enforcer uses to reject a range of passwords. The Dictionary rule supports two wildcard template formats: -| Format | Example | Description | -| ------ | --------- | -------------------------------------------------------------------------------- | --- | --- | --- | --------- | --- | ------- | --- | --- | --- | --- | --- | --- | --------------------------------------------------------------------------------- | --- | ---------------------------------------------------------------------------------------- | --- | -| Prefix | | | | --- | | !!BAN\*!! | | !!2\*!! | | | | | --- | | Rejects passwords that start with BAN. For example: band, banish, ban, bank, etc. | | Rejects passwords that start with the numeric character 2. For example: 2ABC, 2123, etc. | | -| Suffix | !!\*ING!! | Rejects passwords that end with ING. For example: pushing, howling, trying, etc. | + + + + + + + + + + + + + + + + + + + + +
    FormatExampleDescription
    Prefix + + + + + + + + + +
    !!BAN*!!
    !!2*!!
    +
    + + + + + + + + + +
    Rejects passwords that start with BAN. For example: band, banish, ban, bank, etc.
    Rejects passwords that start with the numeric character 2. For example: 2ABC, 2123, etc.
    +
    + Suffix + + !!*ING!! + + Rejects passwords that end with ING. For example: pushing, howling, trying, etc. +
    Partial matching is performed even if Wildcard analysis is disabled. For example, the dictionary word "password" will reject the passwords "My**Password**$", "**Password**100", and diff --git a/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md b/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md index 595359af3b..8b5a61e932 100644 --- a/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md +++ b/docs/passwordpolicyenforcer/10.2/evaluation/testing_the_password_policy.md @@ -77,12 +77,7 @@ these messages are customizable. The Password Policy Client does not modify any Windows system files, and you do not have to install it to enforce a Password Policy Enforcer password policy. Web browser based versions of the Password -Policy Enforcer Client are also available. See the -[Administration](/docs/passwordpolicyenforcer/10.2/password_reset/administration/administration_overview.md) -and -[](http://www.anixis.com/products/ppeweb/)[Web](/docs/passwordpolicyenforcer/10.2/web/web_overview.md) -topics for more information. Password Reset and Password Policy Enforcer/Web are licensed -separately. +Policy Enforcer Client are also available. ## Active Directory Users / Computers Console and local Users and Groups Console diff --git a/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md b/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md index 9a52a3f0bc..5264963b81 100644 --- a/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md +++ b/docs/passwordpolicyenforcer/10.2/web/editing_html_templates.md @@ -68,9 +68,7 @@ Enforcer/Web deletes this range before sending the page to the user's web browse :::warning You may rebrand the Password Policy Enforcer/Web user interface, but it is a violation -of the License Agreement to modify, remove or obscure any copyright notice. See the -[License Agreement](/docs/passwordpolicyenforcer/10.2/web/license_agreement.md) -topic for additional information. +of the License Agreement to modify, remove or obscure any copyright notice. ::: diff --git a/docs/passwordpolicyenforcer/10.2/web/using_web.md b/docs/passwordpolicyenforcer/10.2/web/using_web.md index 0f728433d4..b380514675 100644 --- a/docs/passwordpolicyenforcer/10.2/web/using_web.md +++ b/docs/passwordpolicyenforcer/10.2/web/using_web.md @@ -25,7 +25,7 @@ You can also include the username and/or domain in the URL: :::info Install the SSL Certificate the web server and use the HTTPS protocol if Password Policy Enforcer/Web will be used on an unencrypted network. See the -[Installing and Using an SSL Certificate](/docs/passwordpolicyenforcer/10.2/web/securing_web.md#installing-and-using-an-sslcertificate) +[Installing and Using an SSL Certificate](/docs/passwordpolicyenforcer/10.2/web/securing_web.md) topic for additional information. ::: From be0bfc38d6154672c7dcb4979adf0ce83d3f263c Mon Sep 17 00:00:00 2001 From: Hassaan Khan Date: Fri, 18 Jul 2025 16:09:19 +0500 Subject: [PATCH 6/6] checked 2nd time. all done --- .../10.2/administration/rules/character_rules.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md b/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md index 80565f31ee..239c936cdd 100644 --- a/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md +++ b/docs/passwordpolicyenforcer/10.2/administration/rules/character_rules.md @@ -30,10 +30,10 @@ This default character set contains the following: | Rule | Default character set | | ----------- | ------------------------------------------------------------------------ | -| Alpha Lower | Lowercase alphabetic (a
    • z)
    | -| Alpha Upper | Uppercase alphabetic (A
    • Z)
    | -| Alpha | Uppercase and lowercase alphabetic (a
    • z & A
    • Z)
    | -| Numeric | Numerals (0
    • 9)
    | +| Alpha Lower | Lowercase alphabetic (a-z) | +| Alpha Upper | Uppercase alphabetic (A-Z) | +| Alpha | Uppercase and lowercase alphabetic (a-z & A-Z) | +| Numeric | Numerals (0-9) | | Special | All characters not included above | | High | All characters above ANSI 126 | | Custom | No default characters |