Windows policies

An Endpoint Privilege Management for Windows policy is built with the following optional components:

  • Workstyles: A Workstyle is part of a policy. It's used to assign Application Rules for users. You can create Workstyles using the WorkStyle Wizard or import them.
  • Application Groups: Application Groups are used by Workstyles to group applications together to apply certain Endpoint Privilege Management for Windows behavior.
  • Content Groups: Content groups are used by Workstyles to group content together to apply certain Endpoint Privilege Management for Windows behavior.
  • Messages: Messages are used by Workstyles to provide information to the end user when Endpoint Privilege Management for Windows has applied certain behavior that you've defined and need to notify the end user.
  • Custom Tokens: Custom tokens are used by Workstyles to assign custom privileges to content or Application Groups.

We have produced a pre-built QuickStart policy that is configured with Endpoint Privilege Management for Windows and Application Control.

Policy administration

You can import prebuilt Endpoint Privilege Management for Windows policies.

📘

For more information on template policies, see Import template.

Advanced agent settings

The Advanced Agent Settings section allows you to configure and deploy additional registry based settings to Endpoint Privilege Management for Windows.

Each advanced agent setting adheres to Group Policy precedence rules. If advanced agent settings are configured in multiple Group Policies, then the Group Policy with the highest precedence is applied (except for multi-string settings, which is merged and consolidated by Endpoint Privilege Management for Windows).

❗️

Only use Advanced Agent Settings when instructed to do so by BeyondTrust Technical Support.

  1. Right-click the top level Endpoint Privilege Management Settings node and click Advanced Agent Settings.
  2. Select either 32-bit Agent Values if you want to configure a 32-bit registry setting, or 64-bit Agent Values for a 64-bit registry setting.
  3. Click Add Value. A new line is added to the advanced agent settings list.
  4. Double-click the Value Name for the new setting, and enter the value name.
  5. Choose the correct Type, either DWORD, String, or Multi-String.
  6. Double-click the Value Data for the new setting, and enter the value data. For DWORD values, you can toggle the display type between Hexadecimal and Decimal.
  7. Click OK to save your changes.

Windows policy configuration precedence

Endpoint Privilege Management for Windows supports a variety of deployment methods, and accepts multiple simultaneous configurations from any combination of the following:

  • McAfee ePO Policy: A configuration that is stored in McAfee ePO, configured using the Endpoint Privilege Management ePO Extension in the ePO Policy Catalog.
  • Webservice Policy: A configuration that is served from an EPM webservice using HTTPS.
  • Webserver Policy: A configuration located on a web server, accessible using HTTP, HTTPS, or FTP.
  • Group Policy: Configurations that are stored in Group Policy Objects, configured using Active Directory Group Policy (GPMC) and GPEdit (Local Group Policy). Group Policy based configurations are evaluated according to GPO precedence rules.
  • Local Policy: A standalone configuration, which is stored locally and is configured using the Endpoint Privilege Management Policy Editor snap-in for the Microsoft Management Console.
  • BeyondInsight: A web-based console where you configure and launch vulnerability assessment scans. As a scan completes, a report is automatically generated. Results can be navigated interactively in the console.

Endpoint Privilege Management for Windows uses the following default precedence to evaluate each configuration for matching rules:

ePO > Webservice > BeyondInsight > Webserver > GPO > Local

Configuration precedence settings can be configured either as part of the client installation, or using the Windows Registry once the client is installed.

To modify the configuration precedence at client installation, use one of the following command lines to install Endpoint Privilege Management for Windows with a specific configuration precedence, XX represents 86 (32-bit) or 64 (64-bit):

msiexec /i PrivilegeManagementForWindows_xx (XX).msi POLICYPRECEDENCE="EPO,WEBSERVICE,WEBSERVER,GPO,LOCAL"
PrivilegeManagementForWindows_x(XX).exe /s /v" POLICYPRECEDENCE=\"EPO,WEBSERVICE,WEBSERVER,GPO,LOCAL\""

To modify your configuration precedence using the Windows Registry, run regedit.exe with elevated privileges and an anti-tamper token disabled.

ℹ️

Note

If agent protection is configured, you must first disable agent protection on the machine before you can change settings in the Registry Editor.

Navigate to the following key and edit the string as required:

HKEY_LOCAL_MACHINE\Software\Avecto\Privilege Guard Client

REG_SZ PolicyPrecedence = "EPO,WEBSERVICE,WEBSERVER,GPO,LOCAL"

Only deployment methods listed in the Endpoint Privilege Management for Windows engineering key PolicyEnabled are applied, irrespective of the order listed in the PolicyPrecedence key. Both keys are located in the same place in the Windows registry.

Workstyles

Endpoint Privilege Management for Windows Workstyles are used to assign Application Groups for a specific user, or group of users. The Workstyle wizard can generate Application Rules depending on the type of Workstyle you choose.

Workstyle properties

To edit the advanced properties for a Workstyle:

  1. Expand the Workstyles node and select the relevant Workstyle.
  2. Right-click and select Edit Workstyle Options.

Privilege monitoring

Endpoint Privilege Management for Windows can monitor the behavior of specific privileged applications and processes in Windows, a feature called privilege monitoring.

  • Privilege monitoring is enabled as an auditing option in the properties of an Application Rule or an On-Demand Application Rule.
  • When enabled, monitoring records all privileged operations by the application or process that would fail under a standard user account. These include file operations, registry operations, and any interactions with other components such as Windows services.
  • The application must be running under a privileged account, such as an administrator or power user. Alternatively, an application could be running with elevated privileges because you added it to the Application Rules or On-Demand Application Rules section of the Workstyle and assigned it to run with admin rights.
  • Privilege monitoring logs are recorded on each endpoint, and the logs can be accessed using the Endpoint Privilege Management Reporting MMC snap-in. The configuration of privilege monitoring logs is applied to each Workstyle.

📘

For more information about privilege monitoring contact your BeyondTrust consultant.

Privilege monitoring events

  • Log Monitoring Event to Application Event Log: Logs an event to the Application event log the first time an application performs a privileged operation.
  • Log Cancel Events (when user cancels message): Raises an event when a user cancels an End User Message, either by clicking the Cancel button, Email button, or clicking a Hyperlink. The action performed by the user is available as a Policy Parameter [PG_ACTION], which can be used by the script to perform different audit actions based on the user interaction. To log Cancel Events, enable Raise an Event for the rule that has been matched.

Privilege monitoring log files

The following Privilege Monitoring options are available:

  • Log Application Activity to Log Files: This option enables logging of privileged activity to log files. The activity level can be set with the activity slider.
  • Application Summary and Activity: This option logs information about the application and unique privileged activity (Default option).
  • Application Summary and Detailed Activity: This options logs information about the application and all privileged activity.
  • Maximum Activity Records Per Process: This option determines the maximum number of records that are recorded per process (Default 100).
  • Keep Application Activity Logs for: This option determines how long activity logs are kept before they are purged (Default 14 days).

Create workstyles

  1. Navigate to the Windows > Workstyles node.
  2. Right-click the Workstyles node, and then click Create Workstyle on the top-right. The Workstyle Wizard is displayed.
  3. You can optionally enter a license code at this stage or you can enter it later once the Workstyle has been created.
  4. You can choose from Controlling or Blank for your Workstyle. A controlling Workstyle allows you to apply rules for access to privileges and applications. A blank Workstyle allows you to create an empty Workstyle without any predefined elements. If you selected a blank Workstyle, the next screen is Finish, as there is nothing to configure.
  5. Filtering (Controlling Workstyle only). This determines who receives this Workstyle. You can choose from standard users only or everyone. If you apply it to everyone, it applies to administrators. You can modify the filters and apply more detailed filtering once the Workstyle is created.
  6. Capabilities (Controlling Workstyle only). Allows you to choose Privilege Management and/or Application Control. If you don't select either capabilities, the next screen is Finish. This Workstyle contains only filtering information.
  7. Privilege Management (Controlling Workstyle with the Endpoint Privilege Management capability). Allows you to choose:
    • Whether you want to display a notification to the user when applications are elevated by Endpoint Privilege Management for Windows
    • How you want to manage Windows User Account Control (UAC) prompts
    • Whether you want to allow the on-demand elevation of applications

ℹ️

Note

If you select Present users with a challenge code from the dropdown, you are prompted to configure the challenge and response functionality at the end of creating your Workstyle, if your policy doesn't already have one.

  1. Application Control (Controlling Workstyle with the Application Control capability). Allows you to choose:
  • How you want to apply application control. You can choose an allowlist or blocklist approach. We recommend you use an allowlist approach
  • As an allowlist: How you want to handle non-allowed applications
  • As a blocklist: How you want to handle blocked applications
  1. Finish. Allows you to enter a Name and Description for your new policy. If the Workstyle has been configured to use a Challenge/Response message and the policy doesn't have an existing key, you are asked to set a key. You can check the box on this screen to activate this Workstyle immediately or you can leave the box unchecked to continue to configure the Workstyle before you apply it to your endpoints.

Depending on the type of Workstyle you create and any capabilities that are included, Endpoint Privilege Management for Windows auto-generates certain Application Groups (containing rules), Content Groups, messages, and Custom Tokens. Filters are applied and subsequently configured as part of the Workstyle.

Disable/enable workstyles

You can enable or disable Workstyles to stop them being processed by Endpoint Privilege Management for Windows.

  1. Navigate to the policy and select the Workstyles node. You can see which policies are disabled and enabled in the list.
  2. Right-click on the Workstyle and click Disable Workstyle to disable it or Enable Workstyle to enable it.

In the above example, the General Rules Workstyle is enabled and the High Flexibility Workstyle is disabled.

Workstyle precedence

If you have multiple Workstyles, they are evaluated in the order in which they are listed. Workstyles that are higher in the list have a higher precedence. Once an application matches a Workstyle, no further Workstyles are processed for that application, so it is important that you order your Workstyles correctly, because it is possible for an application to match multiple Workstyles.

To change the precedence of a Workstyle:

  1. Select WindowsWorkstyles from the left pane.
  2. Right-click and choose from the options Move Top, Move Up, Move Down, and Move Bottom as required.

Changes are automatically saved.

Workstyle summary

The Workstyle Summary shows you your Workstyle settings at a glance, and allows you to configure the following elements of a Workstyle.

Some tabs may not display if they are not configured in the policy.

