24 июня 2010 г.

Решение проблем с установкой и обновлением Adobe Flash Player

Adobe Flash Player – один из самых распространенных компонентов для браузеров. К сожалению, одновременно, он еще и самый проблемный из таковых. Большинство проблем с зависанием браузера, съедаемой памятью и “тормозами” – из за него. (Еще круче в смысле тормозов и памяти, конечно же Java, но она не так распространена на сайтах). Что еще печальнее, на долю Flash & Acrobat Reader приходится существенная часть уязвимостей в браузере, с помощью которых может быть проведена удаленная атака на компьютер.

Ну с Acrobat Reader все относительно просто, нужно наглухо закрыть показ pdf в браузере и отключить выполнение скриптов в pdf, и это позволит вам не так беспокоиться по этому поводу. С Flash все печальнее. К сожалению, тот же flash невозможно обновлять через WSUS. Конечно же, можно все отдать на откуп апдейтерам от Adobe и полагаться на то, что пользователь нажмет Yes в нужный момент. Но как показывает практика, именно в такие моменты юзер выбирает No :-)

Кроме того, время от времени, даже Yes не помогает, т.к. новый Flash не хочет устанавливаться или устанавливается с ошибкой. Что же делать в этом случае?

Для установки новых версий или обновлений Flash Player мы используем групповые политики. К сожалению, чтобы получить дистрибутивы в MSI нужно напрячься. По условиям лицензионного соглашения, я не могу дать прямую ссылку на страницу с дистрибутивами, но могу дать ссылку на страницу, где это соглашение можно заключить (бесплатно).

Учить как распространять ПО с помощью group policy не буду, это не сложно.

Вернемся к ошибкам. Достаточно регулярно, обновления Flash Player не происходит. Как оказалось, каким-то непонятным образом, сбрасываются права по умолчанию на ветки реестра и/или папки. Итак, начнем с того, какие папки и ветки реестра могут быть нужны для Flash?

HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.1
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.3
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.4
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.5
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.6
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.7
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.8
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.9
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.10
HKEY_CLASSES_ROOT\CLSID\{D4304BCF-B8E9-4B35-BEA0-DC5B522670C2}
HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}
HKEY_CLASSES_ROOT\CLSID\{1171A62F-05D2-11D1-83FC-00A0C9089C5A}
HKEY_CLASSES_ROOT\Interface\{2E4BB6BE-A75F-4DC0-9500-68203655A2C4}
HKEY_CLASSES_ROOT\TypeLib\{FAB3E735-69C7-453B-A446-B6823C6DF1C9}
HKEY_CLASSES_ROOT\TypeLib\{57A0E746-3863-4D20-A811-950C84F1DB9B}
HKEY_CLASSES_ROOT\.spl
HKEY_CLASSES_ROOT\.swf
HKEY_CLASSES_ROOT\.mfp
HKEY_CLASSES_ROOT\.sol
HKEY_CLASSES_ROOT\.sor
HKEY_CLASSES_ROOT\FlashFactory.FlashFactory
HKEY_CLASSES_ROOT\FlashFactory.FlashFactory.1
HKEY_CLASSES_ROOT\FlashProp.FlashProp
HKEY_CLASSES_ROOT\FlashProp.FlashProp.1
HKEY_CLASSES_ROOT\MacromediaFlashPaper.MacromediaFlashPaper
HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/futuresplash
HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x-shockwave-flash

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.3
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.4
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.5
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.6
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.7
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.8
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.9
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.10
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}

Кроме того, нужен доступ в папки:

%WINDIR%\System32\Macromed

Почить это можно несколькими способами. Первый, он же профилактический – изменять права на эти ветки с помощью Group Policy. Итак изменения нужны в:
Computer Configuration –> Policies –> Windows Settings –> Security Settings –> Registry
и в
Computer Configuration –> Policies –> Windows Settings –> Security Settings –> File System

Если ре решать это уже по факту, на конкретной машине, то можно воспользоваться скриптом, который, правда, потребует специальную утилиту subinacl.

Вот скрипт от Adobe:

@echo off

Echo =========================
Echo Repairing Flash Player HKEY_CLASSES_ROOT Registry Permissions. One moment please...
Echo =========================

subinacl /subkeyreg HKEY_CLASSES_ROOT\CLSID\{D4304BCF-B8E9-4B35-BEA0-DC5B522670C2} /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000} /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\CLSID\{1171A62F-05D2-11D1-83FC-00A0C9089C5A} /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\Interface\{2E4BB6BE-A75F-4DC0-9500-68203655A2C4} /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\TypeLib\{FAB3E735-69C7-453B-A446-B6823C6DF1C9} /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\TypeLib\{57A0E746-3863-4D20-A811-950C84F1DB9B} /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.spl /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.swf /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.mfp /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.sol /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.sor /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashFactory.FlashFactory /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashFactory.FlashFactory.1 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashProp.FlashProp /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashProp.FlashProp.1 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.1 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.3 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.4 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.5 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.6 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.7 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.8 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.9 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.10 /grant=administrators=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\MacromediaFlashPaper.MacromediaFlashPaper  /grant=administrators=f
subinacl /subkeyreg "HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/futuresplash"  /grant=administrators=f
subinacl /subkeyreg "HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x-shockwave-flash"  /grant=administrators=f

subinacl /subkeyreg HKEY_CLASSES_ROOT\CLSID\{D4304BCF-B8E9-4B35-BEA0-DC5B522670C2} /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000} /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\CLSID\{1171A62F-05D2-11D1-83FC-00A0C9089C5A} /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\Interface\{2E4BB6BE-A75F-4DC0-9500-68203655A2C4} /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\TypeLib\{FAB3E735-69C7-453B-A446-B6823C6DF1C9} /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\TypeLib\{57A0E746-3863-4D20-A811-950C84F1DB9B} /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.spl /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.swf /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.mfp /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.sol /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\.sor /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashFactory.FlashFactory /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashFactory.FlashFactory.1 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashProp.FlashProp /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\FlashProp.FlashProp.1 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.1 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.3 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.4 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.5 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.6 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.7 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.8 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.9 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash.10 /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT\MacromediaFlashPaper.MacromediaFlashPaper  /grant=system=f
subinacl /subkeyreg "HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/futuresplash"  /grant=system=f
subinacl /subkeyreg "HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x-shockwave-flash"  /grant=system=f

Echo =========================
Echo Repairing Flash Player HKEY_LOCAL_MACHINE Registry Permissions. One moment please...
Echo =========================

subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.1 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.3 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.4 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.5 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.6 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.7 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.8 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.9 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.10 /grant=administrators=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000} /grant=administrators=f

subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.1 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.3 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.4 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.5 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.6 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.7 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.8 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.9 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ShockwaveFlash.ShockwaveFlash.10 /grant=system=f
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000} /grant=system=f

Echo =========================
Echo Repairing Flash Player File System Permissions. One moment please...
Echo =========================
subinacl /subdirectories %WINDIR%\System32\Macromed /grant=administrators=f
subinacl /subdirectories %WINDIR%\System32\Macromed /grant=system=f

Echo =========================
Echo Finished.
Echo =========================
pause
exit

Комментариев нет:

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