Как изменить имя папки профиля, не перестраивая профиль пользователя с нуля?

Как изменить имя папки профиля, не перестраивая профиль пользователя с нуля?

Пользователь на работе недавно вышла замуж и запросила обновление имени пользователя домена, чтобы оно отражало ее фамилию после замужества. Она использует ПК с Windows 7 в домене Windows 2003.

Я знаю, что могу просто обновить имя пользователя в AD, и этого, вероятно, будет достаточно для большинства случаев; однако структура папок на ее ПК не будет отражать это изменение, что может вызвать у нее путаницу в дальнейшем:

c:\users\old-username\

Помимо полного воссоздания профиля пользователя на этом ПК с нуля, как я могу исправить ошибку в профиле пользователя?

решение1

У Microsoft есть ответ на этот вопрос:

Оба дают одну и ту же информацию, но по-разному. Важно то, что переименование пути профиля требует обновления реестраHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

решение2

Хотя все здесь правильно, вы все упускаете одну очень важную вещь:

ЭТО НЕ ИСПРАВИТ ПУТИ УЖЕ УСТАНОВЛЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, КОТОРОЕ СОЗДАЕТ ЗАПИСИ В папке \USERS\USERNAME\APPDATA. Все записи здесь остаются, указывая на старое имя профиля пользователя, это вызовет проблемы типа «путь не найден» при удалении приложений или при их открытии. Кроме того, вы повредите свой профиль Outlook и черт знает что еще. Я в итоге сделал резервную копию данных пользователя, удалил поврежденный профиль и воссоздал с нуля новый профиль для этого переименованного пользователя, а также восстановил данные пользователя.

Я нашел сотни веб-сайтов с более или менее одинаковой процедурой переименования папки профиля пользователя, но все они упустили то, о чем я говорил. Могу сказать, что метод работает очень хорошо, если это недавно созданный профиль, то вы немедленно переименовываете имя пользователя: без настройки/установки чего-либо перед процессом переименования, в этом случае это работает безупречно!

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

решение3

От:https://social.technet.microsoft.com/Forums/exchange/en-US/0a3a20fa-85d2-414e-aff2-267d5f2ca80c/переименовать-имя-пользователя-и-адрес-электронной-почты-в связи-с-браком-или-разводом

На вкладке «Редактор атрибутов» [Active Directory — пользователи и группы -> Пользователи -> (имя пользователя) -> Свойства] найдите атрибут с именем «objectSID» и запишите этот номер на листе бумаги для дальнейшего использования.

...

[На компьютере пользователя войдите в систему как Администратор и] Переименуйте папку профиля пользователя:

Перейдите в C:\Documents and Settings\isingle. Щелкните правой кнопкой мыши по папке, выберите «Переименовать». Переименуйте папку в C:\Documents and Settings\imaried.

Измените путь к изображению профиля в реестре:

Пуск> Выполнить> regedt32 Разверните до HKEY_LOCAL_MACHINE \ SOFTWARE\ Microsoft\ Windows NT \ CurrentVersion \ ProfileList

Выберите правильный SID, который вы записали ранее, когда вы записали его из ADUC выше. На правой панели дважды щелкните значение ProfileImagePath и измените путь к профилю на C:\Documents and Settings\imarried.

Закройте редактор реестра и перезагрузите Windows.

решение4

Короче говоря, вам нужно применить изменение к основному разделу реестра, затем найти замену в разделах реестра и в ваших файлах (у меня это заняло 2 часа).

Перед началом создайте точку восстановления и резервную копию реестра. Убедитесь, что учетная запись, которую вы хотите изменить, является учетной записью администратора (вы можете установить ее как администратора, работающего netplwizв run).

+ Первая часть