Overview

The Overview tab allows you to quickly access the following features of your policy:

  • General

    Allows you to edit the description of your Workstyle and enable or disable it.

  • Totals

    Allows you to configure the following types of rule:

    • Application Rules
    • On-Demand Application Rules
    • Content Rules
  • Trusted Application Protection

    Allows you to configure the following type of rule:

    • Trusted Application DLL Protection
  • General Rules

    Allows you to configure the following General Rules:

    • Collect User Information
    • Collect Host Information
    • Prohibit Privileged Account Management
    • Enable Windows Remote Management Connections
  • Filters

    Allows you to configure the following Filters:

    • Account Filters
    • Computer Filters
    • Time Range Filters
    • Expiry Filter
    • WMI (Windows Management information) Filters

Application rules

Application Rules are applied to Application Groups. Application Rules can be used to enforce allowlisting, monitoring, and assigning privileges to groups of applications. They are a set of rules that apply to the applications listed in the Application Group.

You must have an Application Group before you can create an Application Rule.

Application Rules are color coded in the interface:

  • Blue: A Power Rule is assigned to the Application Rule. This could be an allow or block action.
  • Green: The default action is allow.
  • Orange: The default action is block.

Insert an application rule

Click Application Rules to view, create, or modify the following for each Application Rule:

OptionDescription
Target Application GroupSelect from the Application Groups list.
Run a Rule ScriptThis option allows you to assign a Rule Script that runs before the Application Rule triggers.
You need to use Manage Scripts from the dropdown to import your Rule Script before you can select it.
Select the Rule Script you want to use from the dropdown list.
ActionSelect from Allow Execution or Block Execution. This is what happens if the application in the targeted Application Group is launched by the end user.
End User MessageSelect whether a message will be displayed to the user when they launch the application. We recommend using messages if you blocking the execution of the application, so the end user has some feedback on why the application doesn't launch.
Password Safe Account NameIf you deploying the BeyondInsight management console, you can integrate Password Safe with Endpoint Privilege Management for Windows. These features are detailed in the BeyondInsight Integration Guide.
Access TokenSelect the type of token to pass to the target Application Group. You can select from:
  • Passive (no change): No changes are made to the token. This is essentially an audit feature.
  • Enforce User's default rights: Removes all rights and uses the user's default token. Windows UAC always tries to add administration rights to the token being used so if the user clicks on an application that triggers UAC, the user cannot progress past the UAC prompt.
  • Drop Admin Rights: Removes administration rights from the user's token.
  • Add Full Admin (Required for installers): Use the full admin token in scenarios where your users require privileges SeDebugPrivilege or SeLoadDriverPrivilege. An example use case is MSI files running in a client/server mode where SeDebugPrivilege is required to interact with the server component which runs as SYSTEM. This only applies to cases where the standard user needs to run the MSI directly.
  • Add Basic Admin Rights: Permits elevation of most applications and tasks. We recommend using this token as the default elevation token. This access token is essentially full admin but excludes the following privileges: SeDebugPrivilege and SeLoadDriverPrivilege. If users need to debug applications or access drivers, then use the full admin token.
  • Privilege Management Support Token: Applies Add Full Admin privileges with tamper protection removed.
  • Keep Privileges - Enhanced:This token behaves similar to the Passive (no change) token in that there is no change to privilege, elevation, or integrity level. The token uses the same privileges of the original process token and adds some additional context to it: the token is added to the anti-tamper group and will be tracked by the advanced parent tracking feature. This access token can only be used with application rules.
Auditing
Raise an EventBy default, user and computer information is included in all audit events. Events are forwarded to a local event log file.
To not include user and computer information in the audit, set Raise an Event to On (Anonymous).
Event fields that contain user directory information may still contain a username within the file path.
Run an Audit ScriptThis option allows you to select an audit script to run after the Application Rule.
You need to use Manage Scripts from the dropdown to import your audit script before you can select it.
Select the audit script you want to use from the dropdown list.
Privilege MonitoringRaises a privileged monitoring event.
McAfee ePO Reporting OptionsThis option is only available if you checked the McAfee integration box when you installed the Endpoint Privilege Management Policy Editor.
ePO Threat EventsSelect this option to raise an ePO threat event. These are separate from Endpoint Privilege Management reporting events.
Endpoint Privilege Management Reporting (in ePO)Select this option to raise an Endpoint Privilege Management reporting event. These are available in BeyondTrust Reporting.
  
BeyondInsight Reporting 
BeyondInsight EventsWhen configured, sends BeyondInsight events to BeyondInsight.
Endpoint Privilege Management ReportingWhen configured, sends Endpoint Privilege Management reporting events to BeyondInsight.

Application rule precedence

If you add more than one Application Rule to a Workstyle, entries that are higher in the list have a higher precedence. Once an application matches an Application Rule, no further rules or Workstyles are processed. If an application can match more than one Workstyle or rule, then it is important that you order both your Workstyles and rules correctly. You can move Application Rules up and down to change the precedence.

Power Rules

A Power Rule is a PowerShell based framework that lets you change the outcome of an Application Rule, based on the outcome of a PowerShell script.

Instead of a fixed Default Rule that can either be set to Allow, Elevate, Audit, or Block for the applications in the targeted Application Group, a Power Rule lets you determine your own outcome based on any scenario you can build into a PowerShell script.

Any existing default rule within a Workstyle can be updated to a Power Rule by setting the action to a Power Rule script, and importing the PowerShell script you want to use. Endpoint Privilege Management for Windows provides a PowerShell module with an interface to collect information about the user, application, and policy. The module can then send a resulting action back to Endpoint Privilege Management for Windows to apply.

The Power Rules module also provides a variety of message options that allow you to collect additional information to support your PowerShell script logic and provide updates to the user as to the status, progress, or outcome of your rule. The messages that are supported include:

  • Authentication message
  • Business justification message
  • Information message
  • Pass code message
  • Vaulted credential message
  • Asynchronous progress dialog for long running tasks

Manage scripts

The Manage Scripts option is available from the Run a Rule Script dropdown or Run an Audit Script dropdown on the Edit Application Rule dialog box.

  • Rule Scripts: PowerShell scripts and optional associated settings files allow you to modify the outcome of an Endpoint Privilege Management for Windows rule, once a script has been run. These scripts can only be run in the user context.
  • Audit Scripts: VB, Javascript, or PowerShell scripts run after the Endpoint Privilege Management for Windows rule. These are for auditing purposes. These scripts can be run in the user or system context.

Both rules can be imported into Endpoint Privilege Management for Windows using this dialog box.

Rule scripts

The Rule Script node contains all the rule scripts in your policy. If a rule script is assigned to the Application Rule you are currently editing, the icon displays a green tick on it.

Previously imported rule scripts are listed on the Rule Script node on the left side of the Script Manager.

Rule scripts must be created outside the Policy Editor and imported. You cannot create a rule script using the Script Manager.

Import a rule script

There are two components to rule scripts:

  • Rule script
  • (Optional) Settings file: Each rule script can have an optional Settings file which must be in a valid *.json format. They are useful for managing credentials required for integrations and other sensitive information.

BeyondTrust-supported integrations are available from BeyondTrust.

ℹ️

Note

Do not edit BeyondTrust-supported integrations, as this may affect the level of support we are able to provide.

While you can edit a rule script in the Script Manager, we recommend you import the completed script into the Script Manager.

To import a rule script:

  1. Copy the PowerShell rule script (*.ps1) and associated settings (*.json) file somewhere locally so you can locate them from the Policy Editor.
  2. Click the Run a Rule Script dropdown and select Manage Scripts.
  3. Select the Rule Scripts node and click Import Script at the bottom of the dialog box.
  4. Navigate to your PowerShell (*.ps1) file and click Open.
  5. The script is loaded into the Script Manager.
  6. Edit the rule script at this point, if required.
  7. Optionally, change the Timeout settings. This is the time that Endpoint Privilege Management for Windows waits from the start of script execution for the script to complete before running the default rule.
  8. Click Close to save your changes.
Add a settings file

After you add a rule script (*.ps1), you can optionally add a Settings file (*.json) if one is required for the integration. The Settings file contains any information that is specific to your integration environment, such as URLs, usernames, and passwords. The Settings file is encrypted on the endpoint.

  1. Go to Settings > Import Settings.
  2. Navigate to and select your Settings file.
  3. Click Open. Before you proceed, review and edit the Settings file in this window. Click Save to associate this Settings file with your rule script.
  4. The name of the Settings file that is associated with your rule script is shown next to the Settings button. Click Settings to view the contents of your settings file at any time.

You can click Delete Settings at any time to clear the Settings window. Importing a new script overwrites the existing one.

After you associate a settings (*.json) file with a rule script (*.ps1), it is always associated with that rule script wherever you use it. For example, if you associate a settings file with a rule script for an Application Rule and select the same rule script in an On-Demand Application Rule, the same settings file is used. Changes to the settings or rule script file in either location are applied wherever it's used.

Export a rule script

If you need to share the rule script you can export it. You cannot export the settings file because it is linked to the rule script.

To export an existing rule script:

  1. From the Script Manager, click Export Script.
  2. Navigate to where you want to save the script to and click Save.
Delete a rule script

ℹ️

Note

A rule script assigned to an Application Rule or an On-Demand Application Rule cannot be deleted.

To delete a rule script:

  1. From the Script Manager, select the rule script and click Delete Script.
  2. If the script is not used by an Application Rule or an On-Demand Application Rule, you are prompted to confirm the deletion.

A rule script is only assigned to an Application Group after you click Close on the Script Manager dialog box and click OK on the Edit Application Rule dialog box. Clicking Close on only the Script Manager does not associate a rule script with that Application Group.

Audit scripts

The Audit Script node contains all the audit scripts in your policy. If an audit script is assigned to the Application Rule you are currently editing, the icon displays a green tick on it.

If you previously imported rule scripts, they are listed on the rule script node on the left side of the Script Manager.

Create an audit script

You can create audit scripts using the Policy Editor.

To create an audit script:

  1. Click New in the Audit Scripts node in the Script Manager.
  2. You can choose the following options and enter your script directly into the Policy Editor.
    • Script Language: Choose from VB Script, Javascript, or PowerShell Script. Switching between languages clears all code in the script editor window.
    • Script Context: An audit script can run in the User or System context.
    • Timeout: The time that Endpoint Privilege Management for Windows waits from the start of script execution for the script to complete before activating the default rule options.
  3. Click Close to save the changes.
