<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Battle-net - Custom Software removal]]></title><description><![CDATA[<p dir="auto">Because the <a href="http://Battle.net" rel="nofollow ugc">Battle.net</a> uninstall string does not support silent parameters, we created a PowerShell script that removes the application completely, including any leftover files and registry entries.</p>
<h6><strong>1. Save the removal script as a .ps1 file, for example <code>remove-battlenet.ps1</code></strong></h6>
<pre><code>$processNames = @("Agent", "Battle.net")

$pathsToRemove = @(
    "$env:LocalAppData\Battle.net",
    "$env:LocalAppData\Blizzard Entertainment",
    "$env:AppData\Battle.net",
    "$env:ProgramData\Battle.net",
    "${env:ProgramFiles(x86)}\Battle.net",
    "$env:ALLUSERSPROFILE\Microsoft\Windows\Start Menu\Programs\Battle.net*",
    "$env:PUBLIC\Desktop\Battle.net.lnk"
)

$registryPaths = @(
    "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Battle.net"
)

function Test-BattleNetPresent {
    foreach ($proc in $processNames) {
        if (Get-Process -Name $proc -ErrorAction SilentlyContinue) {
            return $true
        }
    }

    foreach ($path in $pathsToRemove) {
        if (Test-Path $path) {
            return $true
        }
    }

    foreach ($regPath in $registryPaths) {
        if (Test-Path $regPath) {
            return $true
        }
    }

    return $false
}

function Remove-PathIfExists {
    param (
        [string]$Path
    )

    if (Test-Path $Path) {
        Remove-Item $Path -Recurse -Force -ErrorAction SilentlyContinue
        Write-Host "Removed: $Path"
    }
    else {
        Write-Host "Not found: $Path"
    }
}

function Remove-RegistryIfExists {
    param (
        [string]$RegistryPath
    )

    if (Test-Path $RegistryPath) {
        Remove-Item $RegistryPath -Recurse -Force -ErrorAction SilentlyContinue
        Write-Host "Removed registry key: $RegistryPath"
    }
    else {
        Write-Host "Registry key not found: $RegistryPath"
    }
}

if (-not (Test-BattleNetPresent)) {
    Write-Host "Battle.net is not installed or no related files were found. Nothing to do."
    exit 0
}

Write-Host "Battle.net detected. Starting cleanup..."

foreach ($proc in $processNames) {
    $running = Get-Process -Name $proc -ErrorAction SilentlyContinue
    if ($running) {
        Stop-Process -Name $proc -Force -ErrorAction SilentlyContinue
        Write-Host "Stopped process: $proc"
    }
    else {
        Write-Host "Process not running: $proc"
    }
}

foreach ($path in $pathsToRemove) {
    Remove-PathIfExists -Path $path
}

foreach ($regPath in $registryPaths) {
    Remove-RegistryIfExists -RegistryPath $regPath
}

Write-Host "Cleanup complete."
exit 0
</code></pre>
<p dir="auto">This PowerShell script:</p>
<ul>
<li>stops Battle.net-related processes if they are running</li>
<li>checks whether <a href="http://Battle.net" rel="nofollow ugc">Battle.net</a> or related leftovers exist</li>
<li>removes known <a href="http://Battle.net" rel="nofollow ugc">Battle.net</a> folders</li>
<li>removes Start Menu and Desktop shortcuts</li>
<li>removes the uninstall registry key</li>
<li>exits cleanly if nothing is found</li>
</ul>
<h6><strong>2. Create a tag for <a href="http://Battle.net" rel="nofollow ugc">Battle.net</a> hosts</strong></h6>
<p dir="auto">For easier targeting, you can create a dedicated tag for hosts with <a href="http://Battle.net" rel="nofollow ugc">Battle.net</a> installed<br />
<a href="https://corporate.vulndetect.com/#/tags" rel="nofollow ugc">https://corporate.vulndetect.com/#/tags</a><br />
<img src="/assets/uploads/files/1775032997452-4d4acc09-ef4a-4620-a52e-4034aed4da28-image.jpeg" alt="4d4acc09-ef4a-4620-a52e-4034aed4da28-image.jpeg" class=" img-fluid img-markdown" /></p>
<h6><strong>3. Filter hosts from the Applications page</strong></h6>
<p dir="auto">From the Applications page, filter the hosts with <a href="http://Battle.net" rel="nofollow ugc">Battle.net</a> installed and assign the tag to them.<br />
<a href="https://corporate.vulndetect.com/#/applications" rel="nofollow ugc">https://corporate.vulndetect.com/#/applications</a></p>
<h6><strong>4. Create the Custom Software deployment</strong></h6>
<p dir="auto">Create the custom configuration and upload the removal script as a <code>.ps1</code> file<br />
<a href="https://corporate.vulndetect.com/#/deployment/custom-create-job" rel="nofollow ugc">https://corporate.vulndetect.com/#/deployment/custom-create-job</a><br />
<img src="/assets/uploads/files/1775033094073-e5283feb-0ca9-435f-859c-dbaafee9b976-image.jpeg" alt="e5283feb-0ca9-435f-859c-dbaafee9b976-image.jpeg" class=" img-fluid img-markdown" /></p>
<h6><strong>5. Deploy the Custom Deployment Job to the target tag</strong></h6>
<p dir="auto"><img src="/assets/uploads/files/1775033751557-286285db-c6c8-406a-8b91-15c81c5823c5-image.jpeg" alt="286285db-c6c8-406a-8b91-15c81c5823c5-image.jpeg" class=" img-fluid img-markdown" /><br />
<em>Run a manual inspection after deployment if you want the results to appear immediately.</em></p>
]]></description><link>https://vulndetect.org/topic/2766/battle-net-custom-software-removal</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 11:37:20 GMT</lastBuildDate><atom:link href="https://vulndetect.org/topic/2766.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Apr 2026 08:58:15 GMT</pubDate><ttl>60</ttl></channel></rss>