Skip to main content

Remove Mcafee Software

Summary

This document outlines the process to remove all McAfee products from an endpoint using the ConnectWise RMM implementation of the agnostic script Remove-McAfeeSoftware.

Sample Run

Sample Run 1
Sample Run 2

Dependencies

Remove-McAfeeSoftware

Task Creation

Create a new Script Editor style script in the system to implement this task.
Task Creation Image 1
Task Creation Image 2

Name: Remove McAfee Software
Description: Removes all McAfee products from an endpoint.
Category: Application
Task Creation Image 3

Task

Navigate to the Script Editor section and start by adding a row. You can do this by clicking the Add Row button at the bottom of the script page.
Add Row Image

A blank function will appear.
Blank Function Image

Row 1 Function: PowerShell Script

Search and select the PowerShell Script function.
PowerShell Script Selection 1
PowerShell Script Selection 2

The following function will pop up on the screen:
PowerShell Function Pop Up

Paste in the following PowerShell script and set the Expected time of script execution in seconds to 900 seconds. Click the Save button.

#region Setup - Variables
$ProjectName = 'Remove-McAfeeSoftware'
[Net.ServicePointManager]::SecurityProtocol = [enum]::ToObject([Net.SecurityProtocolType], 3072)
$BaseURL = 'https://file.provaltech.com/repo'
$PS1URL = "$BaseURL/script/$ProjectName.ps1"
$WorkingDirectory = "C:\ProgramData\_automation\script\$ProjectName"
$PS1Path = "$WorkingDirectory\$ProjectName.ps1"
$WorkingPath = $WorkingDirectory
$LogPath = "$WorkingDirectory\$ProjectName-log.txt"
$ErrorLogPath = "$WorkingDirectory\$ProjectName-Error.txt"
#endregion
#region Setup - Folder Structure
New-Item -Path $WorkingDirectory -ItemType Directory -ErrorAction SilentlyContinue | Out-Null
$response = Invoke-WebRequest -Uri $PS1URL -UseBasicParsing
if (($response.StatusCode -ne 200) -and (!(Test-Path -Path $PS1Path))) {
throw "No pre-downloaded script exists and the script '$PS1URL' failed to download. Exiting."
} elseif ($response.StatusCode -eq 200) {
Remove-Item -Path $PS1Path -ErrorAction SilentlyContinue
[System.IO.File]::WriteAllLines($PS1Path, $response.Content)
}
if (!(Test-Path -Path $PS1Path)) {
throw 'An error occurred and the script was unable to be downloaded. Exiting.'
}
#endregion
#region Execution
if ($Parameters) {
& $PS1Path @Parameters
} else {
& $PS1Path
}
#endregion
#region log verification
if ( !(Test-Path $LogPath) ) {
throw 'PowerShell Failure. A Security application seems to have restricted the execution of the PowerShell Script.'
}
if ( Test-Path $ErrorLogPath ) {
$ErrorContent = ( Get-Content -Path $ErrorLogPath )
throw $ErrorContent
}
Get-Content -Path $LogPath
#endregion

PowerShell Script Image

Row 2 Function: Script Log

Add a new row by clicking the Add Row button.
Add Row Image 2

A blank function will appear.
Blank Function Image 2

Search and select the Script Log function.
Script Log Selection

The following function will pop up on the screen:
Script Log Pop Up

In the script log message, simply type %Output% and click the Save button.
Save Script Log

Click the Save button at the top-right corner of the screen to save the script.
Save Script Button

Completed Script

Completed Script

Output

  • Script log