Работа с учетными данными пользователей.

Albert_researcher

Модератор
Команда форума
История Вани.
Родители купили мне к началу учебного года ноутбук. При его загрузке гордо красовался пользователь с учетной записью ВАНЯ. Я был очень доволен. К соседке приехала сестра с дочкой из Болгарии. Меня попросили уделить ей внимание и показать местные достопримечательности. Мы познакомились, и оказалось, что её тоже зовут ВАНЯ. Она долго хохотала над тем, что меня зовут девчачьим именем. Оказывается, мужской вариант имени в Болгарии будет ИВАН. Как мне с этим жить? Как поменять имя учетной записи пользователя на ИВАН? Помогите стать мужчиной!!!

Ну и как поменять имя учетки? Например, можно следующим образом:

wmic useraccount where name=’Старое_имя’ call rename Новое_имя

после нажатия Enter получил сообщение «Успешный вызов метода». Поменялось только отображение имени при логине, всё остальное осталось как было. Я пришел к мнению, что правильнее создать нового пользователя. Создал небольшой батник.
Работа с профилем пользователя:
* изменить имя компьютера
* создать нового пользователя
* удалить пользователя
* добавить пользователя в группу Администраторы
* удалить пользователя из группы Администраторы
* данные профиля пользователя
* применение групповой политики



Код:
@echo off
chcp 1251 >nul
mode con:cols=83 lines=35
cmd /c echo off | clip
:m1
Echo Choose what to change:
Echo 1 - change the computer name
Echo 2 - the creation of a new local user
Echo 3 - remove user
Echo 4 - adding a user to a group Administrators
Echo 5 - deleting a user from the administrators
Echo 6 - User profile data
Echo 7 - Apply Group Policy
Echo.
Set /p choice="Your choice: "
if not defined choice go to m1
if "%choice%"=="1" goto ch1
if "%choice%"=="2" goto ch2
if "%choice%"=="3" goto ch3
if "%choice%"=="4" goto ch4
if "%choice%"=="5" goto ch5
if "%choice%"=="6" goto ch6
if "%choice%"=="7" goto ch7
Echo.
Echo choice of job is not done correctly
Echo.
Echo.
goto m1
:ch1
Echo Computer Name %computername%
set /p NewName="Enter new Computer name: "
WMIC ComputerSystem where Name="%COMPUTERNAME%" call Rename Name="%NewName%"
Echo Now the computer will reboot
pause
Shutdown /r /t 000
:ch2
set /p NewName="Enter new local User: "
set /p NewPassw="Enter Password: "
net user %NewName% %NewPassw% /add
net localgroup Администраторы %NewName% /add >nul 2>nul
net localgroup Administrators %NewName% /add >nul 2>nul
net accounts /maxpwage:unlimited
Echo Now there will be a re-login
pause
shutdown -l
:ch3
net user
set /p DelUser="Enter User for delete: "
net user /delete %DelUser%
Echo Now there will be a re-login
pause
shutdown -l
:ch4
net user
SET /P USER="Set user name: "
net localgroup Администраторы %USER% /add >nul 2>nul
net localgroup Administrators %USER% /add >nul 2>nul
echo;
cmd /c echo Now you will receive administrator rights
cmd /c echo after re-login, enter the password
echo;
pause
shutdown -l
:ch5
net user
SET /P USER="Set user name: "
net localgroup Администраторы %USER% /delete >nul 2>nul
net localgroup Administrators %USER% /delete >nul 2>nul
echo;
cmd /c echo Now you will receive user rights
cmd /c echo after re-login, enter the password
echo;
chcp 866 >nul 2>nul
pause
shutdown -l
:ch6
Echo user profile data is in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\"Value SID"
net user
SET /P USER="Set user name: "
wmic useraccount where name="%user%" get sid
goto m1
:ch7
gpupdate /force
Echo Now the computer will reboot
pause
Shutdown /r /t 000
Не расписываю, так как фрагменты кода небольшие и соответствуют пунктам меню. Может быть у кого-то будут свои мнения и советы, прошу поделиться.
 
Последнее редактирование:

Joker-2013

Администратор
Я пришел к мнению, что правильнее создать нового пользователя
задачи бывают разные... Например Ваня серфил в интернете в браузере Хром и сохранял пароли в браузере
Так же использовал программа, которые хранят свои секреты в LSA
В таком случае, даже просто сбросить пароль пользователя, можно потерять часть важных данных.
Имя папки пользователя, можно поменять в реестре, после того как поменяете его отображаемое имя.
Для смены таких данных, как я считаю, нужен другой подход. А именно редактирование реестра и лучше это делать из WinPE, там будет доступ к кусту реестра SAM, но не факт что он нужен, так как имя папки в файловой системе, относящаяся к конкретному пользователю, находится в кусте SoftWare и к нему есть доступ Администратору компьютера...

Только нужно получить RID пользователя (точнее полный SID), а тут наверное, батник бессилен
 

Joker-2013

Администратор
Тут вообще всё интересно. Имя пользователя, название папки профиля, не важно.
Система оперирует SID и RID и ей пофиг как называется группа Администраторов, например.
Или папка пользователя. Можно поиграться, например...
Создать два пользователя и сменить имя папки в реестре на имя другого и с другим поступить так же
Потом зайти под каждым и создадутся папки с именами и система будет работать с ними.
Если переименовать уже созданную в какой был произведен вход, или подмахнуть папку для другого пользователя, то будут проблемы с правами, так как они тоже зависят от RID....
Занимательно всё это. Я провёл множество эксперементов и понял что винда, дырявая как решето.
Или форточка без петель и задвижки.... Стоит только надавить и можно лезть куда угодно.
Только нужен, оригинальный подход и образ мышления, не как у программеров майкрософт....
Вроде накрутили с хешами, но не додумались что одна лишь незначительная правка реестра, может отключить надобность в вводе пароля при входе в учетку...
 

Albert_researcher

Модератор
Команда форума
SID (идентификатор безопасности) пользователя можно найти используя в командной строке код:
wmic useraccount where name="USER" get sid
где вместо USER подставляем имя нужного пользователя
или для текущего пользователя
whoami /user

C:\Users\Albert>whoami /user
Сведения о пользователе
----------------
Пользователь SID
============ ==============================================
ant\albert S-1-5-21-...-...-...-1001
C:\Users\Albert>

Я пробовал в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
в каталоге ProfileImagePath в S-1-5-21 с префиксом SID сменить имя пользователя на правильное (то, на что поменял) и получил проблему в виде входа с временным профилем. Различные танцы с бубном ни к чему не привели, после этого решил, что лучше создавать нового пользователя.
 
Последнее редактирование:

Joker-2013

Администратор
В каждой папке пользователя, есть ещё свой файл реестра NTUSER.DAT, возможно какое то несоответствие. С этим всем можно поиграться...
 

Albert_researcher

Модератор
Команда форума
Вот нашел инструкцию по замене имени пользователя:
При смене имени пользователя, изменяется только отображаемое имя, которое вы видите в меню Пуск и на экране приветствия при входе в Windows, при этом имя папки пользователя не изменяется.

Как изменить имя пользователя локальной учетной записи в командной строке
Запустите командную строку от имени администратора и выполните команду следующего вида:

wmic useraccount where name="Старое_Имя" rename "Новое_имя"

Замените Старое_Имя в команде на имя пользователя локальной учетной записи которую нужно переименовать.
Замените Новое_Имя в команде на новое имя учетной записи.

* Итак, предположим что мы изменили имя учетной записи и нам нужно переименовать папку пользователя. Вам потребуется еще один локальный аккаунт администратора на компьютере. Создайте новую локальную учетную запись с административными привилегиями.
* Далее выйдите из системы и войдите под созданной учетной записью, которая наделена правами администратора (например NewAdmin).
Перейдите в папку Пользователи, размещенную на системном диске (обычно диск С), щелкните правой кнопкой мыши на папке имя которой хотите изменить (в данном случае папка User) и в контекстном меню выберите пункт Переименовать.
Переименовываем папку (например NewUser).
* Далее откройте редактор реестра и перейдите по следующему пути:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

