Implementation guidance for Australian Essential Eight controls in Microsoft environments - ISM controls with PSPF mappings
| Property | Value |
|---|---|
| ISM Control | ISM-1621 |
| Revision | 1 |
| Updated | Sep-21 |
| Guideline | Not provided |
| Section | Operating system hardening |
| Topic | PowerShell |
| Essential Eight | ML3 |
| PSPF Levels | NC, OS, P, S, TS |
Disabling Windows PowerShell 2.0 reduces attack surface by removing a legacy execution engine. Microsoft guidance for Essential Eight user application hardening maps this outcome to deployment of UserApplicationHardening-RemoveFeatures.ps1 via Intune scripts; this script disables Windows PowerShell 2.0 and .NET Framework 3.5 (including .NET 2.0 and 3.0), and can also remove Internet Explorer 11 on supported Windows 10 platforms.12
[!IMPORTANT] PowerShell 2.0 predates Antimalware Scan Interface (AMSI), script-block logging (Event 4104), and module logging. An attacker can invoke
powershell.exe -Version 2to run malicious code that bypasses all modern logging and detection. Critically, the legacy v2 engine also bypasses Constrained Language Mode (CLM) enforced by WDAC (ISM-1622): a v2 session always runs in Full Language mode regardless of any App Control policy. These two controls (ISM-1621 and ISM-1622) are complementary — both must be applied together for effective protection.
[!NOTE] The UserApplicationHardening-RemoveFeatures.ps1 script will be deployed via Intune Platform scripts to disable Windows PowerShell 2.0 and .NET Framework 3.5. On supported Windows 10 systems, the script also disables Internet Explorer 11. The script will be assigned to the relevant deployment group for execution.
In Intune admin center, go to Devices > Scripts and remediations > Platform scripts > Add > Windows 10 and later and upload UserApplicationHardening-RemoveFeatures.ps1.3
Configure script settings as follows:
Assign the script to the required Microsoft Entra device/user group based on your deployment scope.3
Monitor deployment using Device status / User status and, when troubleshooting is required, review IME logs on the client at C:\ProgramData\Microsoft\IntuneManagementExtension\Logs (for example AgentExecutor.log and IntuneManagementExtension.log).23
Verify the feature is disabled on each device by running:
Get-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2Root
The output should show State : Disabled. A state of Enabled indicates the feature was not removed and the script should be re-triggered or the feature disabled manually with:
Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2Root
Note: This script also disables .NET Framework 3.5 (includes .NET 2.0 and 3.0) and Windows PowerShell 2.0.
1