NeuroAgent

Complete Removal of VinteoDesktop from Enterprise Workstations

Guide to removing all versions of VinteoDesktop via SCCM and manually, with installation of the latest version 4.15.2 and registry cleanup.

Question

How to completely remove all versions of the VinteoDesktop application from all enterprise workstations and install the latest version 4.15.2?

The corporate messenger VinteoDesktop was deployed in the enterprise through System Center Configuration Manager (SCCM) and also manually by the technical support team. It is necessary to remove all previous versions of the VinteoDesktop application, both installed via SCCM and manually, and install the latest version 4.15.2 in the current user’s profile. The complexity lies in the large number of outdated versions often present simultaneously on a single workstation, in various locations (user profile and Program Files), as well as different installation folder names for msi and exe packages.

NeuroAgent

Complete Removal of All VinteoDesktop Versions from Enterprise Workstations and Installation of Version 4.15.2

To completely remove all versions of VinteoDesktop from all enterprise workstations and install the latest version 4.15.2, a combined approach must be used, including automated SCCM scripts for batch processing and manual methods for cleaning up remaining traces. This process should cover removal via SCCM, registry and file cleanup, and installation of the new version only in the current user profile to ensure a clean and consistent deployment.


Table of Contents


Assessment of Current State

Before proceeding to remove all versions of VinteoDesktop, a complete inventory of existing installations on workstations must be conducted. This is critically important as the application was deployed both through SCCM and manually by technical support, leading to multiple versions in various locations.

Typical detection issues:

  • Multiple versions of the application on a single workstation
  • Different installation folder names for msi and exe packages
  • Installations in both Program Files and user profiles
  • Residual files and registry entries after previous removals

To automate the detection process, you can use a PowerShell script that will search for all possible traces of VinteoDesktop:

powershell
# Script to detect all versions of VinteoDesktop
$SearchPaths = @(
    "C:\Program Files*\VinteoDesktop*",
    "C:\Program Files*\Vinteo*",
    "$env:LOCALAPPDATA\VinteoDesktop*",
    "$env:APPDATA\VinteoDesktop*",
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*Vinteo*",
    "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*Vinteo*"
)

foreach ($path in $SearchPaths) {
    if ($path -like "HKLM:*" -or $path -like "HKCU:*") {
        Get-ItemProperty -Path $path | Where-Object { $_.DisplayName -like "*Vinteo*" }
    } else {
        Get-ChildItem -Path $path -ErrorAction SilentlyContinue
    }
}

Important: According to research, when removing applications through SCCM, it’s recommended to first “retire” applications to preserve reporting data before completely removing them from the console source.


Automated Removal Through SCCM

To remove versions of VinteoDesktop installed through SCCM, several approaches should be used depending on how the application was originally deployed.

Using PowerShell Scripts Through SCCM

The most effective method is to create an SCCM package with a PowerShell script that will perform complete removal:

powershell
# Example SCCM script for removing VinteoDesktop
$UninstallCommands = @(
    # Removal via msiexec for msi packages
    "msiexec /x {GUID_of_old_version} /quiet /noreboot",
    # Removal via uninstall.exe for exe packages
    "C:\Program Files\OldVersion\uninstall.exe /silent",
    # Removal from user profile
    "Remove-Item -Path `$env:LOCALAPPDATA\VinteoDesktop* -Recurse -Force -ErrorAction SilentlyContinue"
)

