Dargslan.WinIPSec.psm1
|
<# .SYNOPSIS IPsec policy and SA management toolkit — main mode SAs, quick mode SAs, IPsec rules, connection security policies, and encryption analysis .DESCRIPTION 2026 Edition — Dargslan Windows Admin Toolkit. https://dargslan.com | https://dargslan.com/cheat-sheets .LINK https://dargslan.com #> function Get-IPSecAudit { <# .SYNOPSIS Audit IPsec policies and security associations .DESCRIPTION Part of Dargslan.WinIPSec (2026 Edition) — https://dargslan.com #> [CmdletBinding()] param([switch]$Json) $report = [ordered]@{ IPsecRules = Get-NetIPsecRule -ErrorAction SilentlyContinue | Select-Object DisplayName, Enabled, InboundSecurity, OutboundSecurity, Mode, Phase1AuthSet MainModeSAs = Get-NetIPsecMainModeSA -ErrorAction SilentlyContinue | Select-Object Name, LocalEndpoint, RemoteEndpoint QuickModeSAs = Get-NetIPsecQuickModeSA -ErrorAction SilentlyContinue | Select-Object Name, LocalEndpoint, RemoteEndpoint ConnectionSecRules = Get-NetIPsecRule -ErrorAction SilentlyContinue | Where-Object Enabled -eq "True" | Select-Object DisplayName, Mode, InboundSecurity, OutboundSecurity Phase1Auth = Get-NetIPsecPhase1AuthSet -ErrorAction SilentlyContinue | Select-Object DisplayName, Proposal Phase2Auth = Get-NetIPsecPhase2AuthSet -ErrorAction SilentlyContinue | Select-Object DisplayName, Proposal Summary = [PSCustomObject]@{ Rules = 0; ActiveRules = 0; MainModeSAs = 0; QuickModeSAs = 0 } } $report.Summary.Rules = ($report.IPsecRules | Measure-Object).Count $report.Summary.ActiveRules = ($report.ConnectionSecRules | Measure-Object).Count $report.Summary.MainModeSAs = ($report.MainModeSAs | Measure-Object).Count $report.Summary.QuickModeSAs = ($report.QuickModeSAs | Measure-Object).Count if ($Json) { return $report | ConvertTo-Json -Depth 3 } Write-Host "`n [IPsec Audit - 2026]" -ForegroundColor Cyan $report.Summary | Format-List if ($report.ConnectionSecRules) { Write-Host " Active Rules:" -ForegroundColor Yellow; $report.ConnectionSecRules | Format-Table -AutoSize } if ($report.MainModeSAs) { Write-Host " Main Mode SAs:" -ForegroundColor Yellow; $report.MainModeSAs | Format-Table -AutoSize } return $report } Export-ModuleMember -Function * |