2

У меня есть эта необычная проблема, когда приложения ломаются, если я разрешаю запускать их автоматическое обновление.

Я использую относительно стандартную систему Windows 7 Professional x64. У меня не так много всего установлено в системе. Я обычно использую свой компьютер, когда вошел в систему как ограниченная учетная запись.

Чтобы привести один пример. У меня установлен Evernote . Я был уведомлен, что их ожидало обновление. Он спросил меня, хочу ли я загрузить и обновить, что я согласился. Мне выдали приглашение UAC и предоставили имя пользователя и пароль администратора, а затем обновление, по-видимому, завершилось нормально. После завершения обновления, когда я пытаюсь запустить Evernote, я получаю сообщение об ошибке Windows не может получить доступ к указанному устройству, пути или файлу.У вас могут не быть соответствующих разрешений для доступа к элементу.

Если я использую icacls для проверки прав доступа к Evernote, я вижу это.

C:\Program Files (x86)\Evernote\Evernote3.5>icacls Evernote.exe
Evernote.exe  No permissions are set. All users have full control.
Successfully processed 1 files; Failed processing 0 files

Так что разрешения явно облажались. Если я пытаюсь посмотреть на разрешение через файловую систему, я получаю странные ошибки о том, что разрешения для файловой системы были испорчены (извините, я их не записал). Windows не позволяет мне вступать во владение или заменять разрешение файловой системы через интерфейс проводника.

Если я полностью удаляю Evernote, удаляю папку с программой и устанавливаю чистую копию, все начинает работать нормально.

Кажется, проблема в том, что это происходит практически со всеми программами, которые хотят самообновиться. Пока в дополнение к Evernote это включает в себя Adobe Acrobat, iTunes, Mozilla Firefox, пакетную версию Google Chrome и VLC.

Просто чтобы сделать проблему более запутанной. Windows обновлялась несколько раз, и после обновления Windows ничего не сломалось.

Теперь я запускал chkdsk / fa пару раз. Я загрузился с livecd и запустил badblocks -sn /dev/hd . Я позволил memtest86 пройти несколько проходов. Аппаратное обеспечение, кажется, в порядке.

Я почти дошел до того, что просто собираюсь сделать резервную копию / переустановить систему, но если я смогу избежать этого в течение пары месяцев, было бы неплохо.

Итак, у меня вопрос: есть ли у кого-нибудь идеи, почему самообновляющиеся сторонние приложения перестают работать при обновлении, знаете ли вы, как это исправить?

2 ответа2

2

В статье « Поведение NULL DACL в Windows Vista» описывается то же состояние, что и с вами, которое возникает, когда файл создается с пустыми DACL (в отличие от нулевого DACL, который предоставляет универсальный доступ).

Вы можете найти дополнительную информацию в Vista несовместимость не всегда Vista

Тот факт, что у меня нет доступа, указывает на то, что это был пустой DACL. В Vista пустой DACL действительно означает "нет доступа" - в Windows XP пустой DACL означает «владелец имеет полный контроль, все остальные не имеют доступа».

В заключение я бы сказал, что icacls обманывает вас и, вероятно, не обновлялся с XP. Начиная с Vista, поведение пустого DACL изменилось, но icacls об этом не знает.

Теперь возникает вопрос: почему установленные исполняемые файлы вообще не имеют DACL.

Похоже, что системный вызов систематически завершается с ошибкой в вашей системе, когда он выдается приложением, но он работает, когда он выдается Центром обновления Windows.

Я бы попробовал два решения:

  1. Отключите любое приложение безопасности, которое может работать с настройками разрешений, например, антивирус или брандмауэр.
  2. Выключить UAC

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

0

Я никогда не удосужился решить эту проблему, и с тех пор переустанавливал. Гарримк ответ, возможно, был действительным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .