SQL Server の手動アンインストール手順

 

皆さん、こんにちは。

SQL Server をアンインストールする場合、通常は、コントロールパネルから削除します。

SQL Server の既存のインスタンスのアンインストール (セットアップ)
https://technet.microsoft.com/ja-jp/library/ms143412.aspx

しかし、SQL Server のインストールを強制終了してしまったり、アンインストールが失敗したりして、通常の手段でアンインストールができなくなってしまった場合には、SQL Server を手動でアンインストールする必要に迫られることがあります。

そのような場合の手順をご案内いたします。

以下の例では SQL Server 2012 を対象としていますが、SQL Server 2005 以降であれば同じ手順でアンインストール可能です。
64bit と 32bit の環境ではパスなどが異なる場合がありますので適宜ご確認ください。

※注意事項※
以下の手順は弊社にて検証した手順ではございますが、必ずしもアンインストールが成功することを保証しているものではございません。 状況によりましては、オペレーティング システムの再インストールが必要になることがあります。
手順の実施につきましては、自己の責任において行ってください。

 

1. 事前準備

以下の前提条件を満たしていることをご確認ください。

A. OS の再起動
B. リモートデスクトップ接続確認
C. セットアップに使用する OS(Windows) のログオンアカウント
D. サードパーティ社様製アプリケーション・サービスについて

A.  OS の再起動
----------------------------------------------------------------
アンインストール前に、OS 再起動を行います。

B. リモートデスクトップ接続確認
----------------------------------------------------------------  
ターミナルセッションはすべて切断されており、リモートデスクトップ接続が存在する場合は全てログアウトしていることを確認します。

リモートデスクトップ接続を使用してセットアップを実施することは可能です。
セットアップを実施するためにリモートデスクトップ接続を使用する際は、[スタート] -> [ファイル名を指定して実行] にて、
mstsc /admin (環境によっては mstsc /console) とタイプし、 OK後アクティブノードへ接続します。

C.  セットアップに使用する OS(Windows) のログオンアカウント
----------------------------------------------------------------
SQL Server セットアップを実施する際の OS(Windows) ログオンアカウントがローカルの Administrators グループに所属していることを確認します。

D.  サードパーティ社様製アプリケーション・サービスについて
----------------------------------------------------------------
フィルタドライバを使用するサードパーティ社様製 ウィルス対策ソフトや暗号化/セキュリティソフトのサービス・アプリケーションは一時的に停止してください。

 

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

レジストリ エディタを起動し、次のレジストリ キーを展開します。([スタート] -> [ファイル名を指定して実行] にて regedit とタイプし、OK)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

左側のウィンドウで、各 GUID (Globally Unique Identifier:グローバル一意識別子) をクリックします。
クリックした各 GUID について、右側のウィンドウで DisplayName 値のデータを確認し、"SQL" が含まれているものをみつけます。
存在するキーをすべてメモ帳等に控えてください。(右クリック –> [キー名のコピー] でクリップボードにコピーされます)

※注意事項※
レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。
最悪の場合、オペレーティング システムの再インストールが必要になることがあります。
マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。
レジストリの変更は、自己の責任において行ってください。

 

image

同様に以下のキーを展開し、DisplayName 値に"SQL" を含む GUID を控えます。

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

 

コマンドプロンプトを管理者権限にて起動し、以下のコマンドを実行してコンポーネントのアンインストールを行います。

msiexec /x GUID

   (例) msiexec /x {202AAF1F-69AA-442A-B59F-6B54B1AD07C6}

image

 

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

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

 

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 =======================

グローバル・アセンブリ・キャッシュ(GAC)は、マシン全体でグローバルに参照可能なアセンブリの配置場所です。
GAC は特殊なフォルダ構造なので、エクスプローラで「%windir%\assembly」フォルダを見てみると、アセンブリの名前を一覧表示するシェル拡張が起動されます。
コマンド・プロンプトでフォルダを参照すると、GAC の内部的なフォルダ構造を確認できます。

image

 

4. レジストリ削除

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

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

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft

image

 

コマンドプロンプトを管理者権限にて起動し、以下のコマンドを実行してレジストリを削除します。

reg delete “レジストリキー”

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

レジストリエディタで該当のキーを右クリック - "キー名のコピー" を選択すると、レジストリキーがクリップボードにコピーされます。

image

/f オプションを使用すると、プロンプトなしで強制的に削除されます。

reg delete "レジストリキー" /f

 

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

  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products

image

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再起動

 

以上で終了です。

お疲れ様でした。