# 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 = @( "D:\ProgramFiles\Microsoft Visual Studio 2022\Common7\IDE\devenv.exe", "D:\ProgramFiles\dotnet\dotnet.exe", "D:\ProgramFiles\Microsoft Visual Studio 2022\MSBuild\Current\Bin\MSBuild.exe", "D:\ProgramFiles\Microsoft Visual Studio 2022\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" ) $paths = @( "$Env:USERPROFILE\source\repos", "$Env:USERPROFILE\.nuget\packages", "$Env:USERPROFILE\source\repos\*\bin", "$Env:USERPROFILE\source\repos\*\obj" ) # 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 ===" 🔒 Hinweise: Das Skript schreibt ein Logfile in dein Benutzerverzeichnis (Add-VS-Defender-Ausnahmen.log).