Skip to content
User application hardening
Essential EightE8-AH-ML3.3

Essential Eight AH-ML3.3 PowerShell is configured to use Constrained Language Mode

What it says

PowerShell is configured to use Constrained Language Mode.

Quoted as published. Everything else on this page is written by Control Stack.

What it means

In plain English

Limit PowerShell's capabilities to reduce security risks.

Configuring PowerShell to use Constrained Language Mode limits what PowerShell can do on a computer. This is important because it helps prevent malicious scripts from running that could steal your information or damage your system. Imagine PowerShell as a versatile tool that can perform many tasks, and putting it in Constrained Language Mode means it's only allowed to perform essential, safe tasks.

Why it matters

Without Constrained Language Mode, attackers can abuse PowerShell to run advanced scripts and .NET methods, leading to privilege escalation, data theft and system compromise.

How to implement

  1. IT team should assess existing PowerShell scripts to identify those that absolutely need to run using Full Language Mode.

    This helps in deciding where Constrained Language Mode can be enforced.

  2. System administrator should configure PowerShell to enable Constrained Language Mode.

    This can be done by setting system environment variables appropriately or by using group policy settings.

  3. Security officer needs to communicate to staff that legitimate technical tasks requiring PowerShell will not be hindered on regular business systems because essential commands remain operational.

  4. IT team should regularly review and update script policies to make sure that any exceptions to Constrained Language Mode are still justified and that security is not being compromised.

Keep it running

Periodically confirm Constrained Language Mode is enforced (e.g., $ExecutionContext.SessionState.LanguageMode) and that policy/AppLocker/WDAC settings still apply after updates.

Evidence and audit

  1. Check 1 of 2What an auditor asks for

    Ask for

    Have you configured PowerShell to operate in Constrained Language Mode across the organisation's computers?

    Look at

    Examine the group policy settings or system environment variables to verify that PowerShell's language mode is set to 'Constrained'.

    Good evidence

    The settings should clearly indicate that PowerShell is running in Constrained Language Mode, visible through group policy management or confirmed by a system report.

  2. Check 2 of 2What an auditor asks for

    Ask for

    Has there been any approval process for exceptions to the Constrained Language Mode?

    Look at

    Review documentation of any approved exceptions along with reasons for deviations from Constrained Language Mode.

    Good evidence

    There should be documented approvals signed by a security officer with a clear justification for any exceptions.

Mappings

Closest match in ASD Information Security Manual: ISM-1622, Ensure PowerShell uses Constrained Language Mode, which asks for the same thing.

ISO 27001

ISO/IEC 27001: 2 mappings

  • A.8.18Use of privileged utility programsPartially overlaps
ASD ISM

ASD Information Security Manual: 8 mappings

ASD Essentials

ASD Essentials for enterprise IT: 2 mappings

Mappings show how controls relate across frameworks. They do not imply full equivalence or certification.