Harden-Windows-Security-Module
This module offers rigorous compliance verification and security assessment. It enables you to evaluate the conformity of your system based on the security standards and recommendations of this repository. The module employs various techniques such as Group Policy, Security Policy, PowerShell cmdlet and Registry keys to conduct the checks.
Compliance checking strictly follows the guidelines and security measures of this GitHub repository. Any minor deviation from them will result in a $false value for the corresponding check.
How it works
This module verifies and validates the security measures applied by the Harden Windows Security script using the same method as the script. For example, it checks Group Policy settings if the script uses Group Policy, registry keys if the script modifies the registry, and PowerShell cmdlets if the script invokes them.
Quick demo
Harden-Windows-Security-Module.mp4
Requirements
- Administrator privileges for compliance checking
- Administrator OR Standard user privileges for the hardening mode, just like the Harden Windows Security script
- PowerShell core version 7.3 and above
How to install and use
You can install this module from PowerShell gallery
Install-Module -Name Harden-Windows-Security-Module -ForcePerform Compliance test
Confirm-SystemComplianceApply the Hardening measures described in the Readme
Protect-WindowsSecurityAvailable parameters
Confirm-SystemCompliance [-ExportToCSV] [-ShowAsObjectsOnly]The module has 2 optional parameters, they can be used together or individually.
-
[-ExportToCSV]: In addition to displaying the results on the screen, also exports them in a nicely formatted CSV for easier viewing. The CSV is fully compatible with GitHub too so you can upload it to GitHub and view it. -
[-ShowAsObjectsOnly]: Instead of displaying strings on the console, outputs actionable objects and properties. You can use this parameter for when you need to store the output of the function in a variable and use it that way. This provides a very detailed nested object and suppresses the normal string output on the console.
Security Scoring System
The current max score is 89, meaning there are 89 options that produce $true value if they are compliant. Based on the score that you get you will see a different ASCII art!
Any feedback or suggestions? Please use GitHub issues or discussions
