public/Uninstall-NordVPN.ps1

#Requires -RunAsAdministrator
#Requires -Modules @{ModuleName="msi";ModuleVersion="3.2.3.1024"}
$ErrorActionPreference = "Stop"

function Uninstall-NordVpn
{
    <#
    .SYNOPSIS
        Uninstalls NordVpn app
  
    .PARAMETER displayLog
        Indicates if to display the uninstallation log file
    .PARAMETER cleanInstallDir
        Indicates if to clean leftovers after uninstallation
    #>

    [CmdletBinding()]
    param(
        [switch]$displayLog,
        [switch]$cleanInstallDir
    )

    $existingInstallation = Get-MSIProductInfo -Name "NordVPN"
    if ($existingInstallation -eq $null)
    {
        Write-Host "Existing installation of NordVPN was not found."
        return
    }

    $installLocation = $existingInstallation.InstallLocation
    Write-Host "Found installation of NordVPN $($existingInstallation.ProductVersion)"
    Write-Host "Product code $($existingInstallation.ProductCode)"
    Write-Host "Install location $installLocation"
    Write-Host "Uninstalling..."

    $logFileName = [System.IO.Path]::GetTempFileName()
    $result = Uninstall-MSIProduct -ProductCode $existingInstallation.ProductCode -Log $logFileName

    if ($cleanInstallDir.IsPresent)
    {
        Write-Host "Cleaning install directory"
        Remove-Item $installLocation -Force -ErrorAction Ignore -Recurse
    }

    if ($displayLog.IsPresent)
    {
        Get-Content $logFileName | Write-Host
    }

    Write-Host "NordVPN has been successfully uninstalled" -ForegroundColor Green
}