Import an audit script

Audit scripts can be imported in the Policy Editor.

To import an audit script:

  1. Copy the audit script (*.vbs, *.js, or *.ps1) file somewhere locally so you can locate it from the Policy Editor.
  2. Click either the Run a Rule Script or Run an Audit Script dropdown and click Manage Scripts.
  3. Select the Audit Scripts node and click Import Script at the bottom of the dialog box.
  4. Navigate to the audit script file and click Open.
  5. The script is loaded into the Script Manager.
  6. Edit the audit script here, if required.
  7. Click Close to save your changes.
Export an audit script

You can export an existing audit script if you need to share it.

To export an existing audit script:

  1. From the Script Manager, click Export Script.
  2. Navigate to where you want to save the script and click Save. The audit script is exported.
Delete an audit script

You can delete an audit script, even if it is assigned to an existing Application Rule.

To delete an audit script:

  1. From the Script Manager, select the audit script and click Delete Script.

On-demand application rules

The On-Demand Application Rules tab of the Workstyle allows you create rules to launch applications with specific privileges (usually admin rights), on demand from a right-click Windows context menu.

Enable and configure on-demand integration

To enable On-Demand Application Rules, select the On-Demand Application Rules Workstyle tab. The first check box applies to all versions of Windows that have the Run as administrator option. The second two check boxes apply to the Classic Windows Shell only. They do not apply to the Windows Modern UI that is available in Windows 8 and Windows 10.

Windows Modern UI

If an On-Demand Application Rule is triggered, Endpoint Privilege Management for Windows references the check box labeled Apply the On-Demand Application Rules to the "Run as administrator". If the box is checked, Endpoint Privilege Management for Windows intercepts the Run as administrator option in the right-click context menu and overrides it. The labeling of the option doesn’t change in this instance. If the box is unchecked, Endpoint Privilege Management for Windows does not intercept the option to Run as Administrator.

Endpoint Privilege Management for Windows also references the check box labeled Hide "Run as" and "Run as administrator" commands in the Classic Shell context menu. If it is checked, these options, where present, are hidden from the right-click context menu. Endpoint Privilege Management for Windows does not continue process additional Application Rules.

Windows Classic Shell

If an On-Demand Application Rule is triggered, Endpoint Privilege Management for Windows references the check box in the Classic Shell Context Menu Options section labeled Apply custom on-demand option to the Classic Shell context menu (this won’t affect the "Run as administrator" option). If the box is checked, Endpoint Privilege Management for Windows adds a new option to the right-click context menu that you configured in the Classic Shell Context Menu Option section, for example, Run with Endpoint Privilege Management.

Endpoint Privilege Management for Windows also references the check box labeled Hide "Run as" and "Run as administrator" commands in the Classic Shell context menu. If it is selected, these options, where present, are hidden from the right-click context menu. Endpoint Privilege Management for Windows does not continue to process additional Application Rules.

ℹ️

Note

Unlike Application Rules, the On-Demand Rules list only receives the assigned privileges if the user launches a relevant application using the context menu.

Application Groups for On Demand Application Rules are added and managed in the same way as Application Groups for Application Rules. Right-click anywhere on the lower section of the page and select Insert Application Rule.

Manage languages

The menu option that is displayed can be configured for multiple languages. Endpoint Privilege Management for Windows detects the regional language of the end user, and if a message in that language is configured, the correct translation is displayed.

To add a new menu option translation:

  1. In the On-Demand Application rules, click the Add Language button.
  2. The Add Language dialog box appears. Select the correct language, and then click OK.
  3. A new text box for the selected language appears.
  4. Enter your own translation for the selected language and click Save in the left pane.

ℹ️

Note

If a language cannot be matched for the region of the end user, then the default language is displayed. To change the default language, select the language and click Set As Default.

Create an on-demand rule

On-Demand Application Rules are not checked by Endpoint Privilege Management for Windows unless you enabled them in the top section.

Right-click and select Insert Application Rule to view, create, or modify the following for each On-Demand Application Rule:

OptionDescription
Target Application GroupSelect from the Application Groups list.
Run a Rule ScriptThis option allows you to assign a rule script that is run before the Application Rule triggers.
You need to use Manage Scripts from the dropdown to import the rule script before you can select it.
Select the rule script you want to use from the dropdown list.
ActionSelect from Allow Execution or Block Execution. This is what happens if the application in the targeted Application Group is launched by the end user.
End User MessageSelect whether a message will be displayed to the user when they launch the application. We recommend using messages if you're blocking the execution of the application, so the end user has some feedback on why the application doesn't launch.
Access TokenSelect the type of token to be passed to be used for the target Application Group. You can select from:
  • Passive (no change): Doesn't make any change to the user's token. This is essentially an audit feature.
  • Enforce User's default rights: Removes all rights and uses the user's default token. Windows UAC always tries to add administration rights to the token being used so if the user clicks on a application that triggers UAC, the user cannot progress past the UAC prompt.
  • Drop Admin Rights: Removes administration rights from the user's token.
  • Add Full Admin (Required for installers): Use the full admin token in scenarios where your users require privileges SeDebugPrivilege or SeLoadDriverPrivilege. An example use case is MSI files running in a client/server mode where SeDebugPrivilege is required to interact with the server component which runs as SYSTEM. This only applies to cases where the standard user needs to run the MSI directly.
  • Add Basic Admin Rights: Permits elevation of most applications and tasks. We recommend using this token as the default elevation token. This access token is essentially full admin but excludes the following privileges: SeDebugPrivilege and SeLoadDriverPrivilege. If users need to debug applications or access drivers, then use the full admin token.
  • Privilege Management Support Token: Applies Add Full Admin privileges with tamper protection removed.
Auditing
Raise an EventWhether or not you want an event to be raised if this Application Rule is triggered. This forwards to the local event log file.
Run an Audit ScriptThis option allows you to select an audit script to run after the Application Rule.
You must use Manage Scripts from the dropdown to import your Audit Script before you can select it.
Select the audit script you want to use from the dropdown list.
Privilege MonitoringRaises a privileged monitoring event.
McAfee ePO Reporting OptionsThis option is only available if you checked the McAfee integration box when you installed the Endpoint Privilege Management Policy Editor.
ePO Queries and ReportsSelect this option to raise an ePO threat event. These are separate from Endpoint Privilege Management reporting events.
BeyondTrust Reporting (in ePO)Select this option to raise an Endpoint Privilege Management reporting event. These are available in BeyondTrust Reporting.

Content rules

Content rules define the actions Endpoint Privilege Management for Windows takes when content, such as a file, is launched by the user.

You need a Content Group before you can create a Content Rule.

📘

For more information, see Content groups.

Insert a content rule

Click Content Rules to view, create, or modify the following for each Application Rule:

OptionDescription
Target Content GroupSelect from the Content Groups list.
ActionSelect from Allow Modification or Block Access. This is what happens if the user tries to access the content.
End User MessageSelect if a message is displayed to the user when they try to access the content. We recommend using messages if you're blocking content from being accessed, so the end user has some feedback.
Access TokenSelect the type of token to pass to the target Application Group. You can select from:
  • Passive (no change): Doesn't make any change to the user's token. This is essentially an audit feature.
  • Enforce User's default rights: Removes all rights and uses the user's default token. Windows UAC always attempts to add administration rights to the token being used, so if the user clicks on an application that triggers UAC, the user cannot progress past the UAC prompt.
  • Drop Admin Rights: Removes administration rights from the user's token.
  • Add Admin Right: Adds administration rights to the user's token.
Auditing
Raise an EventWhether or not you want an event to be raised if this content rule is triggered. This forwards to the local event log file.
Run an Audit ScriptYou can choose to run an audit script if required.
McAfee ePO Reporting OptionsThis option is only available if you checked the McAfee integration box when you installed the Endpoint Privilege Management Policy Editor.
ePO Queries and ReportsSelect this option to raise an ePO threat event. These are separate from Endpoint Privilege Management reporting events.
BeyondTrust Endpoint Privilege Management Reporting (in ePO)Select this option to raise an Endpoint Privilege Management reporting event. These are available in BeyondTrust Endpoint Privilege Management Reporting.

Built-in groups

Endpoint Privilege Management for Windows includes a number of built-in groups that may be used in any Application Rule or content rule. They provide a simple and convenient way for the application of broad rules to applications and content, in particular when defining catch-all rules. Built-in groups also help to simplify your configurations by reducing the amount of groups.

GroupCriteriaValid Types
Any ApplicationMatches any application that executed. Will also match any child applications.
  • Executables
  • Control Panel Applets
  • Installer Packages
  • Endpoint Privilege Management Policy Editors
  • Windows Scripts
  • PowerShell Scripts
  • Batch Scripts
  • Registry Scripts
Any Signed ApplicationMatches any application that executed which has been signed by a publisher. Will also match any child applications of signed applications.
  • Executables
  • Control Panel Applets
  • Installer Packages
  • Endpoint Privilege Management Policy Editors
  • Windows Scripts
  • PowerShell Scripts
Any Signed UAC PromptMatches any application that triggers a Windows UAC Prompt, which has been signed by a publisher. Will also match any child applications.
  • Executables
  • Installer Packages
  • COM Classes
Any UAC PromptMatches any application that triggers a Windows UAC prompt. Will also match any child applications.
  • Executables
  • Installer Packages
  • COM Classes

Trusted application DLL protection

Endpoint Privilege Management for Windows can dynamically evaluate DLLs for trusted applications for each Workstyle. The first Workstyle to have DLL Control Enabled or Disabled causes any configuration of DLL Control in subsequent Workstyles to be ignored.

If the DLL has either a valid publisher or is owned by a Trusted Owner, then it is not blocked by the TAP control.

  • Trusted Publisher: A trusted publisher must be signed. In addition, the publisher certificate must be valid, in date, and not revoked.
  • Trusted Owner: A trusted owner is any owner that is in the default Windows groups Administrators, SystemUser, or TrustedInstaller.

TAP DLL control affects the following applications:

  • Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft Publisher, Adobe Reader 11 and earlier, Adobe Reader DC, Microsoft Outlook, Google Chrome, Mozilla Firefox, Microsoft Internet Explorer, Microsoft Edge

