НейроАгент

Полное удаление VinteoDesktop с рабочих станций предприятия

Руководство по удалению всех версий VinteoDesktop через SCCM и вручную, с установкой последней версии 4.15.2 и очисткой реестра.

Вопрос

Как полностью удалить все версии приложения VinteoDesktop со всех рабочих станций предприятия и установить последнюю версию 4.15.2?

Корпоративный мессенджер VinteoDesktop был развернут на предприятии через System Center Configuration Manager (SCCM) и также вручную силами технической поддержки. Требуется удалить все предыдущие версии приложения VinteoDesktop, установленные как через SCCM, так и вручную, и установить последнюю версию 4.15.2 в профиль текущего пользователя. Сложность заключается в большом количестве устаревших версий, часто присутствующих одновременно на одной рабочей станции, в различных расположениях (профиль пользователя и Program Files), а также в разных именах папок установки для пакетов msi и exe.

НейроАгент

Для полного удаления всех версий VinteoDesktop со всех рабочих станций предприятия и установки последней версии 4.15.2 необходимо использовать комбинированный подход, включающий автоматизированные SCCM-скрипты для пакетной обработки и ручные методы для очистки оставшихся следов. Этот процесс должен охватить удаление через SCCM, очистку реестра и файлов, а также установку новой версии только в профиль текущего пользователя для обеспечения чистого и консистентного развертывания.


Содержание


Оценка текущего состояния

Прежде чем приступить к удалению всех версий VinteoDesktop, необходимо провести полную инвентаризацию существующих установок на рабочих станциях. Это критически важно, поскольку приложение было развернуто как через SCCM, так и вручную силами технической поддержки, что привело к множественным версиям в различных расположениях.

Типичные проблемы обнаружения:

  • Несколько версий приложения на одной рабочей станции
  • Различные имена папок установки для msi и exe пакетов
  • Установки как в Program Files, так и в пользовательских профилях
  • Остаточные файлы и записи реестра после предыдущих удалений

Для автоматизации процесса обнаружения можно использовать PowerShell-скрипт, который будет искать все возможные следы VinteoDesktop:

powershell
# Скрипт для обнаружения всех версий 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
    }
}

Важно: Согласно исследованиям, при удалении приложений через SCCM рекомендуется сначала “вывести на пенсию” (retire) приложения, чтобы сохранить данные отчетности, прежде чем полностью удалять их из консоли источник.


Автоматизированное удаление через SCCM

Для удаления версий VinteoDesktop, установленных через SCCM, следует использовать несколько подходов в зависимости от того, как изначально разворачивалось приложение.

Использование PowerShell-скриптов через SCCM

Наиболее эффективным методом является создание SCCM-пакета с PowerShell-скриптом, который будет выполнять полное удаление:

powershell
# Пример SCCM-скрипта для удаления VinteoDesktop
$UninstallCommands = @(
    # Удаление через msiexec для msi пакетов
    "msiexec /x {GUID_старой_версии} /quiet /noreboot",
    # Удаление через uninstall.exe для exe пакетов
    "C:\Program Files\OldVersion\uninstall.exe /silent",
    # Удаление из пользовательского профиля
    "Remove-Item -Path `$env:LOCALAPPDATA\VinteoDesktop* -Recurse -Force -ErrorAction SilentlyContinue"
)

foreach ($cmd in $UninstallCommands) {
    if ($cmd -like "*{GUID_*") {
        # Выполнение удаления через msiexec
        Start-Process -FilePath "msiexec" -ArgumentList "/x $cmd /quiet /noreboot" -Wait
    } elseif ($cmd -like "*uninstall.exe*") {
        # Выполнение удаления через exe
        Start-Process -FilePath $cmd.Replace("C:\Program Files\OldVersion\", "") -ArgumentList "/silent" -Wait
    } else {
        # Удаление файлов
        Invoke-Expression $cmd
    }
}

Использование Remove-CMApplication PowerShell cmdlet

Для удаления приложений непосредственно из SCCM консоли можно использовать встроенные cmdlets:

powershell
# Импорт модуля SCCM
Import-Module ($Env:SMS_ADMIN_UI_PATH.Substring(0, $Env:SMS_ADMIN_UI_PATH.Length - 5) + "\ConfigurationManager.psd1")
Set-Location -Path "PS1:\"

# Удаление приложения из SCCM консоли
Remove-CMApplication -Name "Vinteo Desktop*" -Force

Как указано в официальной документации, использование Remove-CMApplication cmdlet удаляет приложение из Configuration Manager, чтобы клиенты не могли его установить снова.

Создание развертывания для удаления

  1. Создайте SCCM-пакет со скриптом удаления
  2. Создайте программу с командой запуска скрипта
  3. Разверните программу на целевых системах с назначением “Удалить”
  4. Используйте коллекции компьютеров для фильтрации систем, требующих очистки

Ручное удаление и очистка

Для версий VinteoDesktop, установленных вручную, и для полной очистки после автоматического удаления необходимо выполнить ручные процедуры.

Очистка реестра

После удаления основных компонентов приложения необходимо почистить реестр от оставшихся записей:

powershell
# Скрипт для очистки реестра от следов VinteoDesktop
$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
}

Удаление оставшихся файлов

Обычно приложение оставляет следы в следующих директориях:

powershell
# Пути для очистки
$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
}

Использование CCMClean для глубокой очистки

Для систем с SCCM клиентом можно использовать утилиту CCMClean.exe для глубокой очистки:

Согласно исследованиям, можно попробовать удалить или удалить ConfigMgr Client с помощью инструмента CCMClean.exe, который является командной строкой.

powershell
# Запуск CCMClean для глубокой очистки
Start-Process -FilePath "CCMClean.exe" -ArgumentList "/f /s" -Wait

Установка последней версии 4.15.2

После полной очистки всех предыдущих версий можно приступить к установке последней версии 4.15.2.

Подготовка установочного пакета

  1. Скачайте последнюю версию VinteoDesktop 4.15.2
  2. Создайте сетевую папку для хранения установочных файлов
  3. Настройте права доступа для чтения

Создание SCCM-пакета для установки

powershell
# Скрипт для установки VinteoDesktop 4.15.2
$InstallerPath = "\\network\share\VinteoDesktop-4.15.2.exe"
$InstallArgs = "/silent /noreboot /CurrentUser"

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

Установка только в профиль текущего пользователя

Чтобы установить приложение только для текущего пользователя, используйте следующие параметры:

powershell
# Установка для текущего пользователя
$InstallerPath = "\\network\share\VinteoDesktop-4.15.2.exe"
$InstallArgs = "/silent /noreboot /CurrentUser"

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

Валидация установки

После установки проверьте корректность развертывания:

powershell
# Проверка установки VinteoDesktop 4.15.2
$ExpectedPath = "$env:LOCALAPPDATA\VinteoDesktop\4.15.2"
$ExpectedExe = "$ExpectedPath\VinteoDesktop.exe"

if (Test-Path $ExpectedExe) {
    Write-Host "VinteoDesktop 4.15.2 успешно установлен"
    # Проверка версии
    $version = (Get-Item $ExpectedExe).VersionInfo.FileVersion
    Write-Host "Установленная версия: $version"
} else {
    Write-Host "Ошибка установки VinteoDesktop 4.15.2"
}

Проверка и верификация

После завершения процесса удаления и установки необходимо провести полную проверку всех рабочих станций.

Автоматизированная проверка состояния

Создайте скрипт для проверки состояния всех систем:

powershell
# Скрипт для проверки состояния VinteoDesktop
function Test-VinteoDesktopStatus {
    param (
        [string]$ComputerName
    )
    
    $Results = @{
        ComputerName = $ComputerName
        OldVersions = @()
        NewVersionInstalled = $false
        CleanupComplete = $true
    }
    
    # Проверка старых версий
    $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
        }
    }
    
    # Проверка новой версии
    $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
}

Создание отчетов

Генерируйте отчеты о состоянии развертывания для руководства:

powershell
# Генерация отчета о развертывании
$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

Оптимизация развертывания

Для предотвращения подобных ситуаций в будущем рекомендуется внедрить следующие практики.

Стандартизация процесса развертывания

  1. Используйте только SCCM для корпоративных приложений
  2. Создайте единый шаблон развертывания для VinteoDesktop
  3. Настройте автоматическое обновление до последних версий

Мониторинг и аудит

Внедрите регулярный мониторинг установленных версий:

powershell
# Ежедневный мониторинг версий VinteoDesktop
$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

Автоматическое обновление

Настройте автоматическое обновление SCCM пакетов:

powershell
# Скрипт для автоматического обновления VinteoDesktop
$CurrentVersion = "4.15.2"
$NetworkPath = "\\network\share\VinteoDesktop"
$LocalPath = "$env:TEMP\VinteoDesktop_Update"

# Проверка наличия новой версии
$latestInstaller = Get-ChildItem -Path $NetworkPath -Filter "*VinteoDesktop*.exe" | 
                   Sort-Object LastWriteTime | Select-Object -Last 1

if ($latestInstaller -and $latestInstaller.Name -notmatch $CurrentVersion) {
    # Загрузка и установка новой версии
    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
    
    # Очистка
    Remove-Item -Path $LocalPath -Recurse -Force
}

Источники

  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

Заключение

Для полного удаления всех версий VinteoDesktop со всех рабочих станций предприятия и установки последней версии 4.15.2 необходимо выполнить следующие ключевые шаги:

  1. Оценка текущего состояния - проведите полную инвентаризацию существующих установок с использованием скриптов обнаружения
  2. Автоматизированное удаление через SCCM - создайте и разверните пакеты для удаления через SCCM с использованием PowerShell скриптов и Remove-CMApplication cmdlet
  3. Ручная очистка - удалите оставшиеся файлы и записи реестра с помощью специализированных инструментов вроде CCMClean
  4. Установка новой версии - разверните VinteoDesktop 4.15.2 только в профиль текущего пользователя с использованием SCCM
  5. Верификация - проведите полную проверку всех систем для подтверждения успешного развертывания

Рекомендуется внедрить регулярный мониторинг и автоматизацию обновлений для предотвращения подобных ситуаций в будущем. Это обеспечит чистое и консистентное состояние всех рабочих станций и упростит управление корпоративными приложениями.

Для дальнейшего оптимизации процесса рассмотрите возможность использования специализированных инструментов управления развертываниями, таких как PDQ Deploy, для более точного контроля над корпоративным программным обеспечением источник.