Как я могу диагностировать ошибку доступа / разрешения Windows

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

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

Задний план:

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

Симптом:

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

Я уверен, что есть несколько факторов:

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

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

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

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


person Community    schedule 08.02.2009    source источник
comment
В какой именно версии Windows вы пытаетесь запустить moveuser.exe? Также я предполагаю, что все эти 6 профилей хоста являются локальными профилями?   -  person Kosi2801    schedule 08.02.2009


Ответы (4)


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

person Andomar    schedule 08.02.2009

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

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

person Ken White    schedule 10.02.2009
comment
Он говорит, что использовал Process Monitor, то есть Filemon + Regmon + еще - person Joe; 10.02.2009

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

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

person Rob Haupt    schedule 15.02.2009

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

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

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

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

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

person Community    schedule 18.02.2009