Эта часть хорошо документирована.здесь(скриншоты)

  1. щелкните правой кнопкой мыши и C: User/[old_name] propertyвыберите share with nobody(это может занять час)
  2. В панели управления создайте новую учетную запись администратора с именем TempAdmin(она понадобится вам только для переименования папки `C:\User/[old_name] и изменения реестра, а затем удалите ее)
  3. Выйдите из своей учетной записи и войдите в TempAdminновую.
  4. Из TempAdmin переименуйте файл C: User/[old_name]в `C: User/[new_name].
  5. в разделе реестра перейдите в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ найдите запись, содержащую ProfileImagePathи щелкните правой кнопкой мыши/изменить и замените old_name на new_name. Закройте реестр.

+ Редактировать учетную запись пользователя:

Запустить (Ctr+запустить) netplwiz: (открывается user account). Установите флажок «Пользователи должны ввести имя пользователя и пароль для использования этого компьютера». Выберите old_name учетной записи пользователя и нажмите кнопку Properties. Измените User_name и Full_name на new_name.

+ Попробуйте:

Перезагрузите компьютер, затем войдите в свою новую учетную запись. (Если учетная запись с новым именем не отображается, не убивайте себя. Это может быть связано с тем, что она не установлена ​​как администратор. Просто войдите в TempAdmin и установите ее как администратора с помощью Windows netplwiz.)

+ Найдите и замените оставшееся «old_name» в реестре.

  1. Чтобы найти (старое_имя) и заменить (новое_имя) в реестре, можно использоватьregedt33(открытый исходный код). Запустите его как администратор. Вероятно, лучше выполнить поиск без учета регистра и запустить его несколько раз. Он изменит только ключ, которым вы владеете (их право собственности установлено на ваше имя).

  2. Затем используйте findфункцию реестра, чтобы найти оставшееся old_name (regedt33 не может редактировать защищенные ключи). В функции поиска реестра снимите флажок "соответствовать только всей строке", нажмите F3, чтобы снова найти). Самый быстрый способ — изменить разрешение и владельца материнской папки и сделать ее наследуемой для дочерних папок*. Затем снова запустите regedt33 (на этот раз он сможет изменять ключи) (Изменение: regedt33 глючит, на некоторых компьютерах он скажет вам, что изменил ключи, но не сделал этого. Я не нашел другого (быстрого) решения, кроме как удалить и повторно установить ссылку на эти ключи, например, python)

  3. Вы найдете (некоторые) оставшиеся проблемы в реестре с помощью инструмента реестра ccleaner (щелкните правой кнопкой мыши по сломанному ключу, чтобы открыть его в реестре)

+ Найти и заменить оставшиеся "old_name" в файлах(в основном ваши настройки).

Бегатьdngrep как администратор(открытый исходный код). Используйте его для поиска и замены в C:\Users\[user]\AppDataи один раз на C:\Users\[user]\Desktop. Сначала выполните поиск, затем проверьте, следует ли что-то изменить, если да, замените его. (Вы можете исключить файлы, щелкнув правой кнопкой мыши. В опции напишите 1 как порог совпадения, чтобы искать именно old_name)

+ Затем исправьте остальные вещи:

  1. Задачи: Вам нужно будет экспортировать задачи в планировщик, изменить их и импортировать снова.

  2. проверьте ярлыки (также в папке автозагрузки)


(*)Редактировать: Быть администратором недостаточно. Вам нужно иметь полный контроль (разрешение), но также и право собственности на ключ, который вы изменяете.

Чтобы изменить разрешение: щелкните правой кнопкой мыши/разрешение/отметьте полный доступ/ОК

Чтобы изменить владельца: щелкните правой кнопкой мыши/разрешение/дополнительно/ щелкните по своему имени. Если вы хотите установить разрешение для детей, отметьте replace all child permission with inheritable permission from this object.

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

Функция поиска, похоже, не надежна. Я запускал ее несколько раз (в верхнем регистре, в нижнем регистре и т. д.), и мне все равно удалось найти новое old_name, которое нужно изменить.

Связанный контент