windows-applocker.mdβ’3.97 kB
[AppLocker]: https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/applocker/applocker-overview
[Application Identity Service]: https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/applocker/configure-the-application-identity-service
# Testing with Windows AppLocker
Windows environments with [AppLocker][AppLocker] enabled present unique challenges for `conda` development and testing. This guide explains how to set up a testing environment with AppLocker to ensure `conda` works correctly in these environments.
## Why Test with AppLocker?
AppLocker is Microsoft's application control solution that allows organizations to:
- Control which applications and files users can run
- Create rules to allow or deny applications from running based on file attributes
- Create exceptions to rules
Many enterprise environments use AppLocker to restrict script execution, which can impact environmnet activation and execution processes. Testing with AppLocker ensures `conda` works properly in these restricted environments.
## Setting Up AppLocker for Testing
### Step 1: Enable the [Application Identity Service][Application Identity Service]
:::{note}
The Application Identity Service is required for AppLocker to function properly.
:::
1. Open the **Services** application (press `Win+R`, type `services.msc`, and press Enter)
2. Find **Application Identity** in the list of services
3. Right-click on it and select **Properties**
4. *Optional*: Change **Startup type** to **Automatic** if you want the service to start on boot
5. Click **Start** to start the service
6. Click **OK** to close the properties window
### Step 2: Configure AppLocker Enforcement
1. Open **Local Security Policy** (press `Win+R`, type `secpol.msc`, and press Enter)
2. Navigate to **Security Settings** > **Application Control Policies** > **AppLocker**
3. Right-click on **AppLocker** and select **Properties**
4. Under the **Enforcement** tab, check **Script Rules** and set it to **Enforce rules**
5. Click **OK** to close the properties window
### Step 3: Create AppLocker Rules
1. In the **Local Security Policy** window, navigate to **Script Rules** under **AppLocker**
2. Right-click on **Script Rules** and select **Create Default Rules** to establish baseline rules
3. Create an Allow Rule for your development environment:
- Right-click on **Script Rules** and select **Create New Rule...**
- Choose **Allow** under Permissions and set the user/group to **Everyone**
- Select **Path** as the condition
- Enter the path to your development environment (e.g., path to `devenv`)
- Complete the wizard without adding exceptions
4. Create an Allow Rule for the conda source code location using the same process
5. Create a Deny Rule for the `%TEMP%` directory:
- Follow the same process but choose **Deny** under Permissions
- Set the absolute path
6. Restart your computer to apply the rules
```{figure} /img/applocker.png
:name: Windows AppLocker
## Testing Conda with AppLocker Enabled
After setting up AppLocker, you can test conda to ensure it works correctly:
1. Start your development environment with `.\dev\start.bat`
2. Run `conda activate` to test activation
3. Test other conda commands to ensure they function properly
### Toggling AppLocker for Testing
You can easily toggle AppLocker enforcement on and off for quick testing:
1. Open **Local Security Policy** (press `Win+R`, type `secpol.msc`, and press Enter)
2. Navigate to **Security Settings** > **Application Control Policies** > **AppLocker**
3. Right-click on **AppLocker** and select **Properties**
4. Under the **Enforcement** tab, uncheck or check **Script Rules** as needed
5. Click **OK** to apply the changes
This allows you to quickly switch between testing with and without AppLocker restrictions without restarting your machine.