Skip to content

Edit SignedWDACConfig

Violet Hansen edited this page Nov 4, 2024 · 34 revisions

Edit-SignedWDACConfig available parameters

Edit-SignedWDACConfig -AllowNewApps

image

Syntax

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>]

Description

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.

Parameters

-SuppPolicyName

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

-BoostedSecurity

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.

Boosted security dependencies in WDAC policies

Type: SwitchParameter
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-CertPath

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

-CertCN

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

-PolicyPath

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

-SignToolPath

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

-Levels

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

-Fallbacks

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

-LogSize

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

-SpecificFileNameLevel

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

-NoUserPEs

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

-NoScript

More info available on Microsoft Learn

Type: SwitchParameter
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

horizontal super thin rainbow RGB line

Edit-SignedWDACConfig -MergeSupplementalPolicies

image

Syntax

Edit-SignedWDACConfig
     [-MergeSupplementalPolicies]
     -SuppPolicyName <String>
     -SuppPolicyPaths <FileInfo[]>
     [-PolicyPath <FileInfo>]
     [-KeepOldSupplementalPolicies]
     [-CertPath <FileInfo>]
     [-CertCN <String>]
     [-SignToolPath <FileInfo>]
     [<CommonParameters>]

Description

Merge multiple deployed Signed Supplemental policies into 1 and deploy it, remove the individual ones, all happening automatically.

Parameters

-SuppPolicyName

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

-SuppPolicyPaths

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

-CertPath

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

-CertCN

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

-PolicyPath

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

-SignToolPath

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

-KeepOldSupplementalPolicies

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

horizontal super thin rainbow RGB line

Edit-SignedWDACConfig -UpdateBasePolicy

image

Syntax

Edit-SignedWDACConfig
     [-UpdateBasePolicy]
     -CurrentBasePolicyName <String[]>
     -NewBasePolicyType <String>
     [-CertPath <FileInfo>]
     [-CertCN <String>]
     [-SignToolPath <FileInfo>]
     [-RequireEVSigners]
     [<CommonParameters>]

Description

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.

Parameters

-CurrentBasePolicyName

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

-NewBasePolicyType

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

-CertPath

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

-CertCN

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

-SignToolPath

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

-RequireEVSigners

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









C#


Clone this wiki locally