Initial commit
This commit is contained in:
63
scripts/jriver-exclusions.ps1
Normal file
63
scripts/jriver-exclusions.ps1
Normal file
@@ -0,0 +1,63 @@
|
||||
<#
|
||||
.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 ==="
|
||||
Reference in New Issue
Block a user