foreach ($cmd in $UninstallCommands) {
    if ($cmd -like "*{GUID_*") {
        # Execute removal via msiexec
        Start-Process -FilePath "msiexec" -ArgumentList "/x $cmd /quiet /noreboot" -Wait
    } elseif ($cmd -like "*uninstall.exe*") {
        # Execute removal via exe
        Start-Process -FilePath $cmd.Replace("C:\Program Files\OldVersion\", "") -ArgumentList "/silent" -Wait
    } else {
        # Remove files
        Invoke-Expression $cmd
    }
}

Using Remove-CMApplication PowerShell Cmdlet

To remove applications directly from the SCCM console, you can use built-in cmdlets:

powershell
# Import SCCM module
Import-Module ($Env:SMS_ADMIN_UI_PATH.Substring(0, $Env:SMS_ADMIN_UI_PATH.Length - 5) + "\ConfigurationManager.psd1")
Set-Location -Path "PS1:\"

# Remove application from SCCM console
Remove-CMApplication -Name "Vinteo Desktop*" -Force

As noted in the official documentation, using the Remove-CMApplication cmdlet removes the application from Configuration Manager so that clients cannot install it again.

Creating Deployment for Removal

  1. Create an SCCM package with the removal script
  2. Create a program with the script launch command
  3. Deploy the program to target systems with “Uninstall” assignment
  4. Use computer collections to filter systems requiring cleanup

Manual Removal and Cleanup

For versions of VinteoDesktop installed manually and for complete cleanup after automated removal, manual procedures must be performed.

Registry Cleanup

After removing the main application components, the registry must be cleaned of remaining entries:

powershell
# Script to clean registry of VinteoDesktop traces
$RegistryPaths = @(
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*Vinteo*",
    "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*Vinteo*",
    "HKLM:\SOFTWARE\Vinteo*",
    "HKCU:\SOFTWARE\Vinteo*",
    "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*Vinteo*",
    "HKCU:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*Vinteo*"
)

foreach ($path in $RegistryPaths) {
    Get-ChildItem -Path $path -ErrorAction SilentlyContinue | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}

Removal of Remaining Files

The application typically leaves traces in the following directories:

powershell
# Paths for cleanup
$FilePaths = @(
    "C:\Program Files*\VinteoDesktop*",
    "C:\Program Files*\Vinteo*",
    "$env:LOCALAPPDATA\VinteoDesktop*",
    "$env:APPDATA\VinteoDesktop*",
    "$env:TEMP\Vinteo*",
    "C:\Windows\Temp\Vinteo*"
)

foreach ($path in $FilePaths) {
    Remove-Item -Path $path -Recurse -Force -ErrorAction SilentlyContinue
}

Using CCMClean for Deep Cleanup

For systems with SCCM client, you can use the CCMClean.exe utility for deep cleanup:

According to research, you can try to uninstall or remove the ConfigMgr Client using the CCMClean.exe tool, which is a command-line utility.

powershell
# Run CCMClean for deep cleanup
Start-Process -FilePath "CCMClean.exe" -ArgumentList "/f /s" -Wait

Installation of Latest Version 4.15.2

After completely cleaning up all previous versions, you can proceed to install the latest version 4.15.2.

Preparing the Installation Package

  1. Download the latest VinteoDesktop version 4.15.2
  2. Create a network folder for storing installation files
  3. Set up read access permissions

Creating SCCM Package for Installation

powershell
# Script for installing VinteoDesktop 4.15.2
$InstallerPath = "\\network\share\VinteoDesktop-4.15.2.exe"
$InstallArgs = "/silent /noreboot /CurrentUser"

Start-Process -FilePath $InstallerPath -ArgumentList $InstallArgs -Wait

Installation Only in Current User Profile

To install the application only for the current user, use the following parameters:

powershell
# Installation for current user
$InstallerPath = "\\network\share\VinteoDesktop-4.15.2.exe"
$InstallArgs = "/silent /noreboot /CurrentUser"

Start-Process -FilePath $InstallerPath -ArgumentList $InstallArgs -Wait -Verb RunAs

Installation Validation

After installation, verify the deployment correctness:

powershell
# Verification of VinteoDesktop 4.15.2 installation
$ExpectedPath = "$env:LOCALAPPDATA\VinteoDesktop\4.15.2"
$ExpectedExe = "$ExpectedPath\VinteoDesktop.exe"

if (Test-Path $ExpectedExe) {
    Write-Host "VinteoDesktop 4.15.2 successfully installed"
    # Check version
    $version = (Get-Item $ExpectedExe).VersionInfo.FileVersion
    Write-Host "Installed version: $version"
} else {
    Write-Host "VinteoDesktop 4.15.2 installation error"
}

Verification and Validation

After completing the removal and installation process, a full verification of all workstations must be conducted.

Automated Status Check

Create a script to check the status of all systems:

powershell
# Script to check VinteoDesktop status
function Test-VinteoDesktopStatus {
    param (
        [string]$ComputerName
    )
    
    $Results = @{
        ComputerName = $ComputerName
        OldVersions = @()
        NewVersionInstalled = $false
        CleanupComplete = $true
    }
    
    # Check for old versions
    $SearchPaths = @(
        "C:\Program Files*\VinteoDesktop*",
        "C:\Program Files*\Vinteo*",
        "$env:LOCALAPPDATA\VinteoDesktop*",
        "$env:APPDATA\VinteoDesktop*"
    )
    
    foreach ($path in $SearchPaths) {
        $oldVersions = Get-ChildItem -Path $path -ErrorAction SilentlyContinue | 
                       Where-Object { $_.Name -notmatch "4.15.2" }
        if ($oldVersions) {
            $Results.OldVersions += $oldVersions.FullName
        }
    }
    
    # Check for new version
    $newVersionPath = "$env:LOCALAPPDATA\VinteoDesktop\4.15.2\VinteoDesktop.exe"
    if (Test-Path $newVersionPath) {
        $Results.NewVersionInstalled = $true
        $Results.Version = (Get-Item $newVersionPath).VersionInfo.FileVersion
    }
    
    return $Results
}

Creating Reports

Generate deployment status reports for management:

powershell
# Generate deployment report
$Computers = Get-Content "C:\Temp\TargetComputers.txt"
$Report = @()

foreach ($computer in $Computers) {
    $status = Test-VinteoDesktopStatus -ComputerName $computer
    $Report += [PSCustomObject]$status
}

$Report | Export-Csv -Path "C:\Temp\VinteoDeploymentReport.csv" -NoTypeInformation

Deployment Optimization

To prevent similar situations in the future, the following practices should be implemented.

Standardizing Deployment Process

  1. Use only SCCM for enterprise applications
  2. Create a single deployment template for VinteoDesktop
  3. Set up automatic updates to the latest versions

Monitoring and Auditing

Implement regular monitoring of installed versions:

powershell
# Daily monitoring of VinteoDesktop versions
$TargetComputers = Get-Content "C:\Temp\TargetComputers.txt"
$ReportPath = "C:\Temp\VinteoVersionCheck_$(Get-Date -Format 'yyyyMMdd').csv"

$Report = foreach ($computer in $TargetComputers) {
    try {
        $session = New-CimSession -ComputerName $computer -ErrorAction Stop
        $installed = Get-CimInstance -CimSession $session -ClassName Win32_Product | 
                     Where-Object { $_.Name -like "*Vinteo*" }
        
        foreach ($app in $installed) {
            [PSCustomObject]@{
                ComputerName = $computer
                Application = $app.Name
                Version = $app.Version
                InstallDate = $app.InstallDate
                Vendor = $app.Vendor
            }
        }
    }
    catch {
        [PSCustomObject]@{
            ComputerName = $computer
            Application = "Error"
            Version = $_.Exception.Message
            InstallDate = $null
            Vendor = $null
        }
    }
}

$Report | Export-Csv -Path $ReportPath -NoTypeInformation

Automatic Updates

Set up automatic SCCM package updates:

powershell
# Script for automatic VinteoDesktop update
$CurrentVersion = "4.15.2"
$NetworkPath = "\\network\share\VinteoDesktop"
$LocalPath = "$env:TEMP\VinteoDesktop_Update"

# Check for new version
$latestInstaller = Get-ChildItem -Path $NetworkPath -Filter "*VinteoDesktop*.exe" | 
                   Sort-Object LastWriteTime | Select-Object -Last 1

if ($latestInstaller -and $latestInstaller.Name -notmatch $CurrentVersion) {
    # Download and install new version
    New-Item -ItemType Directory -Path $LocalPath -Force
    Copy-Item -Path $latestInstaller.FullName -Destination $LocalPath -Force
    
    $installerPath = Join-Path $LocalPath $latestInstaller.Name
    $installArgs = "/silent /noreboot /CurrentUser"
    
    Start-Process -FilePath $installerPath -ArgumentList $installArgs -Wait
    
    # Cleanup
    Remove-Item -Path $LocalPath -Recurse -Force
}

Sources

  1. SCCM Content Library Cleanup Tool - Prajwal Desai
  2. How to Delete an Application in SCCM: 2 Best Methods
  3. Application Removal - Reddit r/SCCM
  4. SCCM Client Complete Uninstall / Remove + Powershell Script
  5. Best Way To Uninstall SCCM Client | Remove ConfigMgr Client HTMD Blog
  6. How to Clean Uninstall Software and Remove Remnant Traces
  7. Remove Leftover Files After Uninstalling Software - How to Guide
  8. Cleaning up after an incomplete uninstallation on a Windows host - Broadcom

Conclusion

To completely remove all versions of VinteoDesktop from all enterprise workstations and install the latest version 4.15.2, the following key steps must be performed:

  1. Assessment of Current State - Conduct a complete inventory of existing installations using detection scripts
  2. Automated Removal Through SCCM - Create and deploy packages for removal through SCCM using PowerShell scripts and Remove-CMApplication cmdlets
  3. Manual Cleanup - Remove remaining files and registry entries using specialized tools like CCMClean
  4. New Version Installation - Deploy VinteoDesktop 4.15.2 only in the current user profile using SCCM
  5. Verification - Conduct a full verification of all systems to confirm successful deployment

It is recommended to implement regular monitoring and automation of updates to prevent similar situations in the future. This will ensure a clean and consistent state of all workstations and simplify management of enterprise applications.

For further process optimization, consider using specialized deployment management tools such as PDQ Deploy for more precise control over enterprise software source.