64 lines
1.8 KiB
PowerShell
64 lines
1.8 KiB
PowerShell
<#
|
||
.SYNOPSIS
|
||
Adds JRiver Media Center folders & processes to Windows Defender exclusions
|
||
|
||
.DESCRIPTION
|
||
powershell -ExecutionPolicy Bypass -File .\jriver-exclusions.ps1
|
||
#>
|
||
|
||
function Add-ItemExclusion {
|
||
param(
|
||
[string]$Item,
|
||
[ValidateSet('Path','Process')]$Type
|
||
)
|
||
try {
|
||
if ($Type -eq 'Path') {
|
||
Add-MpPreference -ExclusionPath $Item -ErrorAction Stop
|
||
} else {
|
||
Add-MpPreference -ExclusionProcess $Item -ErrorAction Stop
|
||
}
|
||
Write-Host "Added ${Type}: ${Item}"
|
||
}
|
||
catch {
|
||
Write-Warning "Skipped/failed ${Type}: ${Item} - $_"
|
||
}
|
||
}
|
||
|
||
Write-Host "Configuring JRiver Media Center (folders via wildcards, processes version 30–50)"
|
||
|
||
# Folder exclusions (wildcards cover all files inside)
|
||
$folders = @(
|
||
'C:\Program Files\J River',
|
||
'C:\Program Files\J River\Media Center *',
|
||
"$Env:APPDATA\J River",
|
||
"$Env:APPDATA\J River\Media Center *"
|
||
)
|
||
|
||
# Process exclusions (explicit versions 30–50)
|
||
$processes = @()
|
||
for ($v = 30; $v -le 50; $v++) {
|
||
$processes += "MC$v.exe"
|
||
$processes += "Media Center $v.exe"
|
||
}
|
||
# Add static processes that are version-independent
|
||
$processes += @('JRService.exe','JRWorker.exe','JRWeb.exe')
|
||
|
||
# Add exclusions
|
||
Write-Host "=== Adding folder exclusions ==="
|
||
$folders | ForEach-Object { Add-ItemExclusion -Item $_ -Type Path }
|
||
|
||
Write-Host "=== Adding process exclusions ==="
|
||
$processes | Sort-Object -Unique | ForEach-Object { Add-ItemExclusion -Item $_ -Type Process }
|
||
|
||
# Validation step
|
||
$pref = Get-MpPreference
|
||
Write-Host ''
|
||
Write-Host "=== Current Defender exclusions ==="
|
||
Write-Host "Paths:"
|
||
$pref.ExclusionPath | ForEach-Object { Write-Host " $_" }
|
||
Write-Host ''
|
||
Write-Host "Processes:"
|
||
$pref.ExclusionProcess | ForEach-Object { Write-Host " $_" }
|
||
Write-Host ''
|
||
Write-Host "=== Validation complete ==="
|