From 873ba8702908bd88dca7a18ee5a2b3aec8a04c27 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 5 Dec 2025 18:20:32 +0000
Subject: [PATCH] Improve PowerShell script with error handling and add
manifest clarification
Co-authored-by: chipitsine <2217296+chipitsine@users.noreply.github.com>
---
ANTIVIRUS.md | 41 ++++++++++++++++++++++--
src/BuildFiles/Manifests/common.manifest | 5 +++
2 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/ANTIVIRUS.md b/ANTIVIRUS.md
index 3e5dc900..aa8f61b6 100644
--- a/ANTIVIRUS.md
+++ b/ANTIVIRUS.md
@@ -144,6 +144,8 @@ For automated deployment, use this PowerShell script (requires Administrator pri
```powershell
# Add Windows Defender exclusions for SoftEther VPN
+# Requires Administrator privileges
+
$exclusionPaths = @(
"C:\Program Files\SoftEther VPN Client",
"C:\Program Files\SoftEther VPN Client Developer Edition",
@@ -155,14 +157,47 @@ $exclusionPaths = @(
"C:\ProgramData\SoftEther VPN Server"
)
+# Check if running as Administrator
+$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
+
+if (-not $isAdmin) {
+ Write-Error "This script requires Administrator privileges. Please run PowerShell as Administrator."
+ exit 1
+}
+
+# Check if Windows Defender module is available
+if (-not (Get-Module -ListAvailable -Name Defender)) {
+ Write-Error "Windows Defender PowerShell module is not available on this system."
+ exit 1
+}
+
+$successCount = 0
+$errorCount = 0
+
foreach ($path in $exclusionPaths) {
if (Test-Path $path) {
- Add-MpPreference -ExclusionPath $path
- Write-Host "Added exclusion: $path"
+ try {
+ Add-MpPreference -ExclusionPath $path -ErrorAction Stop
+ Write-Host "✓ Added exclusion: $path" -ForegroundColor Green
+ $successCount++
+ }
+ catch {
+ Write-Warning "✗ Failed to add exclusion for: $path"
+ Write-Warning " Error: $($_.Exception.Message)"
+ $errorCount++
+ }
+ }
+ else {
+ Write-Host "- Skipped (not found): $path" -ForegroundColor Gray
}
}
-Write-Host "SoftEther VPN exclusions configured successfully."
+Write-Host "`nSummary:" -ForegroundColor Cyan
+Write-Host " Successfully added: $successCount exclusion(s)" -ForegroundColor Green
+if ($errorCount -gt 0) {
+ Write-Host " Failed: $errorCount exclusion(s)" -ForegroundColor Red
+}
+Write-Host "`nSoftEther VPN exclusions configured." -ForegroundColor Cyan
```
Save as `Add-SoftEtherVPN-Exclusions.ps1` and run as Administrator.
diff --git a/src/BuildFiles/Manifests/common.manifest b/src/BuildFiles/Manifests/common.manifest
index 6955e115..2961aac2 100644
--- a/src/BuildFiles/Manifests/common.manifest
+++ b/src/BuildFiles/Manifests/common.manifest
@@ -8,6 +8,11 @@
processorArchitecture="*"
/>
SoftEther VPN - Open Source Multi-protocol VPN Software
+