-
Notifications
You must be signed in to change notification settings - Fork 163
Edit SignedWDACConfig
Edit-SignedWDACConfig
[-AllowNewApps]
-SuppPolicyName <String>
[-BoostedSecurity]
[-PolicyPath <FileInfo>]
[-CertPath <FileInfo>]
[-CertCN <String>]
[-LogSize <UInt64>]
[-NoScript]
[-NoUserPEs]
[-SpecificFileNameLevel <String>]
[-Level <String>]
[-Fallbacks <String[]>]
[-SignToolPath <FileInfo>]
[<CommonParameters>]
While a Signed App Control for Business policy is already deployed on the system, rebootlessly turns on Audit mode in it, which will allow you to install a new app that was otherwise getting blocked.
After installation, you will be able to browse for the path(s) of the installed app(s) for scanning, which is optional.
Any file outside of the paths you select that was executed or run during the audit mode phase and was detected in the audit logs, will be displayed to you in a nice GUI (Graphical User Interface) so you will be able to see detailed information about them and decide whether to include them in the Supplemental policy or not.
This parameter can also be used for apps that are already installed on the system.
A new supplemental policy will be created, it will be signed and deployed on the system. The base policy that was initially set to Audit mode will also revert back to enforced mode. The entire process happens without the need for reboot. If something like a power outage occurs during the audit mode phase, on the next reboot, the enforced mode base policy will be automatically deployed.
Note
This parameter can also detect and create allow rules for Kernel protected files, such as the executables of games installed using Xbox app. Make sure you run the game while the base policy is deployed in Audit mode so that it can capture those executables.
Add a descriptive name for the Supplemental policy.
Type: | String |
---|---|
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Implements Sandboxing-like restrictions around the program's dependencies.
Tip
When using this mode, it's recommended to only target one program at a time. E.g., don't use this method for creating a supplemental policy for Adobe Photoshop and Steam client at the same time, because they will be put in the same supplemental policy and the dependency sandboxing will be ineffective.
This mode requires the main executable(s) of the programs that need access to the dependencies (such as DLLs) to have the OriginalFileName
property. Most of the time they do. Use the -Verbose
parameter to see when they don't.
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Path to the certificate .cer
file. Press TAB to open the file picker GUI and browse for a .cer
file.
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Common name of the certificate - Supports argument completion so you don't have to manually enter the Certificate's CN, just make sure the -CertPath
is specified and the certificate is installed in the personal store of the user certificates, then press TAB to auto complete the name. You can however enter it manually if you want to.
Type: | String |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Browse for the xml file of the Base policy this Supplemental policy is going to expand. Supports tab completion by showing only .xml
files with Base Policy Type.
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Press TAB to open the file picker GUI and browse for SignTool.exe
Important
Refer to this section for more info
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Offers the same official Levels for scanning event logs and the specified directory path(s).
Type: | String |
---|---|
Position: | Named |
Default value: | WHQLFilePublisher |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Offers the same official Fallbacks for scanning event logs and the specified directory path(s).
Type: | String[] |
---|---|
Position: | Named |
Default value: |
FilePublisher ,Hash
|
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Specifies the log size for Microsoft-Windows-CodeIntegrity/Operational events. The values must be in the form of <Digit + Data measurement unit>
. e.g., 2MB, 10MB, 1GB, 1TB. The minimum accepted value is 1MB which is the default.
Type: | UInt64 |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
More info available on Microsoft Learn
Type: | String |
---|---|
Position: | Named |
Accepted values: |
OriginalFileName , InternalName , FileDescription , ProductName , PackageFamilyName , FilePath
|
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
By default, the module includes user PEs in the scan. When you use this switch parameter, they won't be included. More info available on Microsoft Learn
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
More info available on Microsoft Learn
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Edit-SignedWDACConfig
[-MergeSupplementalPolicies]
-SuppPolicyName <String>
-SuppPolicyPaths <FileInfo[]>
[-PolicyPath <FileInfo>]
[-KeepOldSupplementalPolicies]
[-CertPath <FileInfo>]
[-CertCN <String>]
[-SignToolPath <FileInfo>]
[<CommonParameters>]
Merge multiple deployed Signed Supplemental policies into 1 and deploy it, remove the individual ones, all happening automatically.
Choose a descriptive name for the Supplemental policy that is going to be the merge of multiple policies.
Type: | String |
---|---|
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Path to the Supplemental policies xml files. Supports argument tab completion by showing only Supplemental policy types.
Type: | FileInfo[] |
---|---|
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Path to the certificate .cer
file. Press TAB to open the file picker GUI and browse for a .cer
file.
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Common name of the certificate - Supports argument completion so you don't have to manually enter the Certificate's CN, just make sure the -CertPath
is specified and the certificate is installed in the personal store of the user certificates, then press TAB to auto complete the name. You can however enter it manually if you want to.
Type: | String |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Browse for the xml file of the Base policy this Supplemental policy is going to expand. Supports tab completion by showing only .xml
files with Base Policy Type.
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Press TAB to open the file picker GUI and browse for SignTool.exe
Important
Refer to this section for more info
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indicates that the module will not remove the old Supplemental policy xml files after creating and deploying the new merged one.
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Edit-SignedWDACConfig
[-UpdateBasePolicy]
-CurrentBasePolicyName <String[]>
-NewBasePolicyType <String>
[-CertPath <FileInfo>]
[-CertCN <String>]
[-SignToolPath <FileInfo>]
[-RequireEVSigners]
[<CommonParameters>]
It can rebootlessly change the type or rule options of the deployed signed base policy. The deployed Supplemental policies will stay intact and continue to work with the new Base policy.
Note
When switching from a more permissive base policy type to a more restrictive one, make sure your Supplemental policies will continue to work. E.g., if your current base policy type is AllowMicrosoft and the one you are switching to is DefaultWindows, there might be files that will get blocked as a result of this switch.
That's simply because they were allowed by the more permissive AllowMicrosoft policy type so they didn't trigger audit logs (in case the supplemental policy was created based on audit logs) thus weren't needed to be included in the Supplemental policy. You will need to update those Supplemental policies if that happens by deleting and recreating them, no immediate reboot required.
The name of the currently deployed base policy. It supports tab completion so just press tab to autofill it.
Type: | String |
---|---|
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
The new type of the base policy to deploy. It supports tab completion so just press tab to autofill it. Supports all 3 main Base policy types.
Note
If the selected policy type is DefaultWindows
and the detected PowerShell is not installed through Microsoft Store, the module will scan the PowerShell files and add them to the DefaultWindows
base policy as allowed files so you will be able to continue using the module after deploying the policy.
Type: | String |
---|---|
Position: | Named |
Accepted values: |
AllowMicrosoft , DefaultWindows , SignedAndReputable
|
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Path to the certificate .cer
file. Press TAB to open the file picker GUI and browse for a .cer
file.
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Common name of the certificate - Supports argument completion so you don't have to manually enter the Certificate's CN, just make sure the -CertPath
is specified and the certificate is installed in the personal store of the user certificates, then press TAB to auto complete the name. You can however enter it manually if you want to.
Type: | String |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Press TAB to open the file picker GUI and browse for SignTool.exe
Important
Refer to this section for more info
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Automatic: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indicates that the created/deployed policy will have Require EV Signers policy rule option.
- In addition to being WHQL signed, this rule requires that drivers must have been submitted by a partner that has an Extended Verification (EV) certificate. All Windows 10 and later, or Windows 11 drivers will meet this requirement.
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
- Create AppControl Policy
- Create Supplemental Policy
- System Information
- Configure Policy Rule Options
- Simulation
- Allow New Apps
- Build New Certificate
- Create Policy From Event Logs
- Create Policy From MDE Advanced Hunting
- Create Deny Policy
- Merge App Control Policies
- Deploy App Control Policy
- Get Code Integrity Hashes
- Get Secure Policy Settings
- Update
- Sidebar
- Introduction
- App Control for Lightly Managed Devices
- App Control for Fully managed device - Variant 1
- App Control for Fully managed device - Variant 2
- App Control for Fully managed device - Variant 3
- App Control for Fully managed device - Variant 4
- App Control Notes
- How to Create and Deploy a Signed App Control Policy
- Fast and Automatic Microsoft Recommended Driver Block Rules updates
- App Control policy for BYOVD Kernel mode only protection
- EKUs in App Control for Business Policies
- App Control Rule Levels Comparison and Guide
- Script Enforcement and PowerShell Constrained Language Mode in App Control Policies
- How to Use Microsoft Defender for Endpoint Advanced Hunting With App Control
- App Control Frequently Asked Questions (FAQs)
- Create Bootable USB flash drive with no 3rd party tools
- Event Viewer
- Group Policy
- How to compact your OS and free up extra space
- Hyper V
- Overrides for Microsoft Security Baseline
- Git GitHub Desktop and Mandatory ASLR
- Signed and Verified commits with GitHub desktop
- About TLS, DNS, Encryption and OPSEC concepts
- Things to do when clean installing Windows
- Comparison of security benchmarks
- BitLocker, TPM and Pluton | What Are They and How Do They Work
- How to Detect Changes in User and Local Machine Certificate Stores in Real Time Using PowerShell
- Cloning Personal and Enterprise Repositories Using GitHub Desktop
- Only a Small Portion of The Windows OS Security Apparatus
- Rethinking Trust: Advanced Security Measures for High‐Stakes Systems
- Clean Source principle, Azure and Privileged Access Workstations
- How to Securely Connect to Azure VMs and Use RDP
- Basic PowerShell tricks and notes
- Basic PowerShell tricks and notes Part 2
- Basic PowerShell tricks and notes Part 3
- Basic PowerShell tricks and notes Part 4
- Basic PowerShell tricks and notes Part 5
- How To Access All Stream Outputs From Thread Jobs In PowerShell In Real Time
- PowerShell Best Practices To Follow When Coding
- How To Asynchronously Access All Stream Outputs From Background Jobs In PowerShell
- Powershell Dynamic Parameters and How to Add Them to the Get‐Help Syntax
- RunSpaces In PowerShell
- How To Use Reflection And Prevent Using Internal & Private C# Methods in PowerShell