You can turn on the monitoring of DLLs for TAP applications in any Workstyle. However, the first Workstyle to have DLL Control Enabled or Disabled causes any configuration of DLL Control in subsequent Workstyles to be ignored.

Configure trusted application DLL protection

Click Trusted Application DLL Protection enabled, click to Configure to administer how DLLs are handled for TAP applications.

OptionDescription
Trusted Application Protection (DLL)Select Enabled, Disabled, or Not Configured from the dropdown list. The first Workstyle to be evaluated that has DLL Control Enabled or Disabled is matched by Endpoint Privilege Management for Windows, meaning subsequent Workstyles are not evaluated by Endpoint Privilege Management for Windows.
ActionSelect from Passive (No Change) or Block Execution. This is what happens if the DLL in the TAP application tries to run.
End User MessageSelect if a message will be displayed to the user when the DLL tries to run (regardless of it's allowed to run). We recommend using messages if you're blocking a DLL from running, so the end user has some feedback.
Auditing
Raise an EventWhether or not you want an event to be raised if the TAP application tries to run a DLL. This forwards to the local event log file.
McAfee ePO Reporting Options
ePO Threat EventsSelect this option to raise an ePO threat event. These are separate from Endpoint Privilege Management reporting events.
Endpoint Privilege Management Reporting EventsSelect this option to raise an Endpoint Privilege Management reporting event. These are available in BeyondTrust Endpoint Privilege Management Reporting.
Exclusions
Exclude DLLs from RuleEnter DLLs here that you want to exclude from DLL Control for TAP Applications. These are DLLs that have either an untrusted owner or an untrusted publisher, but you still want to be allowed to run with DLL Control for TAP enabled in the Workstyle. This list of DLLs is not validated. If the DLL name listed isn't matched by the client, then nothing is excluded.

ℹ️

Note

Third party applications may give error messages that aren't immediately clear to the end user when a DLL is blocked from running in a TAP application by Endpoint Privilege Management for Windows.

General rules

To view or edit the General Rules of a Workstyle, select Windows > Workstyles > 'Workstyle Name' > General Rules from the policy tree.

Collect user information

This rule, when enabled, raises an audit event each time a user logs onto the client machine. The audit event collects the following information, which is reported through the Reporting pack:

  • Logon Time: The date and time the user logged on.
  • Is Administrator: The client checks whether the user account has been granted local administrator rights either directly or through group membership.
  • Session Type: The type of logon session, for example, console, RDP, or ICA.
  • Session Locale: The regional settings of the user session/profile.
  • Logon Client Session Hostname: The hostname of the client the user is logging on from. This is either the local computer (for Console sessions) or the remote device name (for remote sessions).
  • Logon Client Session IP Address: The IP address of the client the user is logging on from. This is either the local computer (for console sessions) or the remote device name (for remote sessions).

This rule, when enabled, raises an audit event on computer start-up or when the Endpoint Privilege Management for Windows service is started. The audit event collects the following information, which is reported through the Reporting pack:

  • Instance ID: A unique reference identifying a specific service start event.
  • OS Version: The name and version of the operating system, including service pack.
  • Chassis Type: The type of chassis of the client, for example, workstation, mobile, server, or VM.
  • Language: The default system language.
  • Location: The current region and time zone of the device.
  • Client Version: The version of the Endpoint Privilege Management for Windows.
  • Client Settings: The type of installation and current settings of the Endpoint Privilege Management for Windows.
  • System Uptime: Time since the computer booted.
  • Unexpected Service Start: Only added if the service has unexpectedly started (that is, a previous start was not proceeded by a service stop).

An additional event is raised if the computer shuts down, or if the Endpoint Privilege Management for Windows service is stopped:

  • Instance ID: A unique reference identifying the last service start event.
  • Computer Shutdown: Value identifying whether the service stopped as part of a computer shutdown event.

This option is only available in policies set under the Computer Configuration Group policy.

Prohibit Privileged Account Management

This rule, when enabled, blocks users from modifying local privileged group memberships. This prevents real administrators, or applications which have been granted administrative rights through Endpoint Privilege Management for Windows, from adding and/or removing and/or modifying a privileged account.

The list of local privileged groups that are prohibited from modification when this rule is enabled is:

  • Built-in administrators
  • Power users
  • Account operators
  • Server operators
  • Printer operators
  • Backup operators
  • RAS servers group
  • Network configuration operators

This rule provides three options:

  • Not Configured: This Workstyle is ignored.
  • Enabled: The user cannot add, remove, or modify user accounts in local privileged groups.
  • Disabled: Default behavior based on the users rights or those of the application.
Enable Windows Remote Management connections

This rule, when enabled, authorizes standard users who match the Workstyle to connect to a computer remotely using WinRM, which would normally require local administrator rights. This general rule supports remote PowerShell command management, and must be enabled in order to allow a standard user to execute PowerShell scripts and/or commands.

To allow remote network connections, you may be required to enable the Windows Group Policy setting access this computer from the network.

Filters

Use a filter to refine the scope of when a Workstyle is applied. By default, a Workstyle applies to all users and computers who receive it.

  • ALL filters must match: Select to apply only if all filters match.
  • ANY filter can match: Select to apply when any filter matches.
  • Apply this filter if it does NOT match: Filters can be configured to apply if there are no matches. This is referred to as an exclude filter. This does not apply to Time and Expiry filters.

To view or edit the general properties of a Workstyle, select Windows > Workstyles > 'Workstyle Name' > Filters from the policy tree.

ℹ️

Note

Time filters and Expiry filters can only be used once in a Workstyle.

Filters

Account filters

Account filters specify the users and groups the Workstyle are applied to.

When a new Workstyle is created, a default account filter is added to target either Standard users only, or Everyone (including administrators), depending on your selection in the Workstyle wizard.

Configure account filters

  1. On the Filter tab, click Add a filter.
  2. Click Add an Account Filter > Add a new account.
  3. Select the following to add groups:
    • From Local or Domain AD: Add an account or group name on the AD object dialog box. Enter the name and click Check Names to validate.
    • From Microsoft Entra ID: Add a group name on the Select Groups from Microsoft Entra ID dialog box. Enter the name and click Check Names to validate.
  4. The group name is underlined when the name matches on an Active Directory or Microsoft Entra ID group name. Otherwise, an error message is displayed.

ℹ️

Note

When no filters exist on a Workstyle, it applies to all. Microsoft Entra ID group filters depend on Endpoint Privilege Management for Windows agent version 21.1 or later. Earlier Endpoint Privilege Management for Windows agent versions ignore Microsoft Entra ID filters.

Domain and well known accounts display a Security Identifier (SID). The SID is used by Endpoint Privilege Management for Windows, which avoids account lookup operations. For local accounts, the name is used by Endpoint Privilege Management for Windows, and the SID is looked up when the Workstyle is loaded by the client. Local Account appears in the SID column of the accounts list for local accounts.

By default, an account filter applies if any of the user or group accounts in the list match the user. If you have specified multiple user and group accounts within one account filter, and want to apply the Workstyle only if all entries in the account filter match, then check the option All items below should match.

You can add more than one account filter if you want the user to be a member of more than one group of accounts for the Workstyle to be applied.

If an account filter is added, but no user or group accounts are specified, a warning is displayed advising No accounts added, and the account filter is ignored.

ℹ️

Note

If All items below should match is enabled, and you have more than one user account listed, the Workstyle never applies, as the user cannot match two different user accounts.

Computer filters

A computer filter can be used to target specific computers and remote desktop clients. You can specify a computer using either its host/DNS name, or by an IP address.

  • If the computer filter is intended to match the IP address of remote computers using remote desktop sessions, check the option Match the remote desktop (instead of the local computer).
  • Use the asterisk wildcard (*) in any octet to include all addresses in that octet range, for example, 192.168.*.*. Alternatively, you can specify a particular range for any octet, for example, 192.168.0.0-254. Wildcards and ranges can be used in the same IP address, but not in the same octet.

To restrict the Workstyle to specific computers by IP address:

  1. Select the Filters tab, and then click Add a new filter.
  2. Click Add a Computer Filter > Add a new IP rule. The Add IP rule dialog box appears.
  3. Enter the IP address manually, in the format 123.123.123.123.
  4. Click Add.

To restrict the Workstyle to specific computers by hostname:

  1. Select the Filters tab, and then click Add a Filter.
  2. Click Add a Computer Filter > Add a new hostname rule. The Add hostname rule dialog box appears.
  3. Enter one or more hostnames, separated by semicolons, or alternatively browse for one or more computers. You can use the * and ? wildcard characters in hostnames.
  4. Click Add.
  5. If the computer filter is intended to match the hostname of remote computers using remote desktop sessions, check the option Match the remote desktop (instead of the local computer).

ℹ️

Note

By default, a computer filter is applied if any of the computers or IP Addresses in the list match the computer or client. If you specified multiple entries, and want to apply the Workstyle only if all entries in the computer filter match, then check the option All items below should match.

If a computer filter is added, but no host names or IP addresses are specified, a warning is displayed advising No rules added, and the computer filter is ignored.

Time range filters

A time range filter can specify the hours of a day and days of week for a Workstyle to be applied.

To restrict a Workstyle to a specific date/time period of activity:

  1. Select the Filters tab, and click Add a new filter.
  2. Click on Add a Time Filter > Edit time restrictions. The Time Restrictions dialog box appears.
  3. Select Active and Inactive times in the time grid by either selecting individual elements or dragging over areas with the left mouse button held down.
  4. Click OK.

ℹ️

Note

Only one time filter can be added to a Workstyle.

The time filter is applied based on the user’s timezone by default. Uncheck the Use timezone of user for time restrictions (otherwise use UTC) box to use UTC for the timezone.

Expiry filter

An expiry filter specifies an expiry date and time for a Workstyle.

To restrict a Workstyle to an expiry date and time:

  1. Select the Filters tab, and click Add a new filter.
  2. Click Add an Expiry Filter.
  3. Set the date and time that you want the Workstyle to expire.

ℹ️

Note

Only one expiry filter can be added to a Workstyle.

The expiry time is applied based on the user’s timezone by default. Uncheck the Use timezone of user for Workstyle expiry (otherwise use UTC) box to use UTC for the timezone.

WMI filter

A WMI filter specifies if a Workstyle should be applied, based on the outcome of a WMI query.

The filter allows you to specify the following:

  • Description: Free text to describe the WMI query.
  • Namespace: Set the namespace that the query executes against. By default, this is root\CIMV2.
  • Query: The WMI Query Language (WQL) statement to execute.
  • Timeout: The time (in seconds) the client waits for a response before terminating the query. By default, no timeout is specified.

ℹ️

Note

Long running WMI queries result in delayed application launches. Therefore, we recommend a timeout be specified to ensure that queries are terminated in a timely manner.

When you execute a WMI query, the client checks if any rows of data are returned. If any data is returned, then the WMI query is successful. If no data is returned or an error is detected in the execution, the WMI query is unsuccessful.

It is possible for a WMI query to return many rows of data, in which case you can create more complex WQL statements using WHERE clauses. The more clauses you add to your statement, the fewer rows are likely to return, and the more specific your WMI query will be.

The WMI filter includes several default templates for common WMI queries. To add a new WMI query from a template, click Add a WMI template and use the instant search box to quickly find a template.

WQL statements can include parameterized values, which allow you to execute queries including select user, computer, and Endpoint Privilege Management for Windows properties.

ℹ️

Note

WMI queries are always run as SYSTEM, and cannot be executed against remote computers or network resources. WMI filters do not support impersonation levels, and can only be used with SELECT queries.

By default, a WMI filter applies if any of the WMI queries in the list return true. If you specified multiple WMI queries, and want to apply the Workstyle only if ALL queries return true, then check the option All items below should match.

If a WMI filter is added, but no WMI queries are specified, a warning is displayed advising No queries added and the WMI filter is ignored.

ℹ️

Note

For more information on how to use parameters, see Windows QuickStart policy summary.

Custom tokens

Access tokens (and Custom Tokens) are assigned to an application, or when content is being edited, to modify the privileges of that activity. Within an access token is a collection of settings that specify the group memberships, associated privileges, integrity level, and process access rights.

Endpoint Privilege Management for Windows includes a set of built-in access tokens that can be used to add administrator rights, remove administrator rights, or enforce the users default privileges. A passive access token is also available that does not change the privileges of the activity, but still applies anti-tamper protection.

Access tokens are assigned to applications or content through rules within a Workstyle. For more advanced configurations, Custom Tokens can be created where group memberships, privileges, permissions, and integrity can be manually specified. You can optionally define any number of Custom Tokens.

Create custom tokens

To create a new Custom Token:

  1. Navigate to Endpoint Privilege Management Settings > Windows > Custom Tokens.
  2. Right-click and select New Custom Token. Select from the following options:
    • Create a token which adds Administrator rights
    • Create a token which removes Administration rights
    • Create a blank token
  3. For the first two options, the Windows privileges that are assigned to that token are preselected for you, although you can change them if required. You can enter text in the Filter box to filter the list in real time.
  4. Click Finish when you have assigned the required privileges to the token.

The new Custom Token is displayed beneath the Custom Tokens node. Click the new token to display the Token Summary.

You may now define the Groups, Privileges, Integrity Level, and Process Access Rights for the Custom Token.

Edit custom tokens

Groups

The Groups section of the Custom Token specifies the groups that will be added or removed from the token.

To insert a group:

  1. Select Groups from the top tab. The token groups appear in the right pane.
  2. Right-click and select Add a new account.
  3. Enter the object names and click Check Names to validate it.
  4. By default, when you insert a group, the Add Account box is checked, and the group is added to the Custom Token. If you want to remove the group from the Custom Token, check the Remove box instead.

Domain and well-known groups display a Security Identifier (SID). The SID is used by Endpoint Privilege Management for Windows, which avoids account lookup operations. For local groups, the name is used by Endpoint Privilege Management for Windows, and the SID is looked up when the Custom Token is created by the client. Local Account appears in the SID column of the groups list for local groups.

Setting the token owner

By default, the owner of a Custom Token that includes the administrators group has the owner set to the administrators group. If the administrators group is not present in the Custom Token, then the user is set as the owner.

If you want the user to be the owner, regardless of the presence of the administrators group, check the Ensure the User is always the Token Owner box.

Anti-tamper protection

By default, Endpoint Privilege Management for Windows prevents elevated processes from tampering with the files, registry, and service that make up the client installation. It also prevents any elevated process from reading or writing to the local Endpoint Privilege Management for Windows policy cache.

⚠️

Important

Domain Controllers don't have the Local Users and Groups databases once they're promoted to a Domain Controller. Therefore, Endpoint Privilege Management for Windows cannot offer the Anti-Tamper feature for Domain Controllers.

To disable anti-tamper protection, uncheck the Enable anti-tamper protection box.

ℹ️

Note

Under normal circumstances, this option should remain enabled, except in scenarios where elevated tasks require access to protected areas. For instance, if you are using an elevated logon script to update the local Endpoint Privilege Management for Windows policy.

Privileges

The Privileges section of the Custom Token specifies the privileges that are added to or removed from the Custom Token.

If you want to add a privilege to the Custom Token, then check the Add box for the relevant privilege. If you want to remove a privilege from the Custom Token, check the Remove box for the relevant privilege.

You can also select multiple privileges and use the following options on the right-click menu:

  • Reset Privilege
  • Add Privilege
  • Remove Privilege
  • Add Admin Privileges
  • Remove Admin Privileges

To clear all of the privileges in the Custom Token before applying privileges, check the Remove all existing privileges in access token before applying privileges box. If this box is left unchecked, the privileges are added or removed from the user’s default Custom Token.

Integrity level

The Integrity Level section of the Custom Token specifies the integrity level for the Custom Token.

To set the integrity level:

  1. Select the Integrity Level node in the left pane. The integrity levels appear in the right pane as radio buttons. 
  2. Set the appropriate integrity level.

The integrity level should be set as follows:

Integrity LevelDescription
System Included for completion and should not be required
HighSet the integrity level associated with an administrator
MediumSet the integrity level associated with a standard user
LowSet the integrity level associated with protected mode (an application may fail to run or function in protected mode)
UntrustedIncluded for completion and should not be required
Process access rights

The Process Access Rights section of a Custom Token allows you to specify which rights other processes has over a process launched with that Custom Token.

Tokens that include the administrators group have a secure set of access rights applied by default, which prevents code injection attacks on elevated processes initiated by processes running with standard user rights in the same session.

Check or uncheck the Access Right Name box to enable or disable a specific access right.

You can also select multiple privileges and use the following options on the right-click menu:

  • Reset all to default
  • Add Right
  • Remove Right

The access rights should be set as follows:

Access RightsDescription
GENERIC_HEADRead access.
PROCESS_CREATE_PROCESSRequired to create a process.
PROCESS_CREATE_THREADRequired to create a thread.
PROCESS_DUP_HANDLERequired to duplicate a handle using DuplicateHandle.
PROCESS_QUERY_INFORMATIONRequired to retrieve certain information about a process, such as its token, exit code, and priority class.
PROCESS_QUERY_LIMITED_INFORMATIONRequired to retrieve certain information about a process.
PROCESS_SET_INFORMATIONRequired to set certain information about a process, such as its priority class.
PROCESS_SET_QUOTARequired to set memory limits using SetProcessWorkingSetSize.
PROCESS_SUSPEND_RESUMERequired to suspend or resume a process.
PROCESS_TERMINATERequired to terminate a process using TerminateProcess.
PROCESS_VM_OPERATIONRequired to perform an operation on the address space of a process.
PROCESS_VM_READRequired to read memory in a process using ReadProcessMemory.
PROCESS_VM_WRITERequired to write to memory in a process using WriteProcessMemory.
READ_CONTROLRequired to read information in the security descriptor for the object, not including the information in the SACL.
SYNCHRONIZERequired to wait for the process to terminate using the wait functions.

Application Groups

Application Groups are used to define logical groupings of applications.

Application Groups are assigned to Workstyles, so you must define Application Groups for all of the applications you want to assign to a Workstyle.

Create Application Groups

To create an Application Group:

  1. Navigate to Endpoint Privilege Management Settings > Windows > Application Groups.
  2. Right-click Application Groups and click New Application Group. This creates an Application Group with the default name Application Group x, where x increments numerically.
  3. Right-click the new Application Group and click Rename. Enter the new name you want and press Return to save the new Application Group.

View or edit the properties of an Application Group

Each Application Group has a name, an optional description, and can be hidden from the policy navigation tree. You can edit these in the properties for the Application Group.

To view the properties of an Application Group:

  1. Navigate to Endpoint Privilege Management Settings > Windows > Application Groups.
  2. Right-click the Application Group and select Properties to view its properties. Enter or change the description and click OK to save the new properties.

You can also choose to hide the Application Group in this menu by checking the Hidden box.

📘

For more information, see Show hidden groups.

Delete an Application Group

Application Groups are usually mapped to one or more Application Rule in a Workstyle. If you attempt to delete an Application Rule that is mapped to an Application Group, you are notified of this before you continue. If you continue to delete the Application Group, the associated Application Rule in the Workstyle is also deleted.

To delete an Application Group:

  1. Navigate to Endpoint Privilege Management Settings > Windows > Application Groups.
  2. Right-click the Application Group you want to delete and click Delete.
  3. If there aren't any Application Rules in the Workstyle using that Application Group, then it is deleted. If there are Application Rules in the Workstyle that reference that Application Group, then you are prompted to check the reference before you continue. If you click Resolve All, then both the Application Group and the Application Rule that references it are deleted from your policy. If you don't want to do this, click Cancel.

Duplicate an Application Group

You can duplicate an Application Group if you need a new Application Group that contains the same applications as an existing Application Group. You can edit a duplicated Application Group independently of the Application Group it was duplicated from.

To duplicate an Application Group:

  1. Navigate to Endpoint Privilege Management Settings > Windows > Application Groups.
  2. Right-click the Application Group you want to duplicate and click Copy.
  3. Select the Application Groups node, right-click, and select Paste. This makes a new copy of the Application Group and all the Application Rules the original Application Group contains.

A new duplicate Application Group with an incremental number in brackets appended to the name is created that you can add applications to.

Rule precedence

If you add more than one Application Rule or Content Rule to a Workstyle, then entries that are higher in the list have a higher precedence. Once a target matches a rule, no further rules or Workstyles are processed for that target. If a target is able to match more than one Workstyle or rule, then it is important that you order both your Workstyles and rules correctly.

To change the precedence of a rule in a Workstyle:

  1. Expand the relevant Workstyle, and then select the rule type tab: Application, On-Demand, or Content.
  2. Right-click the rule and use the following options to change the rule precedence: Move Top, Move Up, Move Down, and Move Bottom.

Insert an application

ActiveX controls

Unlike other application types, Endpoint Privilege Management for Windows only manages the privileges for the installation of ActiveX controls. ActiveX controls usually require administrative rights to install, but once installed, they run with the standard privileges of the web browser.

  1. Select the Application Group you want to add the ActiveX control to.
  2. Right-click and select Insert Application > ActiveX Control.
  3. Enter the Codebase (URL) if required. This is a full or partial URL that specifies the location of the ActiveX control.
  4. Enter a description if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the executable and then click Next. You can configure:
    • ActiveX Codebase matches
    • CLSID matches
    • ActiveX Version matches
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK. The ActiveX Control is added to the Application Group.

ℹ️

Note

For more information, see Advanced options.

Batch files
  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Batch File .
  3. You can leave the File or Folder Name blank to match on all applications of this type, type in a specific name or path manually, or click Browse File , Browse Folder, or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the executable. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC)
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open and Save common dialogs
  7. Click OK. The Active X Control is added to the Application Group.
