-
Notifications
You must be signed in to change notification settings - Fork 160
Invoke WDACSimulation
Invoke-WDACSimulation
[-XmlFilePath] <FileInfo>
[[-FolderPath] <DirectoryInfo[]>]
[[-FilePath] <FileInfo[]>]
[-BooleanOutput]
[-CSVOutput]
[-Log]
[-NoCatalogScanning]
[[-CatRootPath] <DirectoryInfo[]>]
[[-ThreadsCount] <UInt32>]
[<CommonParameters>]
This cmdlet allows you to simulate an App Control for Business policy deployment. Simply select folders or files and a policy XML file, it will show you whether the selected files would be allowed or blocked by your App Control policy if it was actually deployed on a system and those files were run.
-
The App Control Simulation engine supports the following levels:
- WHQLFilePublisher
- WHQLPublisher
- WHQL
- FilePublisher
- Publisher
- SignedVersion
- PCA Certificate
- Root Certificate
- Leaf Certificate
- Hash
- FilePath
-
The engine supports all of the SpecificFileNameLevel options when validating the FilePublisher level.
- FileDescription
- InternalName
- OriginalFileName
- PackageFamilyName
- ProductName
- Filepath
-
The Simulation engine doesn't support the following level yet (they will be added in a future update):
- FileName
- The engine can determine with 100% accuracy whether a file is authorized by a given policy or not as long as the file was scanned based on one of the supported levels mentioned above.
-
Have an App Control policy and you want to test whether all of the files of a program will be allowed by the policy without running the program first? Use this App Control simulation to find out.
-
Employ this simulation method to discover files that are not explicitly specified in the App Control policy but are still authorized to run by it.
-
Identify files that have hash mismatch and will not be permitted by App Control engine using signature. These files are typically found in questionable software because they are tampered with.
-
And many more.
Path to a xml file. Supports argument tab completion, select the parameter then press TAB to open the file picker GUI that only shows xml files.
Type: | FileInfo |
---|---|
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Path to folders. Supports argument tab completion, select the parameter then press TAB to open the Folder picker GUI.
Type: | DirectoryInfo[] |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Provide path to files that you want App Control simulation to run against
Type: | FileInfo[] |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Can be used with any parameter to return a boolean value instead of displaying the object output. If any of the selected files or any of the files in the selected folders are not authorized by the selected XML file, the result is $false
. Otherwise, the result is $true
.
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Upon completion of the simulation, you will obtain a CSV file containing the output of the simulation with exhaustive details of each file that would be blocked/allowed by the selected policy, and which rule or signer in the XML policy is responsible for the decision.
It is saved in the WDACConfig folder in C:\Program Files\WDACConfig
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Use this switch to start a transcript of the App Control simulation and log everything displayed on the screen.
The log file is saved in the WDACConfig folder in C:\Program Files\WDACConfig
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Provide path(s) to directories where security catalog .cat
files are located. If not provided, the default path is C:\Windows\System32\CatRoot
. Supports argument tab completion, select the parameter then press TAB to open the Folder picker GUI.
Type: | DirectoryInfo[] |
---|---|
Aliases: | Cat |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bypass the scanning of the security catalogs on the system. It can make the scan results less accurate.
Type: | SwitchParameter |
---|---|
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
The number of the concurrent/parallel tasks to use when performing App Control Simulation.
- Max is the number of your system's CPU cores.
- Min is 1.
- If you enter a number higher than your system's CPU cores, it will be set to your system's CPU cores count.
Type: | UInt32 |
---|---|
Aliases: | CPU |
Position: | Named |
Default value: | 2 |
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
- Merge App Control Policies
- Deploy App Control Policy
- Get Code Integrity Hashes
- Get Secure Policy Settings
- Update
- 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)
- New-WDACConfig
- New-SupplementalWDACConfig
- Remove-WDACConfig
- Edit-WDACConfig
- Edit-SignedWDACConfig
- Deploy-SignedWDACConfig
- Confirm-WDACConfig
- New-DenyWDACConfig
- Set-CommonWDACConfig
- New-KernelModeWDACConfig
- Get-CommonWDACConfig
- Remove-CommonWDACConfig
- Assert-WDACConfigIntegrity
- Test-CiPolicy
- Get-CiFileHashes
- Get-CIPolicySetting
- 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