Иногда случается, что службы SQL Server могут по-прежнему существовать на сервере, но связанные записи SQL Server отсутствуют в «Программах и компонентах». Это может происходить из-за отсутствующих или повреждённых записей реестра, неполного удаления или неудачных действий по установке исправлений.
Для получения информации об удалении из реестра можно использовать пример следующего ниже сценария PowerShell:
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*, `
HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Where-Object { $_.DisplayName -like “*SQL Server 2016*” } |
Select-Object DisplayName, UninstallString
Решение
Этот сценарий помогает получить UninstallString для компонентов SQL Server напрямую из реестра.
Во многих случаях команда удаления может содержать:
/I
Для удаления её следует заменить на:
/X
Пример:
MsiExec.exe /x
Это принудительно запускает операцию удаления вместо запуска установщика в режиме обслуживания.
Важные замечания
Этот подход следует рассматривать главным образом для случаев удалённой поддержки или аварийной очистки. При ручной очистке компонентов SQL Server с помощью методов удаления на основе реестра всегда существует вероятность появления проблем в будущем. Рекомендуемым и самым безопасным подходом всегда является пересоздание сервера, если метаданные установки SQL Server или записи реестра сильно повреждены. Используйте этот метод только в крайнем случае и на свой страх и риск.
Итог
Когда записи SQL Server отсутствуют в «Программах и компонентах», сведения об удалении всё ещё можно получить из реестра Windows с помощью PowerShell. Замена /I на /X в команде удаления может помочь удалить мусорные компоненты SQL Server. Однако, поскольку этот метод полагается на очистку на основе реестра, его следует использовать с осторожностью только в исключительных сценариях, а пересоздание сервера остаётся предпочтительным долгосрочным решением.

Комментариев нет:
Отправить комментарий