COM classes

COM elevations are a form of elevation which are typically initiated from Explorer, when an integrated task requires administrator rights. Explorer uses COM to launch the task with admin rights, without having to elevate Explorer. Every COM class has a unique identifier, called a CLSID, that is used to launch the task.

COM tasks usually trigger a Windows UAC prompt because they need administrative privileges to proceed. Endpoint Privilege Management for Windows allows you to target specific COM CLSIDs and assign privileges to the task without granting full administration rights to the user. COM based UAC prompts can also be targeted and replaced with custom messaging, where COM classes can be allowed and/or audited.

  1. Select the Application Group you want to add the COM Class to.
  2. Right-click and select Insert Application > COM Class .
  3. Enter a Class ID (CLSID) if required. Endpoint Privilege Management for Windows extracts information from this for the criteria if required. Or click Browse Class or Template.
  4. Enter a description if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the executable. COM classes are hosted by a COM server DLL or EXE, so COM classes can be validated from properties of the hosting COM server. You can configure:
    • File or Folder Name matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Product Name matches
    • Publisher matches
    • CLSID matches
    • App ID matches
    • COM Display Name matches
    • Product Description matches
    • Product Version matches
    • File Version matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC): Match if Application Requires Elevation (User Account Control) is always enabled, as COM classes require UAC to elevate
    • Source URL matches
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK . The application is added to the Application Group.
Control panel applets
  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Control Panel Applet.
  3. You can leave the File or Folder Name blank to match on all applications of this type, type in a specific name or path manually, or click Browse File, Browse Folder, or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the control panel applet. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Product Name matches
    • Publisher matches
    • Product Description matches
    • Product Version matches
    • File Version matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC)
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK. The Application is added to the Application Group.
Executables
  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Executable.
  3. You can leave the File or Folder Name field blank to match on all applications of this type, type in a specific name or path manually, or click Browse File, Browse Folder, or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the executable. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Product Name matches
    • Publisher matches
    • Product Description matches
    • Product Version matches
    • File Version matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC)
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. ClickOK. The application is added to the Application Group.
Installer packages

