通常 Microsoft SQL Server をアンインストールする場合、コントロールパネルから削除する。
それでは完全に削除できないので、完全に削除するにはその後手動で削除する必要がある。
今回はマイクロソフトの公式サイトを見ながら、SQL Server 2019 をアンインストールしてみた。公式サイトは内容によって直訳だったりして分かりずらいところがあるので、画面を交えて紹介しよう。
SQL Server 2005 以降であればほぼ同じ操作と思われる。
ただし、環境によって必ずしも完全にアンインストールできるわけではない。レジストリもいじくるのでやるなら自己責任で。

1.準備

SQL Server関連のソフトをコントロールパネルから全てアンインストールした後、OSを再起動してからの操作になる。

今回リモートデスクトップを使ってクライアントPCからサーバに対しアンインストールを行った。
まず、ターミナルセッションやリモートデスクトップはすべて切断する。今回は使っていないので関係ない。
作業はローカルの Administrator 権限のあるユーザーで行う。
ソフトのアンインストールに影響を与えるウイルス対策ソフトやセキュリティソフト、暗号化ソフト等のサービスを全て停止する。

2.MsiExec.exe /x によるコンポーネントアンインストール

ファイル名を指定して実行で「regedit」でレジストリエディタを開く。

警告が出るが「はい」
(レジストリは誤って操作すると致命的な問題が発生する恐れがあるので注意)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

を開く。

左側のウィンドウで、各 GUID をクリックし、クリックした各 GUID について、右側のウィンドウで DisplayName 値のデータを確認し、「SQL」という文言が含まれているものをみつける。メモ帳にコピペしておく。
(右クリック「キー名のコピー」でコピーできる)

メモ帳

同様に以下のキーを展開し、DisplayName 値に"SQL" を含む GUID をメモ帳にコピペしておく。
(右クリック「キー名のコピー」でコピーできる)

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

今回は該当は無かった。

コマンドプロンプトを右クリックして「管理者として実行」、以下のコマンドを実行してコンポーネントのアンインストールを行う。(コマンドプロンプトは「Windowsシステムツール」にある)

msiexec /x GUID

(例) msiexec /x {95F92233-325F-4722-B43B-3F736459DA3F}

エンターキーを押して「はい」

「はい」

今回3個のファイルについて処理をした。

依存関係に関するエラーが生じた場合は、エラー内容にしたがって削除する順序を変更する。

その後、レジストリの対象フォルダを最新の状態に更新し、上記のキーが存在しないことを確認する。

3.GAC の削除

次の内容のバッチ ファイルを使用し、アセンブリを削除する。
※改行がないように注意してください。

REM =======================
if exist "%windir%\assembly\GAC*SQLServer" del /s /q /f "%windir%\assembly\GAC*SQLServer"
if exist "%windir%\assembly\GAC_32*SQLServer" del /s /q /f "%windir%\assembly\GAC_32*SQLServer"
if exist "%windir%\assembly\GAC_64*SQLServer" del /s /q /f "%windir%\assembly\GAC_64*SQLServer"
if exist "%windir%\assembly\GAC_MSIL*SQLServer" del /s /q /f "%windir%\assembly\GAC_MSIL*SQLServer"
REM =======================

メモ帳で作成し、拡張子を「.bat」にした。

ダブルクリックして「はい」でバッチファイルが処理を行う。

4.レジストリ削除

現時点で残っているレジストリを削除します。

以下のキーを展開し、「Microsoft SQL」 または「MSSQL」 を含むレジストリを確認する。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft

(右クリック「キー名のコピー」でコピーできる)
メモ帳にコピペ

今回3つ見つかった。

コマンドプロンプトを管理者として実行し、以下のコマンドを実行してレジストリを削除する。
(レジストリは誤って操作すると致命的な問題が発生する恐れがあるので注意)

reg delete “レジストリキー”

例) reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server"

reg delete "レジストリキー" /f
で強制削除される。

また以下のキーを展開し、ProductName 値に “SQL Server” を含むキーが存在しないことを確認します。

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products

ProductName 値に「SQL Server」を含むキーが存在している場合は、再度上の2番から確認をする必要がある。
今回はなかった。

5.フォルダ・ファイルの削除

次の内容のバッチ ファイルを使用し、ドライブから SQL Server 関連ファイルを削除する。

ファイルが使用中の場合は OS を再起動してから再度実施する。
※下のコードは改行がないように注意する。(if exist が先頭)

REM =======================
if exist "%USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server"
if exist "%USERPROFILE%\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\Application Data\Microsoft\Microsoft SQL Server"
if exist "%USERPROFILE%\All Users\Application Data\Microsoft\Microsoft SQL Server" rmdir /S /Q "%USERPROFILE%\All Users\Application Data\Microsoft\Microsoft SQL Server"
if exist "%ProgramFiles%\Microsoft SQL Server" rmdir /S /Q "%ProgramFiles%\Microsoft SQL Server"
if exist "%ProgramFiles(x86)%\Microsoft SQL Server" rmdir /S /Q "%ProgramFiles(x86)%\Microsoft SQL Server"
REM =======================

6.TEMP 内のリソース削除

TEMP フォルダ内のサブフォルダ・ファイルを削除します。

%TEMP%
%systemroot%\temp

実行例:

>cd %TEMP%
>del *.* /S /Q

ファイルが使用中の警告が出力されたものは無視してもよい。

7.OS再起動

最後OSを再起動する。

これで完全にアンインストールされたことになる。結構大変である。

おすすめの記事