KB2533552をアンインストールする方法

コントロールパネルからKB2533552をアンインストールしようとしたところ、右クリックしても「アンインストール」が選択できず、アンインストールできませんでした。

+ 「コントロールパネル」「プログラムと機能」「インストールされた更新プログラムを表示」

これを強制的にアンインストールする手順を残します。

同様にアンインストールできないKB(KB976902など）でも、KB番号を置き換えて読んでいただければ同様に対処できるものと考えます（確認はしていません）。

ちなみに、動作を確認した環境は、Windows 7 Pro (32bit) SP1です。

## KB2533552について

+ [Microsoftサポート KB2533552](https://support.microsoft.com/ja-jp/kb/2533552/ja?wa=wsignin1.0)

## 解決策（引用）

[How to remove KB2533552 - Spiceworks](http://community.spiceworks.com/topic/144227-how-to-remove-kb2533552)

> 1. Go to C:WindowsServicingPackages
> 2. Find the .mum files relating to KB 976002 and KB 253352
> 3. Take ownership of them, give yourself full control (it took me a hell of a time to figure it how, because i don't know much about these things, so i assume that there are others like me, so: right click-->properties-->security-->advanced-->owner-->edit-->and here i have 2 things: Administrators (--name of my computer--\Administrators) and Name of my computer (--name of my computer--\my name [i think it's the user's name]); i selected the second and clicked Apply-->ok [[it works for Administrators too]] ... do it again: Properties-->security-->advanced-->change permissions-->DESELECT "Include inheritable permissions for this object's parent"-->add-->click on TrustedInstaller-->remove-->click Users (that's what i chose; it works on Administrators too)-->edit-->select Full Controll-->ok-->apply-->yes-->ok-->ok-->ok. DONE. Now YOU have full control of files
> 4. Open Control Panel, programs, Installed Updates
> 5. Find KB 976002 or/and KB2533552 and right click; Uninstall is not available. Important: Do not close this window, to avoid re-verification of the checksum of the .mum files.
> 6. Go back to the .mum files for KB976002 and KB2533552. Edit them both with notepad, change permanance=”permanent” to permanence=”removable”
> 7. Go back to the Installed updates list, hit F5, right click KB 976002. Uninstall is now available. :) then reboot

## 解決策（改善）

手動でセキュリティ設定を変えるのが少し煩雑に思ったので、バッチを組みました。

### バッチファイルご紹介
```bat
c:
cd %WINDIR%\servicing\Packages

echo mumの所有権変更
takeown /F *KB2533552*.mum /A

echo mumのアクセス権限変更
cacls *KB2533552*.mum /G BUILTIN\Administrators:F
cacls *KB2533552*.mum /E /G "NT AUTHORITY\SYSTEM":R
cacls *KB2533552*.mum /E /G BUILTIN\Users:R

echo permanenceの値を書き換えてください(removable)
notepad "Package_2_for_KB2533552~31bf3856ad364e35~x86~~6.1.1.1.mum"

echo permanenceの値を書き換えてください(removable)
notepad "Package_for_KB2533552_RTM~31bf3856ad364e35~x86~~6.1.1.1.mum"

echo permanenceの値を書き換えてください(removable)
notepad "Package_for_KB2533552~31bf3856ad364e35~x86~~6.1.1.1.mum"

echo KB2533552のアンインストール
wusa /uninstall /kb:2533552 /quiet /norestart

set /p answer="再起動？(y/n)  : %answer%"
if "%answer%"=="y" (
	shutdown -r -t 0
) else (
	exit
)
```

### .mumファイルの書き換え作業

ファイルによってpackage要素内の属性が微妙に違うので、ここで挙げるのは一例です。permanence属性の値を変更します。

##### 修正前
```xml
<package identifier="KB2533552" releaseType="Update" restart="possible" selfUpdate="true" permanence="permanent">
```
##### 修正後
```xml
<package identifier="KB2533552" releaseType="Update" restart="possible" selfUpdate="true" permanence="removable">
```

## メモ
+ 結局のところ、アンインストールの可否はmumファイルが握っていて、それを修正するための道筋
+ その他のパッチもアンインストールできない場合は同様の手段で対応できるような気がします