Endpoint Privilege Management for Windows allows standard users to install and uninstall Windows Installer packages that normally require local admin rights. Endpoint Privilege Management for Windows supports the following package types:

  • Microsoft Software Installers (MSI)
  • Microsoft Software Updates (MSU)
  • Microsoft Software Patches (MSP)

When a Windows Installer package is added to an Application Group, and assigned to an Application Rule or On-Demand Application Rule, the action is applied to both the installation of the file, and also uninstallation when using Add/Remove Programs or Programs and Features.

Installer packages typically create child processes as part of the overall installation process. Therefore, we recommend when elevating MSI, MSU, or MSP packages, that the advanced option Allow child processes will match this application definition be enabled.

ℹ️

Note

If you want to apply more granular control over installer packages and their child processes, use the Child Process validation rule to allowlist or blocklist those processes that you want or do not want to inherit privileges from the parent software installation.

  1. Select the Application Group you want to add the installer package to.
  2. Right-click and select Insert Application > Installer Package.
  3. You can leave the File or Folder Name blank to match on all applications of this type, type in a specific name or path manually, or click Browse File, Browse Folder or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the installer package. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Product Name matches
    • Publisher matches
    • Product Version matches
    • Product Code matches
    • Upgrade Code matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC)
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK. The application is added to the Application Group.
EPM policy editor snap-ins
  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Management Console....
  3. You can leave the File or Folder Name blank to match on all applications of this type, type in a specific name or path manually, or click Browse File, Browse Folder, or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the management console snap-ins. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Publisher matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC)
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK. The application is added to the Application Group.
PowerShell scripts

Endpoint Privilege Management for Windows allows you to target specific PowerShell scripts and assign privileges to the script without granting local administration rights to the user. Scripts can also be blocked if they are not authorized or allowed.

  1. Select the Application Group you want to add the PowerShell script to.
  2. Right-click and select Insert Application > PowerShell Script .
  3. You can leave the File or Folder Name blank to match on all applications of this type, type in a specific name or path manually, or click Browse File, Browse Folder or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the PowerShell script. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Publisher matches
    • Trusted Ownership matches
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK. The application is added to the Application Group.

ℹ️

Note

A PowerShell script that contains only a single line is interpreted and matched as a PowerShell command, and does not match a PowerShell script definition. We recommend PowerShell that your scripts contain at least two lines of commands to ensure they are correctly matched as PowerShell scripts. This cannot be achieved by adding a comment to a script.

Example PowerShell configurations

Example

Create New Configuration, Save to Local File

# Import both Defendpoint cmdlet module
Import-Module 'C:\Program Files\Avecto\Privilege Guard Client\PowerShell\Avecto.Defendpoint.Cmdlets\Avecto.Defendpoint.Cmdlets.dll'
# Create a new variable containing a new Defendpoint Configuration Object
$PGConfig = New-Object Avecto.Defendpoint.Settings.Configuration


## Add License ##
# Create a new license object
$PGLicence = New-Object Avecto.Defendpoint.Settings.License
# Define license value
$PGLicence.Code = "5461E0D0-DE30-F282-7D67-A7C6-B011-2200"
# Add the License object to the local PG Config file
$PGConfig.Licenses.Add($PGLicence)

## Add Application Group ##
# Create an Application Group object
$AppGroup = new-object Avecto.Defendpoint.Settings.ApplicationGroup
# Define the value of the Application Group name
$AppGroup.name = "New App Group"
# Add the Application Group object to the local PG Config file
$PGConfig.ApplicationGroups.Add($AppGroup)

## Add Application ##
# Create an application object
$PGApplication = new-object Avecto.Defendpoint.Settings.Application $PGConfig
# Use the Get-DefendpointFileInformation to target Windows Calculator
$PGApplication = Get-DefendpointFileInformation -Path C:\windows\system32\calc.exe
# Add the application to the Application group
$PGConfig.ApplicationGroups[0].Applications.AddRange($PGApplication)

## Add Message ##
# Create a new message object
$PGMessage = New-Object Avecto.Defendpoint.Settings.message $PGConfig
#Define the message Name, Description and OK action and the type of message
$PGMessage.Name = "Elevation Prompt"
$PGMessage.Description = "An elevation message"
$PGMessage.OKAction = [Avecto.Defendpoint.Settings.Message+ActionType]::Proceed
$PGMessage.Notification = 0
# Define whether the message is displayed on a secure desktop
$PGMessage.ShowOnIsolatedDesktop = 1
# Define How the message contains
$PGMessage.HeaderType = [Avecto.Defendpoint.Settings.message+MsgHeaderType]::Default
$PGMessage.HideHeaderMessage = 0
$PGMessage.ShowLineOne = 1
$PGMessage.ShowLineTwo = 1
$PGMessage.ShowLineThree = 1
$PGMessage.ShowReferLink = 0
$PGMessage.ShowCancel = 1
$PGMessage.ShowCRInfoTip = 0
# Define whether a reason settings
$PGMessage.Reason = [Avecto.Defendpoint.Settings.message+ReasonType]::None
$PGMessage.CacheUserReasons = 0
# Define authorization settings
$PGMessage.PasswordCheck = 
Avecto.Defendpoint.Settings.message+AuthenticationPolicy]::None
$PGMessage.AuthenticationType = [Avecto.Defendpoint.Settings.message+MsgAuthenticationType]::Any
$PGMessage.RunAsAuthUser = 0
# Define Message strings
$PGMessage.MessageStrings.Caption = "This is an elevation message"
$PGMessage.MessageStrings.Header = "This is an elevation message header"
$PGMessage.MessageStrings.Body = "This is an elevation message body"
$PGMessage.MessageStrings.ReferURL = "http:\\www.bbc.co.uk"
$PGMessage.MessageStrings.ReferText = "This is an elevation message refer"
$PGMessage.MessageStrings.ProgramName = "This is a test Program Name"
$PGMessage.MessageStrings.ProgramPublisher = "This is a test Program Publisher"
$PGMessage.MessageStrings.PublisherUnknown = "This is a test Publisher Unknown"
$PGMessage.MessageStrings.ProgramPath = "This is a test Path"
$PGMessage.MessageStrings.ProgramPublisherNotVerifiedAppend = "This is a test verification failure"
$PGMessage.MessageStrings.RequestReason = "This is a test Request Reason"
$PGMessage.MessageStrings.ReasonError = "This is a test Reason Error"
$PGMessage.MessageStrings.Username = "This is a test Username"
$PGMessage.MessageStrings.Password = "This is a test Password"
$PGMessage.MessageStrings.Domain = "This is a test Domain"
$PGMessage.MessageStrings.InvalidCredentials = "This is a test Invalid Creds"
$PGMessage.MessageStrings.OKButton = "OK"
$PGMessage.MessageStrings.CancelButton = "Cancel"
# Add the PG Message to the PG Configuration
$PGConfig.Messages.Add($PGMessage)

