name: Check audit setting on: push: branches: [ "main" ] workflow_dispatch: jobs: build: strategy: matrix: os: [windows-2019, windows-2022, windows-2025] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: auditpol /list /subcategory:* /r run: auditpol /list /subcategory:* /r - name: auditpol /get /category:* run: auditpol /get /category:* - name: Get-WinEvent -ListLog * | Select-Object LogName, MaximumSizeInBytes run: Get-WinEvent -ListLog * | Select-Object LogName, MaximumSizeInBytes - name: Get-WinEvent -ListProvider * run: (Get-WinEvent -ListProvider Microsoft-Windows-Security-Auditing).Events | ForEach-Object { [PSCustomObject]@{EventID=$_.Id; Description=($_.Description -replace "`r`n", " ") -replace "\..*", ""} } - name: Checkout self repository uses: actions/checkout@v4 - name: Load audit settings(json) run: | $startTime = Get-Date $audit_settings = Get-Content -Path ./config/security_rules.json -Raw | ConvertFrom-Json $audit_settings $endTime = Get-Date $duration = $endTime - $startTime Write-Output "Duration: $duration" - name: Load audit settings(csv) run: | $startTime = Get-Date $audit_settings = Import-Csv ./config/eid_subcategory_mapping.csv $audit_settings $endTime = Get-Date $duration = $endTime - $startTime Write-Output "Duration: $duration" - name: Run WELA.ps1 run: | ./WELA.ps1 - name: Output UsableRules.csv run: | Get-Content UsableRules.csv - name: Output UnUsableRules.csv run: | Get-Content UnusableRules.csv