通过PowerShell查询并排除SQL相关进程
$sqlProcesses = Get-Process | Where-Object { $_.Path -match "sql" } | select-Object -Unique Path
foreach ($proc in $sqlProcesses) {
$path = $proc.Path
if (-not [string]::IsNullOrEmpty($path)) {
# 添加入站规则
New-NetFirewallRule -DisplayName "Allow SQL Inbound - $($path.Split('\')[-1])" `
-Direction Inbound -Program $path -Action Allow
# 添加出站规则
New-NetFirewallRule -DisplayName "Allow SQL Outbound - $($path.Split('\')[-1])" `
-Direction Outbound -Program $path -Action Allow
}
}
#统一命令
$processname = "commvault"
$exchProcesses = Get-Process | Where-Object { $_.Path -match $processname } | Select-Object -ExpandProperty Path -Unique
foreach ($process in $exchProcesses) {
Add-MpPreference -ExclusionProcess $process
Write-Host "已排除进程: $process"
}
$exchProcesses = Get-Process | Where-Object { $_.Path -match $processname } | select-Object -Unique Path
foreach ($proc in $exchProcesses) {
$path = $proc.Path
if (-not [string]::IsNullOrEmpty($path)) {
New-NetFirewallRule -DisplayName "Allow $processname Inbound - $($path.Split('\')[-1])" `
-Direction Inbound -Program $path -Action Allow
New-NetFirewallRule -DisplayName "Allow $processname Outbound - $($path.Split('\')[-1])" `
-Direction Outbound -Program $path -Action Allow
}
}