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.
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
- Automated Removal Through SCCM
- Manual Removal and Cleanup
- Installation of Latest Version 4.15.2
- Verification and Validation
- Deployment Optimization
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:
# 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:
# 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:
# 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-CMApplicationcmdlet removes the application from Configuration Manager so that clients cannot install it again.
Creating Deployment for Removal
- Create an SCCM package with the removal script
- Create a program with the script launch command
- Deploy the program to target systems with “Uninstall” assignment
- 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:
# 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:
# 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.
# 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
- Download the latest VinteoDesktop version 4.15.2
- Create a network folder for storing installation files
- Set up read access permissions
Creating SCCM Package for Installation
# 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:
# 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:
# 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:
# 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:
# 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
- Use only SCCM for enterprise applications
- Create a single deployment template for VinteoDesktop
- Set up automatic updates to the latest versions
Monitoring and Auditing
Implement regular monitoring of installed versions:
# 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:
# 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
- SCCM Content Library Cleanup Tool - Prajwal Desai
- How to Delete an Application in SCCM: 2 Best Methods
- Application Removal - Reddit r/SCCM
- SCCM Client Complete Uninstall / Remove + Powershell Script
- Best Way To Uninstall SCCM Client | Remove ConfigMgr Client HTMD Blog
- How to Clean Uninstall Software and Remove Remnant Traces
- Remove Leftover Files After Uninstalling Software - How to Guide
- 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:
- Assessment of Current State - Conduct a complete inventory of existing installations using detection scripts
- Automated Removal Through SCCM - Create and deploy packages for removal through SCCM using PowerShell scripts and Remove-CMApplication cmdlets
- Manual Cleanup - Remove remaining files and registry entries using specialized tools like CCMClean
- New Version Installation - Deploy VinteoDesktop 4.15.2 only in the current user profile using SCCM
- 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.