CmdLets/Add-AntivirusExclusions.ps1

Function Add-AntivirusExclusions 
 {

    [CmdletBinding()]
    param(
        [Parameter(Mandatory=$False)]$FSLogixPaths
    )
    Import-Module Defender
    $Exclusions = @()
    $Paths = @(
        "C:\Program Files (x86)\Common Files\Omnissa\DeviceRedirectionCommon\ftnlping.exe",
        "C:\Program Files (x86)\Common Files\Omnissa\USB\\omnissa-usbarbitrator64.exe",
        "C:\Program Files\Common Files\Omnissa\DeviceRedirectionCommon\ftnlping.exe",
        "C:\Program Files\Common Files\Omnissa\DeviceRedirectionCommon\ftnlsv.exe",
        "C:\Program Files\Common Files\Omnissa\ScannerRedirection\diagutil32.exe",
        "C:\Program Files\Common Files\Omnissa\ScannerRedirection\diagutil64.exe",
        "C:\Program Files\Common Files\Omnissa\ScannerRedirection\ftscansvchv.exe",
        "C:\Program Files\Common Files\Omnissa\ScannerRedirection\scanmd.exe",
        "C:\Program Files\Common Files\Omnissa\ScannerRedirection\scanner.exe",
        "C:\Program Files\Common Files\Omnissa\SerialPortRedirection\Agent\hznsprrdctl.exe",
        "C:\Program Files\Common Files\Omnissa\SerialPortRedirection\Agent\hznsprrdp.exe",
        "C:\Program Files\Common Files\Omnissa\SerialPortRedirection\Agent\hznsprrdpsrv.exe",
        "C:\Program Files\Common Files\Omnissa\SerialPortRedirection\Agent\hznsprrdpUI.exe",
        "C:\Program Files\Common Files\Omnissa\Teradici PCoIP Server\x64\\pcoip_server_win32.exe",
        "C:\Program Files\Omnissa\Horizon Agents\Horizon Agent\bin\\SecurityGateway.exe",
        "C:\Program Files\Omnissa\Horizon Agents\Horizon Agent\bin\\tsdrvdisvc.dll",
        "C:\Program Files\Omnissa\Horizon Agents\Horizon Agent\bin\\ws_scripthost.exe",
        "C:\Program Files\Omnissa\Horizon Agents\Horizon Agent\bin\\wsnm.exe",
        "C:\Program Files\Omnissa\Horizon Agents\Horizon Agent\bin\\wsnm_jms.exe",
        "C:\Program Files\Omnissa\Horizon Agents\Horizon Agent\Blast\\VMBlastS.exe",
        "C:\Program Files\Omnissa\Horizon Agents\Horizon Agent\Blast\\VMBlastW.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\VMBlastS.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\VMBlastW.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\tsdrvdisvc.dll",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\ws_scripthost.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\wsnm_jms.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\wssm.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\UrlRedirection\\horizon-url-filtering-plugin.dll",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\UrlRedirection\\horizon-url-filtering-plugin-x64.dll",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\UrlRedirection\\horizon-url-protocol-intercept.dll",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\UrlRedirection\\horizon-url-protocol-launch-helper.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\bin\UrlRedirection\x64\\horizon-url-protocol-intercept.dll",
        "C:\Program Files\Omnissa\Horizon\Agent\DCT\hzdct.exe",
        "C:\Program Files\Omnissa\Horizon\Agent\DCT\ws_diag.exe",
        "C:\Program Files\Omnissa\Horizon\Instant Clone Agent\omnissa-ic-ga.exe",
        "C:\Program Files\Immidio\Flex Profiles\FlexEngine.exe",
        "C:\Program Files\Immidio\Flex Profiles\FlexService.exe",
        "C:\Program Files\Immidio\Flex Profiles\Flex+ Self-Support.exe"
    )
    ForEach ($Path in $Paths) {
        Write-Verbose "Testing: $Path"
        $File = Get-Item $Path -ErrorAction SilentlyContinue
        if ($File) {
            Write-Verbose "`tAdding to Exclusions"
            $Exclusions += @{ ExclusionProcess = $File.FullName }
        }
    }

    If (Test-Path "C:\Program Files (x86)\CloudVolumes\Agent\svservice.exe") {
        Write-Verbose "Adding CloudVolumes Exclusions"
        $Exclusions = $Exclusions + @(
            @{ ExclusionPath = "C:\Program Files (x86)\CloudVolumes\Agent\svservice.exe" },
            @{ ExclusionPath = "C:\Program Files\Omnissa\AppVolumes\svservice.exe" },
            @{ ExclusionPath = "C:\Program Files\Omnissa\AppVolumes\Agent\svservice.exe" },
            @{ ExclusionPath = "C:\SnapVolumesTemp\svservice.exe" },
            @{ ExclusionPath = "C:\SVROOT\svservice.exe" },
            @{ ExclusionPath = "C:\{00000000-0000-0000-0000-000000000000}\SVROOT\svservice.exe" }
        )
    }

    If ($FSLogixPaths) {
        Write-Verbose "Adding FSLogix Exclusions"
        $Exclusions = $Exclusions + @(
            @{ ExclusionPath = "%TEMP%\*\*.VHD" },
            @{ ExclusionPath = "%TEMP%\*\*.VHDX" },
            @{ ExclusionPath = "%Windir%\TEMP\*\*.VHD" },
            @{ ExclusionPath = "%Windir%\TEMP\*\*.VHDX" },
            @{ ExclusionPath = "%ProgramFiles%\FSLogix\Apps\frxdrv.sys" },
            @{ ExclusionPath = "%ProgramFiles%\FSLogix\Apps\frxdrvvt.sys" },
            @{ ExclusionPath = "%ProgramFiles%\FSLogix\Apps\frxccd.sys" },
            @{ ExclusionPath = "%ProgramFiles%\FSLogix\Apps\frxccd.exe" },
            @{ ExclusionProcess = "%ProgramFiles%\FSLogix\Apps\frxccds.exe" },
            @{ ExclusionProcess = "%ProgramFiles%\FSLogix\Apps\frxsvc.exe" }
        )

        $FSLogixPaths | ForEach-Object {
            $Exclusions = $Exclusions + @(
                @{ ExclusionPath = (Join-Path $_ "*\*.VHD") },
                @{ ExclusionPath = (Join-Path $_ "*\*.VHD.lock") },
                @{ ExclusionPath = (Join-Path $_ "*\*.VHD.meta") },
                @{ ExclusionPath = (Join-Path $_ "*\*.VHD.metadata") },
                @{ ExclusionPath = (Join-Path $_ "*\*.VHDX") },
                @{ ExclusionPath = (Join-Path $_ "*\*.VHDX.lock") },
                @{ ExclusionPath = (Join-Path $_ "*\*.VHDX.meta") },
                @{ ExclusionPath = (Join-Path $_ "*\*.VHDX.metadata") }
            )
        }
    }
    
    $Exclusions | ForEach-Object { 
        Write-Host "Adding Exclusion: $($_.Values)"
        Add-MpPreference @_ 
    }

}