8
0

80 lines
2.0 KiB
PowerShell

# PowerShell-Skript: Visual Studio-Ausnahmen mit Logging und Fehlerprüfung
# Autor: Copilot 🛠️
# Datum: $(Get-Date -Format "yyyy-MM-dd")
# Log-Datei definieren
$logPath = "$Env:USERPROFILE\Add-VS-Defender-Ausnahmen.log"
# Funktion zum Loggen
function Write-Log {
param (
[string]$Message,
[string]$Level = "INFO"
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$entry = "$timestamp [$Level] $Message"
Add-Content -Path $logPath -Value $entry
Write-Host $entry
}
# Funktion zum Hinzufügen einer Prozess-Ausnahme mit Prüfung
function Add-ProcessExclusion {
param (
[string]$ProcessPath
)
if (Test-Path $ProcessPath) {
try {
Add-MpPreference -ExclusionProcess $ProcessPath
Write-Log "Prozess-Ausnahme hinzugefügt: $ProcessPath"
} catch {
Write-Log "Fehler beim Hinzufügen der Ausnahme für: $ProcessPath - $_" "ERROR"
}
} else {
Write-Log "Pfad nicht gefunden: $ProcessPath" "WARNING"
}
}
# Funktion zum Hinzufügen einer Pfad-Ausnahme mit Prüfung
function Add-PathExclusion {
param (
[string]$FolderPath
)
if (Test-Path $FolderPath) {
try {
Add-MpPreference -ExclusionPath $FolderPath
Write-Log "Pfad-Ausnahme hinzugefügt: $FolderPath"
} catch {
Write-Log "Fehler beim Hinzufügen der Ausnahme für: $FolderPath - $_" "ERROR"
}
} else {
Write-Log "Pfad nicht gefunden: $FolderPath" "WARNING"
}
}
# Ausnahmen definieren
$processes = @(
"<Path.exe eintragen wenn ich Prozess nicht gescannt werden soll>",
)
$paths = @(
"Path eintragen wenn dieser ausgeschlossen werden soll",
)
# Ausnahmen hinzufügen
Write-Log "=== Start: Hinzufügen von Defender-Ausnahmen für Visual Studio ==="
foreach ($proc in $processes) {
Add-ProcessExclusion -ProcessPath $proc
}
foreach ($path in $paths) {
Add-PathExclusion -FolderPath $path
}
Write-Log "=== Ende: Alle Ausnahmen verarbeitet ==="