Disable the "Row Position" functionality of OLEDB32.dll
具体搞法:
Delete the following Row Position registry subkey:
HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}
刚才ben总说Vista上这个键不好删除,我试了一下,果然很顽强啊,以administrator和SYSTEM运行regedit.exe都删除不掉这个键. 我推荐这个方法的时候自己也没有实际操作,惭愧.
后来跟ben总一起摸索了很久,(主要还是对vista下的情况不熟悉), 下面是Vista上删除这个subkey的流程:
(XP直接秒删)
1. 以administrator权限运行regedit.exe
2. 搜索找到2048EEE6-7FA2-11D0-9E6A-00A0C9138C29这个subkey, 你会发现administrators权限只是read. TrustedInstaller才是owner.
3. 接下来得修改这个subkey的owner为administrators. 在Advanced(高级)里面
change owner to "Administrators" (我这个抓图的时候已经操作完成了)
记得下面这个地方打上勾,替换所有子项的owner.
4. 回过来给administrators以"Full control"
按道理这个权限会自动继承到下面三个子键的,但是我刚才操作的时候好像没有继承.
如果你发现那3个子键InprocServer32,ProgID,VersionIndependentProgID, administrator不是full control的, 就挨个修改一下权限.
5. 不要犹豫了,赶紧右键, 删除掉2048EEE6-7FA2-11D0-9E6A-00A0C9138C29整个subkey!!!
安全了.....
实际操作的时候如果碰到什么问题, 欢迎留言.
如果将来要恢复,把下面这些东西存成.reg文件, 再以Administrator打开regedit.exe, Import这个reg文件就可以了.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}]
@="Microsoft OLE DB Row Position Library"
[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\InprocServer32]
@="C:\\Program Files\\Common Files\\System\\Ole DB\\oledb32.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\ProgID]
@="RowPosition.RowPosition.1"
[HKEY_CLASSES_ROOT\CLSID\{2048EEE6-7FA2-11D0-9E6A-00A0C9138C29}\VersionIndependentProgID]
@="RowPosition.RowPosition"
【编辑推荐】