## Add custom Token ##
# Create a new custom Token object
$PGToken = New-Object Avecto.Defendpoint.Settings.Token
# Define the Custom Token settings
$PGToken.Name = "Custom Token 1"
$PGToken.Description = "Custom Token 1"
$PGToken.ClearInheritedPrivileges = 0
$PGToken.SetAdminOwner = 1
$PGToken.EnableAntiTamper = 0
$PGToken.IntegrityLevel = Avecto.Defendpoint.Settings.Token+IntegrityLevelType]::High
# Add the Custom Token to the PG Configuration
$PGConfig.Tokens.Add($PGToken)

## Add Policy ##
# Create new policy object
$PGPolicy = new-object Avecto.Defendpoint.Settings.Policy $PGConfig
# Define policy details
$PGPolicy.Disabled = 0
$PGPolicy.Name = "Policy 1"
$PGPolicy.Description = "Policy 1"
# Add the policy to the PG Configurations
$PGConfig.Policies.Add($PGPolicy)

## Add Policy Rule ##
# Create a new policy rule
$PGPolicyRule = New-Object Avecto.Defendpoint.Settings.ApplicationAssignment PGConfig
# Define the Application rule settings
$PGPolicyRule.ApplicationGroup = $PGConfig.ApplicationGroups[0]
$PGPolicyRule.BlockExecution = 0
$PGPolicyRule.ShowMessage = 1
$PGPolicyRule.Message = $PGConfig.Messages[0]
$PGPolicyRule.TokenType = [Avecto.Defendpoint.Settings.Assignment+TokenTypeType]::AddAdmin
$PGPolicyRule.Audit = [Avecto.Defendpoint.Settings.Assignment+AuditType]::On
$PGPolicyRule.PrivilegeMonitoring = [Avecto.Defendpoint.Settings.Assignment+AuditType]::Off
$PGPolicyRule.ForwardEPO = 0
$PGConfig.Policies[0].ApplicationAssignments.Add($PGPolicyRule)

## Set the Defendpoint configuration to a local file and prompt for user confirmation ##
Set-DefendpointSettings -SettingsObject $PGConfig -Localfile –Confirm

Example

Open Local User Policy, Modify then Save

# Import the Defendpoint cmdlet module
Import-Module 'C:\Program Files\Avecto\Privilege Guard Client\PowerShell\Avecto.Defendpoint.Cmdlets\Avecto.Defendpoint.Cmdlets.dll'
# Get the local file policy Defendpoint Settings
$PGConfig = Get-DefendpointSettings -LocalFile
# Disable a policy
$PGPolicy = $PGConfig.Policies[0]
$PGPolicy.Disabled = 1
$PGConfig.Policies[0] = $PGPolicy
# Remove the PG License
$TargetLicense = $PGConfig.Licenses[0]
$PGConfig.Licenses.Remove($TargetLicense)
# Update an existing application definition to match on Filehash
$UpdateApp = $PGConfig.ApplicationGroups[0].Applications[0]
$UpdateApp.CheckFileHash = 1
$PGConfig.ApplicationGroups[0].Applications[0] = $UpdateApp
# Set the Defendpoint configuration to the local file policy and prompt for user confirmation
Set-DefendpointSettings -SettingsObject $PGConfig -LocalFile -Confirm

Example

Open Local Configuration and Save to Domain GPO

# Import the Defendpoint cmdlet module
Import-Module 'C:\Program Files\Avecto\Privilege Guard Client\PowerShell\Avecto.Defendpoint.Cmdlets\Avecto.Defendpoint.Cmdlets.dll'
# get the local Defendpoint configuration and set this to the domain computer policy, ensuring the user is prompted to confirm the change
Get-DefendpointSettings -LocalFile | Set-DefendpointSettings -Domain -LDAP "LDAP://My.Domain/CN={GUID},CN=Policies,CN=System,DC=My,DC=domain" –Confirm

Registry settings
  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Registry Settings .
  3. You can leave the File or Folder Name blank to match on all applications of this type, type in a specific name or path manually, or click Browse File, Browse Folder, or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the application. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC)
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK. The application is added to the Application Group.
Remote PowerShell Commands

Endpoint Privilege Management for Windows provides an additional level of granularity for management of remote PowerShell cmdlets to ensure you can execute these commands without local administrator privileges on the target computer.

Get-service -Name *time* | restart-Service –PassThru

Endpoint Privilege Management for Windows allows you to target specific command strings and assign privileges to the command without granting local admin rights to the user. Commands can also be blocked if they are not authorized or allowed. All remote PowerShell commands are fully audited for visibility.

ℹ️

Note

We recommend allowlisting remote PowerShell commands with a general block rule to ensure unauthorized command variations are blocked.

To allow standard users to connect to a remote computer with Windows Remote Management, or WinRM (a privilege normally reserved for local administrator accounts), it is necessary to enable the General Rule Enable Windows Remote Management Connections. This rule grants standard users, who match the Endpoint Privilege Management for Windows Workstyle, the ability to connect using WinRM, and can be targeted to specific users, groups of users, or computers using Workstyle filters.

  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Remote PowerShell Command.
  3. You can leave the Select reference script file blank to match on all applications of this files, type in a specific name or path manually, or click Browse Cmdlets. This lists the PowerShell cmdlets for the version of PowerShell that you installed. If the cmdlet you want to use is not listed because the target version of PowerShell is different, you can manually enter it.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the PowerShell command. You can configure:
    • Command Line matches: PowerShell removes double quotes from the Command Line before it is sent to the target. Command Line definitions that include double quotes are not matched by Endpoint Privilege Management for Windows for remote PowerShell commands.
  6. Click OK. The application is added to the Application Group.

Messaging

Endpoint Privilege Management for Windows end user messaging includes limited support for remote PowerShell sessions; block messages can be assigned to Workstyle rules, which block remote PowerShell scripts and commands. If a block message is assigned to a Workstyle, which blocks a script or command, then the body message text of an assigned message is displayed in the remote console session as an error.

Remote PowerShell Scripts

From within a remote PowerShell session, a script (.PS1) can be executed from a remote computer against a target computer. Normally this requires local administrator privileges on the target computer, with little control over the scripts that are executed, or the actions that the script performs.

Example

Invoke-Command -ComputerName RemoteServer -FilePath c:\script.ps1 –Credential xxx

Endpoint Privilege Management for Windows allows you to target specific PowerShell scripts remotely and assign privileges to the script without granting local administration rights to the user. Scripts can also be blocked if they are not authorized or allowed. All remote PowerShell scripts executed are fully audited for visibility.

ℹ️

Note

You must use the Invoke-Command cmdlet to run remote PowerShell scripts. Endpoint Privilege Management for Windows cannot target PowerShell scripts that are executed from a remote PowerShell session. Remote PowerShell scripts must be matched by either a SHA-1 File Hash or a Publisher (if the script has been digitally signed).

Endpoint Privilege Management for Windows allows you to elevate individual PowerShell scripts and commands which are executed from a remote machine. This eliminates the need for users to be logged on with an account which has local admin rights on the target computer. Instead, elevated privileges are assigned to specific commands and scripts which are defined in Application Groups, and applied by a Workstyle.

PowerShell scripts and commands can be allowed to block the use of unauthorized scripts, commands, and cmdlets. Granular auditing of all remote PowerShell activity provides an accurate audit trail of remote activity.

PowerShell definitions for scripts and commands are treated as separate application types, which allows you to differentiate between predefined scripts authorized by IT, and session-based ad hoc commands.

To allow standard users to connect to a remote computer with Windows Remote Management, or WinRM (a privilege normally reserved for local administrator accounts), it is necessary to enable the General Rule Enable Windows Remote Management Connections. This rule grants standard users who match the Endpoint Privilege Management for Windows Workstyle the ability to connect using WinRM, and can be targeted to specific users, groups of users, or computers using Workstyle filters.

  1. Select the Application Group you want to add the Remote PowerShell script to.
  2. Right-click and select Insert Application > Remote PowerShell Script.
  3. You can leave the Select reference script file blank to match on all applications of this files, type in a specific name or path manually, or click Browse File.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the PowerShell script. You can configure:
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Publisher matches
  6. Click OK. The application is added to the Application Group.

ℹ️

Note

Remote PowerShell scripts that contain only a single line are interpreted and matched as a Remote PowerShell Command, and fail to match a PowerShell script definition. We therefore recommend PowerShell scripts contain at least two lines of commands to ensure they are correctly matched as a script. This cannot be achieved by adding a comment to the script.

Messaging

Endpoint Privilege Management for Windows end user messaging includes limited support for remote PowerShell sessions; block messages can be assigned to Workstyle rules which block remote PowerShell scripts and commands. If a block message is assigned to a Workstyle which blocks a script or command, then the body message text of an assigned message is displayed in the remote console session as an error.

Uninstaller (MSI or EXE)

Endpoint Privilege Management for Windows allows standard users to uninstall Microsoft Software Installers (MSIs) and executables (EXEs) that would normally require local admin rights.

When the Uninstaller application type is added to an Application Group and assigned to an Application Rule in the Endpoint Privilege Management for Windows policy, the end user can uninstall applications using Programs and Features or, in Windows 10, Apps and Features.

The Uninstaller application type allows you to uninstall any EXE or MSI when it is associated with an Application Rule. As the process of uninstalling a file requires admin rights, you need to ensure when you target the Application Group in the Application Rules you set the access token to Add Full Admin.

ℹ️

Note

The Uninstaller type must be associated with an Application Rule. It does not apply to On-Demand Application Rules.

You cannot use the Uninstaller application type to uninstall the BeyondTrust Endpoint Privilege Management for Windows or the BeyondTrust EPM Adapter using Endpoint Privilege Management for Windows, irrespective of your user rights. The anti-tamper mechanism built into Endpoint Privilege Management for Windows prevents users from uninstalling Endpoint Privilege Management for Windows, and an uninstall attempt fails with an error message.

ℹ️

Note

If a user attempts to use Endpoint Privilege Management for Windows to modify the installation of Endpoint Privilege Management for Windows, for example, uninstall it, and they do not have an anti-tamper token applied, the default behavior for the user is used. For example, if Windows UAC is configured, the associated Windows prompt is displayed.

If you want to allow users to uninstall either BeyondTrust's Endpoint Privilege Management for Windows or the BeyondTrust EPM Adapter, you can do this by either:

  • Logging in as a full administrator
  • Elevating the Programs and Features control panel (or other controlling application) using a Custom access token that has anti-tamper disabled.

Upgrade considerations

