Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Мне нравится, когда люди присылают мне рассказы о случаях, в которых они использовали инструменты Sysinternals для успешной диагностики проблем, однако нет ничего более приятного, чем использовать их для решения проблем, с которыми столкнулся лично я. Этот случай, в частности, был забавным потому, что его решение помогло мне вернуться к приятному времяпрепровождению.
Когда у меня появляется свободное время, я иногда играю в компьютерные игры, чтобы расслабиться и отвлечься от повседневных забот. На протяжении последних нескольких лет моей любимой игрой является Portal. Мне так понравилась первая Portal, что я сделал предзаказ на Portal 2 в сети Steam как только это стало возможно, и уже через несколько часов после выпуска я играл в нее. С тех пор я играю на сделанных сторонними разработчиками картах. В прошлую субботу я открыл особенно забавную карту – победителя конкурса игровых карт, проводившегося в сообществе пользователей игры – однако я не смог пройти ее за один раз. Следующим утром я вернулся к своему ПК, дважды кликнул на иконке Portal 2 на рабочем столе и увидел стандартное диалоговое окно запуска игры Steam. Обычно игра запускается за несколько секунд, однако на этот раз диалоговое окно так и осталось на экране:
Я завершил процесс Steam и еще раз дважды щелкнул по иконке игры, однако диалоговое окно запуска игры опять зависло. Я записал трассировку активности из Process Monitor и посмотрел на стек потоков Steam в Process Explorer, но не увидел ничего необычного. Предположив, что конфигурационные или установочные файлы Portal 2 были повреждены, я удалил Portal 2, повторно загрузил ее и переустановил. Однако проблема осталась. Следовательно, причиной были либо Steam, либо какая-то общая ошибка Windows. Следующим шагом была переустановка Steam.
Сначала я зашел в диалоговое окно «Установка и удаление программ» из «Панели управления», однако дважды щелкнув на записи Steam, я увидел диалоговое окно, просящее подтвердить удаление и предупреждающее, что при этом также удалится весь локальный контент. Я не хотел теряться все мои игровые настройки или все мои установленные игры, так что я отменил удаление. Большинство MSI-установщиков имеют опцию восстановления, которая повторно устанавливает приложение без удаления пользовательских данных или настроек, так что я зашел на домашнюю страничку Steam, скачал и запустил установщик Steam. Мастер установки предложил мне опцию восстановления:
Нажав кнопку Next, я увидел сообщение, которое сообщало о сетевой ошибке при попытке чтения локального файла:
Я снова включил ProcessMonitor и записал активность системы во время неудачной операции восстановления. В сообщении об ошибке упоминался файл под названием SteamInstall[1].msi, так что я искал в файле журнала строку с этим именем. Первым совпадением было чтение данных в запросе к значению ключа реестра HKCR\Installer\Products с именем PackageName:
Далее через несколько операций установщик попытался произвести чтение из папки файла, упоминавшегося в сообщении об ошибке:
То, что установщик пытался прочитать имя файла из существующего ключа реестра и расположение этого файла было в кэше Internet Explorer, навело меня на мысль, что он пытался запустить свою копию, которая выполнила начальную установку. Поскольку в первый раз я запускал установщик через IE напрямую с сайта Valve, и точно также я сделал и сейчас, папка загрузки была в кэше загрузки IE, однако с тех пор файл уже должен был быть удален.
Трассировка активности Process Monitor показала, что установщик считывал оригинальное значение расположения файла из реестра, так что если бы указал в реестре новую папку загрузки, я мог заставить его запускать самого себя, вместо того, чтобы искать предыдущую копию, которая сейчас отсутствует. Я просмотрел файл журнала на наличие новой папки для загрузки, ища Steaminstall.msi и путь к нему:
Затем я вернулся к записи запроса реестра, щелкнул по ней правой кнопкой мыши, и выбрал из контекстного меню команду «Jump To». Process Monitor запустил Regedit и перешел непосредственно к ключу реестра, где я обновил значения LastUsedSource и PackageName, чтобы обозначить новую папку для загрузки:
Затем я проигнорировал сообщение об ошибке установщика, которое я ранее оставил открытым, и нажал кнопку Next, чтобы снова попробовать запустить восстановление. На этот раз Steam продолжил переустановку, и мастер завершился с сообщение об успешном восстановлении:
Скрестив пальцы, я запустил Portal 2. Диалоговое окно Steam «Preparing to Launch» на секунду появилось, после чего на экран вышла игровая заставка Portal 2: дело закрыто. Удаление и последующая повторная установка Steam и всех игр, вероятно, привели бы к тому же результату, но Process Monitor сэкономил мне много времени и, возможно, мои игровые сохранения и настройки. Всего за несколько минут я вернулся к своей любимой игре-головоломке.
Обратите внимание на новую книгу Windows Sysinternals Administrator’s Reference, написанную мной и Аароном Маргозисом (Aaron Margosis), в которой вы найдете другие рекомендации по использованию более чем 70-ти инструментов Sysinternals для задач диагностики и управления вашими системами Windows!
Comments
- Anonymous
December 27, 2013
Pingback from ???????? ?? ???????????????? ?????????????????? ?????????????? ???????? | UC3