Как изменить имя папки профиля, не перестраивая профиль пользователя с нуля?
Пользователь на работе недавно женился и попросил обновить имя пользователя своего домена, чтобы отразить его замужнее имя. Она использует ПК с Windows 7 в домене Windows 2003.
Я знаю, что могу просто обновить имя пользователя в AD, и этого, вероятно, будет достаточно по большей части; однако структура папок на ее ПК не будет отражать это изменение, что может привести к путанице в дальнейшем:
c:\users\old-username\
Besides completely re-creating the user's profile on this PC from scratch, how can I correct the misspelling in the user's profile?
5 ответов
Microsoft has an answer for this:
- How to Rename a Windows 7 User Account and Related Profile Folder
- Переименование учетной записи пользователя не меняет автоматически путь к профилю
Both give the same information, in different ways. The important part is that renaming the profile's pathname requires an update to the registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Хотя здесь все правильно, всем вам не хватает одной очень важной вещи:
ЭТО НЕ ИСПРАВИТ ПУТИ УЖЕ УСТАНОВЛЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, КОТОРОЕ ДЕЛАЕТ ЗАПИСИ В папку \USERS\USERNAME\APPDATA. Все записи здесь по-прежнему указывают на старое имя профиля пользователя. Это приведет к таким проблемам, как «путь не найден» при удалении приложений или при их открытии. Кроме того, вы повредите свой профиль Outlook и еще черт знает что. В итоге я сделал резервную копию данных пользователя, удалил поврежденный профиль и воссоздал с нуля новый профиль для этого переименованного пользователя, а также восстановил данные пользователя.
Я нашел сотни веб-сайтов с более или менее одинаковой процедурой переименования папки профиля пользователя, но на всех них не было того, что я упомянул. Я могу сказать, что этот метод работает очень хорошо, если это недавно созданный профиль, тогда вы немедленно переименовываете имя пользователя: без настройки/установки чего-либо до процесса переименования, в этом случае это работает безупречно!
Поверьте, я говорю вам по опыту! Я прочитал много руководств, и мне кажется, что это более-менее просто, но это оказалось кошмаром.
В дополнение к ответам здесь есть приложение под названием RegEditX, которое позволяет массово изменять записи реестра. Я использовал его, чтобы изменить свое имя пользователя, скажем, с "Jos_Smith" на "JoeSmith". Одно очень важное замечание: в дополнение к изменению "Jos_Smith" на "JoeSmith", вам также необходимо изменить все записи "Jos_Sm ~" на "JoeSmi ~". Эти записи в основном находятся в записях установочной папки, т.е. где приложение хранит свои установочные файлы. Вот ссылка: http://www.dcsoft.com/products/regeditx/
На вкладке "Редактор атрибутов" [пользователей и групп Active Directory -> Пользователи -> (имя пользователя) -> Свойства] найдите атрибут с именем "objectSID" и напишите это число на листе бумаги для дальнейшего использования.
...
[На компьютере пользователя войдите как Admin и] Переименуйте папку профиля пользователя:
Перейдите в C: \ Documents and Settings \ isingle. Щелкните правой кнопкой мыши папку, выберите "Переименовать". Переименуйте папку в C: \ Documents and Settings \ imarried.
Измените путь к изображению профиля в реестре:
Пуск> Выполнить> regedt32 Разверните в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList
Выберите правильный SID, который вы записали ранее, когда отметили его в ADUC выше. На правой панели дважды щелкните значение ProfileImagePath и измените путь к профилю C: \ Documents and Settings \ imarried.
Закройте редактор реестра и перезапустите Windows.
Короче говоря, вам нужно применить изменение основного ключа реестра, а затем найти замену в ключах реестра и в ваших файлах (это заняло у меня 2 часа).
Перед началом создайте точку восстановления и сделайте резервную копию вашего реестра. Убедитесь, что учетная запись, которую вы хотите изменить, является учетной записью администратора (вы можете установить ее в качестве администратора netplwiz
в run
).
+ Первая часть
Эта часть хорошо документирована здесь (скриншоты)
- щелкните правой кнопкой мыши на
C: User/[old_name]
property
выбиратьshare with nobody
(это может занять час) - В панели управления создайте новую учетную запись администратора с именем
TempAdmin
(Вы будете использовать его только для переименования папки `C: User/[old_name] и изменения реестра, затем удалите его) - Выйдите из своей учетной записи и войдите в
TempAdmin
учетная запись. - Из TempAdmin переименуй
C: User/[old_name]
с `C: Пользователь / [новое_имя]. - в разделе реестра перейдите к HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\ProfileList\ найдите запись, которая содержит
ProfileImagePath
и щелкните правой кнопкой мыши / измените и замените старое имя новым именем. Закройте реестр.
+ Изменить учетную запись пользователя:
Run (Ctr + run) netplwiz
: (это открывает user account
). Установите флажок "Пользователи должны ввести имя пользователя и пароль, чтобы использовать этот компьютер". И выберите old_name учетной записи пользователя и нажмите кнопку "Свойства". Измените имя пользователя и полное имя с новым именем.
+ Попробуй это:
Перезагрузите компьютер, затем войдите в свою новую учетную запись. (Если учетная запись с новым именем не отображается, не убивайте себя. Возможно, это связано с тем, что она не установлена в качестве администратора. Просто войдите в TempAdmin и установите его в качестве администратора, используя netplwiz
окна.
+ Найти и заменить оставшееся "старое имя" в реестре.
Чтобы найти (старое_имя) замену (новое_имя) в реестре, вы можете использовать regedt33 (с открытым исходным кодом). Запустите его от имени администратора. Вероятно, лучше искать с учетом регистра и запускать его несколько раз. Это только изменит ключ, которым вы владеете (их право собственности установлено на ваше имя).
Затем используйте
find
особенность реестра для поиска оставшегося old_name (regedt33 не может редактировать защищенные ключи). В реестре найти функцию снимите флажок "соответствовать только всей строке", нажмите F3, чтобы найти снова). Самый быстрый способ состоит в том, чтобы изменить изменение разрешения И владельца родительской папки и установить ее как наследуемую для детей *. Затем снова запустите regedt33 (на этот раз он сможет изменять ключи) (Edit: regedt33 глючит, на каком-то компьютере он скажет, что изменил ключи, но не сделал. Я не нашел другого (быстрого) решения, кроме удаление и повторная установка ссылки на программное обеспечение для этих ключей, например, Python)Вы найдете (некоторые) оставшиеся проблемы в реестре, используя инструмент реестра ccleaner (щелкните правой кнопкой мыши по сломанному ключу, чтобы открыть его в реестре)
+ Найти и заменить оставшееся "старое имя" в файлах (в основном ваши настройки).
Запустите dngrep от имени администратора (с открытым исходным кодом). Используйте его, чтобы найти и заменить в C:\Users\[user]\AppData
и однажды с C:\Users\[user]\Desktop
, Сначала выполните поиск, а затем проверьте, нужно ли что-то менять, если это так, замените его. (Вы можете исключить файлы, используя правую кнопку мыши. В опции укажите 1 в качестве порога совпадения, чтобы найти именно old_name)
+ Затем исправьте другие вещи:
Задачи. Вам нужно будет экспортировать задачу в планировщик, изменить ее и снова импортировать.
проверьте ваши ярлыки (также в папке автозагрузки)
(*) Редактировать: Быть администратором недостаточно. Вы должны иметь полный контроль (разрешение), а также право собственности на ключ, который вы изменяете.
Чтобы изменить разрешение: щелкните правой кнопкой мыши / разрешение / проверьте полный контроль / ок
Чтобы изменить владельца: щелкните правой кнопкой мыши / разрешение / расширенный / нажмите на свое имя. Если вы хотите установить разрешение для детей, проверьте replace all child permission with inheritable permission from this object
,
Мне также пришлось отключить антивирус для некоторых сложных ключей, таких как HomeGroupStuff. Мне также пришлось поиграть с флажками "включить наследуемое разрешение..." и "заменить все дочерние объекты..." для этих ключей.
Функция поиска не выглядит надежной. Я запускаю его несколько раз (верхний регистр, нижний регистр и т. Д.), Но все еще нашел новое old_name для изменения.