Найдите подраздел имеющий в имени символы S-1-5-21~. Найдите параметр ProfileImagePath, значение которого будет соответствовать названию папки, которую вы хотите переименовать. Дважды щелкните левой кнопкой мыши по параметру ProfileImagePath и укажите новое имя папки, нажмите кнопку ОK. Закройте редактор реестра.
* Выйдите из системы, и войдите с учетной записью у которой вы переименовали папку пользователя. Если созданный специально для этих изменений аккаунт вам больше не нужен, вы можете его удалить

* Не забывайте, что очень много настроек и параметров программ и операционной системы хранятся именно в профиле пользователя. Чем больше программ установлено на вашем компьютере, тем больше вероятность, что проделанных изменений будет недостаточно. Скорее всего в реестре Windows будет запись, содержащая полный путь к какому-нибудь файлу или папке, которые находятся в профиле пользователя и этот путь будет указан со ссылкой на старую, теперь уже не существующую папку. Это может привести к проблемам в работе некоторых программ.
Можно попытаться избежать подобных проблем. Для этого нужно будет внимательно изучить ВЕСЬ реестр на наличие ссылок на старую, уже переименованную папку.
Для этого в редакторе реестра вызываем окно поиска нажав сочетание клавиш Ctrl + F, в строке поиска вводим путь к старой папке профиля и нажимаем кнопку "Найти далее".
Внимательно изучите все найденные параметры и в случае необходимости измените название папки на вновь переименованную. Затем нажмите клавишу F3, чтобы продолжить поиск и так до самого конца, то есть до появления окна "Поиск в реестре завершен".

Изменение имени пользователя.
* Нам потребуется еще один локальный аккаунт администратора на компьютере. Создаем новую локальную учетную запись с административными привилегиями (например AdmTemp).
* Поменяем имя пользователя. Перезагрузимся.
* Далее войдем под созданной учетной записью, которая наделена правами администратора (например AdmTemp).
Перейдите в папку Пользователи, размещенную на системном диске (обычно диск С:\\Users\), щелкните правой кнопкой мыши на папке имя которой хотите изменить и в контекстном меню выберите пункт Переименовать.
Переименовываем папку (название которое было переименуем на новое).
* Далее открываем редактор реестра и переходим по следующему пути:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

Найдите подраздел имеющий в имени символы S-1-5-21~. Найдите параметр ProfileImagePath, значение которого будет соответствовать названию папки, которую вы хотите переименовать. Дважды щелкните левой кнопкой мыши по параметру ProfileImagePath и укажите новое имя папки, нажмите кнопку ОK. Закройте редактор реестра.
* Выйдите из системы, и войдите с учетной записью у которой вы переименовали папку пользователя. Если созданный специально для этих изменений аккаунт вам больше не нужен, вы можете его удалить

@Echo off
chcp 1251 >nul
mode con:cols=83 lines=35
Echo Create a temporary user with administrator privileges "AdmTemp", a password 666
net user AdmTemp 666 /add
net localgroup Администраторы AdmTemp /add >nul 2>nul
net localgroup Administrators AdmTemp /add >nul 2>nul
net accounts /maxpwage:unlimited
net user
set /p OldName="Enter old user name: "
set /p NewName="Enter new user name: "
Echo %OldName%
Echo %NewName%
pause
wmic useraccount where name="%OldName%" Rename "%NewName%"
Echo Sign AdmTemp user and rename the folder C: \\ User \ User
Echo In the registry HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList
Echo in ProfileImagePath directory S-1-5-21 with the prefix SID change the username on the new
Echo Now the computer will reboot
pause
Shutdown /r /t 000

И что лучше: изменить имя или сразу создать учетную запись с нужным именем и с помощью Save User Data v2 сохранить данные и накатить в папку с новым пользователем (вероятно потребуется переустановка программ).
 
Последнее редактирование:
Верх