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

StackOverflow https://stackoverflow.com/questions/525376

Вопрос

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

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

Предыстория:

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

Симптом:

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

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

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

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

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

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

Это было полезно?

Решение 4

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

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

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

Важное замечание о UPHClean:

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

Другие советы

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

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

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

Пара блюд, которые я бы попробовал.Во-первых, может ли быть так, что пользователь вошел в систему, а компьютер не был перезагружен?У Microsoft есть продукт под названием Сдержанный что помогает в выгрузке ненужных пользовательских ульев.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top