Any pre 5.7 Uninstaller Application Groups which match all uninstallations are automatically upgraded when loaded by the Policy Editor to File or Folder Name matches *. These are honored by Endpoint Privilege Management for Windows.

Pre 5.7 versions of Endpoint Privilege Management for Windows no longer match the upgraded rules; the behavior is that of the native operating system in these cases.

If you do not want the native operating system behavior for uninstallers, please ensure that your clients are upgraded to the latest version before you deploy any policy which contains upgraded uninstaller rules.

  1. Select the Application Group you want to add the uninstaller to.
  2. Right-click and select Insert Application > Uninstaller.
  3. Enter a description, if required. By default, this is the name of the application you're inserting.
  4. Click Browse File to select an uninstaller file and populate the available matching criteria for the selected uninstaller file.
  5. Configure the matching criteria for the executable. You can configure:
    • File or Folder Name matches
    • Product Name matches
    • Publisher matches
    • Upgrade Code matches
Windows services

The Windows service type permits individual service operations to be allowed, so that standard users can start, stop, and configure services without the need to elevate tools such as the Service Control Manager.

  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Window Service.
  3. You can leave the Service Name blank to match on all applications of this type, type in a specific name or path manually, or click Browse Services to browse the services on the local computer.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the windows services. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Product Name matches
    • Publisher matches
    • Product Description matches
    • Product Version matches
    • File Version matches
    • Service Name matches
    • Service Display Name matches
    • Service Actions match
  6. Click OK. The application is added to the Application Group.
Windows Store Applications

The Windows Store application type can be used to elevate or block Windows Store applications.

Keep the following in mind when elevating Windows Store apps:

  • Elevation of Store apps is only supported for Application Rules, not On-Demand Application Rules.
  • Only Centennial Windows apps can be elevated. In the Microsoft Store, identity a Centennial app by checking for the following permission: Uses all system resources.

ℹ️

Note

When you use Endpoint Privilege Management for Windows to block a Windows Store application from launching and assign a block message to the Application Rule, the native Windows block message overrides the Endpoint Privilege Management for Windows block message, meaning it is not displayed. Event number 116 is still triggered if you have events set up in the Application Rule.

  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Windows Store Application.
  3. Select the app to match on and click Next. You can specify an app by typing in a name or path manually, or by clicking Browse File, Browse Folder, or Template. Alternatively, you can leave the text box containing the File or Folder name blank to match on all applications of this type.
  4. Enter a description, if required, and then click Next. By default, this is the name of the application you're inserting.
  5. Select the Application Definition criteria you want to use for this app. The default is Package name, and you can also specify Publisher, Application Version, or Drive.
  6. Select any Child Process options required for the app.
  7. To add the application to the Application Group, click Finish.

ℹ️

Note

For more information, see Insert applications from templates.

Windows scripts
  1. Select the Application Group you want to add the application to.
  2. Right-click and select Insert Application > Windows Script.
  3. You can leave the File or Folder Name blank to match on all applications of this files, type in a specific name or path manually, or click Browse File, Browse Folder, or Template.
  4. Enter a description, if required. By default, this is the name of the application you're inserting.
  5. You need to configure the matching criteria for the executable. You can configure:
    • File or Folder Name matches
    • Command Line matches
    • Drive matches
    • File Hash (SHA-1 Fingerprint) matches
    • File Hash (SHA-256) matches
    • Publisher matches
    • Trusted Ownership matches
    • Application Requires Elevation (UAC)
    • Parent Process matches
    • Source URL matches
    • BeyondTrust Zone Identifier exists
  6. You need to configure the Advanced Options for the application. You can configure:
    • Allow child processes will match this application definition
    • Force standard user rights on File Open/Save common dialogs
  7. Click OK. The application is added to the Application Group.
Applications from Running Processes
  1. Select the relevant Application Group.
  2. Right-click the applications list in the details pane to access the context menu.
  3. Select Insert Application and then select the Running Process from the sub-menu.
  4. The Running Process dialog box appears.
  5. Select Show processes from all users if you want to select a process from another user’s session.
  6. Select the relevant process from the list. Click OK.
Applications from Events

The Event Import wizard allows you to search from within any Endpoint Privilege Management for Windows event source, and create application definitions based on the properties collected by an audit event. The wizard provides a simple and convenient way to find specific applications based on any or all of the following search criteria:

  • Event Source: Where the event is collected (Local or remote event log, Forwarded event log, or Enterprise reporting Pack database).
  • Event Type: The type of event you are interested in. Choose Any application or choose from one of the following:
    • Applications that performed privileged operations
      • Event number 100
    • Applications that triggered UAC
      • If the UACTriggered flag on the event was set to 1
    • Applications that were blocked
      • Event number 116
    • Applications that were launched by the Shell Menu
      • Event numbers 101, 104, 107, 110, 114, and 119
  • Timeframe: The period of time to search for applications. Choose from one of the following:
    • From: Pick a range starting from a predefined time period. From here you can also choose Anytime, to include all events.
    • Specific period: Pick an optional From and To date to include events collected during that period of time.

Once the search criteria is entered, the wizard returns a list of unique applications that were audited, matching the criteria you specified. From here you can browse the list (which is grouped by Publisher), or to find a particular application you can type into the Search publisher\Description field to instantly filter the list based on the text you enter.

Applications that are already members of the Application Group are highlighted and displayed with a check mark.

After you find an application or applications, select (or multi-select by holding down the Control or Shift key while selecting) and then click OK to create new application definitions from your selection.

Once the definitions are created, you can edit the definition and modify the matching criteria. All matching criteria are prepopulated with values collected from the application.

ℹ️

Note

A unique application is based on the product description of the application. So if two or more audited applications share the same product description, they are displayed as a single application.

Content groups

Content control allows you to control the accessibility of privileged content. Content Groups provide a means of targeting specific types of content, based on file or folder, drive, or controlling process. Rules determining the behavior for that content are applied to each Content Group in a Workstyle.

There are two main use cases for applying content control:

  1. Allow Modification: To allow standard users to modify privileged content, without having to assign admin rights to either the user, or the application used to modify the content.

    Content Groups can be added to Content Rules where the content can be assigned admin rights. When this is done, any user who receives the Workstyle can modify matching content without requiring an administrator account.

  2. Blocked Access: To block access to content or directories.

    Content Groups can be added to Content Rules where the ability to open the content can be controlled with a Block action. When this is done, any user who can normally open and read the content is blocked from opening the content.

Sample file types that can be used in Content Groups:

  • Text documents (files with no extension that are basically just text documents): .txt, .log, .docx
  • Scripts: .ps1, .bat, .cmd

⚠️

Important

Content Groups cannot modify .exe files.

The following sections explain how to create Content Groups, including content definitions, and how to assign groups to Content Rules to apply the specific content Control Rules that meet your requirements.

Create content groups

⚠️

Important

We recommend adding a controlling process for each content definition. If a controlling process is not added to a content definition, then performance issues can occur on computers the policy is applied to.

To create a Content Group:

  1. Navigate to Endpoint Privilege Management Settings > Windows > Content Groups.
  2. Right-click and select New Content Group. This creates a Content Group with the default name Content Group x, where x increments numerically.
  3. Right-click on the new Content Group and select Rename. Enter the new name you want and press Return to save your new Content Group.

Duplicate content groups

You can duplicate a Content Group if you need a new Content Group that contains the same content as an existing Content Group. You can edit a duplicated Content Group independently of the Content Group it was duplicated from.

To duplicate a Content Group:

  1. Navigate to Endpoint Privilege Management Settings > Windows > Content Groups.
  2. Right-click on the Content Group you want to duplicate and select Copy.
  3. Select the Content Groups node, right-click, and select Paste. This makes a new copy of the Content Group and all the Content rules it contains.

A new duplicate Content Group with an incremental number in brackets appended to the name is created that you can add content to.

Target content definitions

The Content dialog box provides various Content Definitions. Endpoint Privilege Management for Windows must match every definition you configure before it triggers a match (the rules are combined with a logical AND). The following definitions are available:

File or folder name

Validate applications by matching the file or folder name. You can choose to match based on the following options (wildcard characters ? and * may be used):

  • Exact Match
  • Starts With
  • Ends With
  • Contains
  • Regular Expressions

Although you can enter relative filenames, we strongly recommend that you enter the full path to a file or the COM server. Environment variables are also supported.

We do not recommend using the File or Folder Name does NOT Match definition in isolation for executable types, as it results in matching every application, including hosted types such as Installer packages, scripts, batch files, registry files, management consoles, and Control Panel applets.

When creating blocking rules for applications or content, and using the File or Folder Name definition as matching criteria against paths which exist on network shares, use the Universal Naming Convention (UNC) network path rather than a mapped drive letter.

ℹ️

Note

For more information, see Regular expressions syntax.

Drive

Verify the type of disk drive where the file is located. Choose from one of the following options:

  • Fixed disk: Any drive that is identified as being an internal hard disk.
  • Network: Any drive that is identified as a network share.
  • RAM disk: Any drive that is identified as a RAM drive.
  • Any Removable Drive or Media: If you want to target any removable drive or media, but are unsure of the specific drive type, this option will match any of the removable media types below. Alternatively, if you want to target a specific type, choose one of the following removable media types:
    • Removable Media: Any drive that is identified as removable media.
    • USB: Any drive that is identified as a disk connected via USB.
    • CD/DVD: Any drive that is identified as a CD or DVD drive.
    • eSATA Drive: Any drive that is identified as a disk connected via eSATA.

Controlling process

Use this definition to target content based on the process (application) used to open the content file. The application must have been added to an Application Group. You can also define whether any parent of the application matches the definition.

ℹ️

Note

For more information, see Regular expressions syntax.

Insert content

To insert a content rule:

  1. Select the Content Group you want to add the content control to.
  2. Right-click and select Insert Content.
  3. Enter a description, if required.
  4. You need to configure the matching criteria for the executable and then click Next. You can configure:
    • File or Folder Name
    • Drive
    • Controlling Process
  5. Click Finish. The content is added to the Content Group.

©2003-2025 BeyondTrust Corporation. All Rights Reserved. Other trademarks identified on this page are owned by their respective owners. BeyondTrust is not a chartered bank or trust company, or depository institution. It is not authorized to accept deposits or trust accounts and is not licensed or regulated by any state or federal banking authority.