Как я могу диагностировать ошибку доступа / разрешения Windows - PullRequest
0 голосов
/ 08 февраля 2009

Название говорит об этом. Я ищу способ точно определить, к какому файлу / разделу реестра этот исполняемый файл пытается получить доступ. Я пытался использовать возможности аудита Windows и Process Monitor , чтобы определить, где происходит сбой, но этот сбой не приводит к событиям сбоя аудита и не отображается как отказ в доступе в Process Monitor.

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

Справочная информация:

Я использую moveuser.exe, входящий в состав Инструментария Windows Server 2003 Resource Kit , для преобразования безопасности локальных профилей пользователей на нескольких рабочих станциях Windows XP.

Симптом:

Иногда, moveuser.exe не удается преобразовать безопасность профиля с ошибкой «Ошибка: 5 доступ запрещен». Мне не удалось определить какую-либо общность между сбойными учетными записями или компьютерами, на которых они находятся. На данном компьютере может быть 6 профилей хоста, 5 из которых преобразуются без проблем, а 1 создает ошибку.

Есть несколько факторов, в которых я уверен, насколько могу:

-Учетная запись, которую я использую для запуска moveuser.exe, имеет полные права администратора на локальном компьютере и в домене, в который преобразуется защита профиля.

-Сбой не связан с правами доступа к файлам в каталоге профиля (весь каталог можно переместить, переименовать, удалить или успешно преобразовать с помощью обходного пути).

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

Мой обходной путь (рад поделиться им, опущенный для краткости), похоже, указывает, что ошибка связана с ключами реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList, но я не могу точно определить, как / почему.

Ответы [ 4 ]

0 голосов
/ 18 февраля 2009

Через два дня после публикации я дошел до сути проблемы. Оказалось, так же, как Роб Хаупт предложил иметь отношение к застрявшему пользовательскому улью. Программа, которую я запускал, moveuser, считывала ключ Refcount, найденный в HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ ProfileList\ <SID>\, и немедленно заканчивалась.

Установка Refcount на 0 сразу решила проблему

Вытеснение UPHClean на все целевые машины упреждающе решило проблему, и за последнюю неделю мы смогли успешно преобразовать профили на нескольких сотнях машин.

Важное примечание о UPHClean:

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

0 голосов
/ 10 февраля 2009

Используйте FileMon и RegMon (теперь Microsoft, ранее SysInternals, все еще бесплатная), чтобы отслеживать, к чему именно осуществляется доступ, как и какие права / доступ запрашиваются.

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

0 голосов
/ 15 февраля 2009

Я бы попробовал пару вещей. Во-первых, может ли пользователь войти в систему, а компьютер не был перезагружен. У Microsoft есть продукт под названием UPHClent , который помогает выгружать ненужные пользовательские ульи.

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

0 голосов
/ 08 февраля 2009

Вы пытались использовать инструмент командной строки "regini", чтобы получить разрешения реестра для учетной записи администратора?

...