Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » [решено] Переименование существующего пользователя из командной строки

Ответить
Настройки темы
[решено] Переименование существующего пользователя из командной строки

Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Ну, собственно как?
Задача такая. Есть образ, он раскатывается с сервака Acronis SD на несколько компов. Там(в имидже) уже существет пользователь "User" с паролем "123", оставлен был потому, что к нему привязано несколько специфичных кривых софтинок и возиться с тем что, куда и сколько они пишут и почему только под юзера никто не хотел. SID при первой загрузке меняется. Дальше стоит задача "батником" переименовать этого юзера в заданное имя и сменить пароль на новый. Порылся тщательно, простите, если пропустил и не увидел, но нашел инфу по созданию юзеров из командной строки, а по переименованию существующих и замене им пароля не нашел. Подскажите решение или ткните носом в ссылку, если пропустил. Заранее всем спасибо.

Отправлено: 01:58, 04-12-2006

 

(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Aushkin
Цитата:
а по переименованию существующих
http://forum.oszone.net/post-413826-13.html
Цитата:
и замене им пароля
net user /?

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 03:49, 04-12-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Большое спасибо!

Отправлено: 18:58, 04-12-2006 | #3


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Создал в Acronis SnapDeploy темплейт, после раскатки образа на целевую машину на неё в %WINDIR% копируются нужные файлы и запускается батник.

Код: Выделить весь код
cmdow @ /HID
@echo off
renuser User NewUser
net user NewUser password
exit
Утилитка отрабатывает но не дает акронису перезагрузить машину после смены SID, кроме того, после ребута в документс энд сетингс обнаруживается дополнительная юзерская директория NewUser, а в панеле управления в управлении юзерами имя пользователя вообще остаётся прежним, хотя вход в систему осуществляется уже с новым логином и паролем. при этом и отдельного юзера NewUser тоже не создано. Вот такая вот странная работа.

Со второй утилиткой


Код: Выделить весь код
cmdow @ /HID
@echo off
NetUser User /name:NewUser
net user NewUser password
exit
она тоже отрабатывает и тоже не даёт акронису после смены SID ребутнуться автоматом.
После принудительного ребута дополнительной юзерской директории в документс энд сетингс нет, вход в систему так же с новым именем и паролем, но опять таки в панели управления в управлении юзерами имя пользователя так и остаётся User.

Либо я что-то делаю не так, либо утилитки не полностью работоспособны под XP SP2 и первая делает не всё и не так, вторая ближе к теме, но тоже явно не всё и не везде, где нужно.

Отправлено: 01:08, 05-12-2006 | #4


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Aushkin
Тогда не проще ли скопировать профиль NewUser в Default User, NewUser сразу удалить?

Отправлено: 11:46, 05-12-2006 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Aushkin...
испытай тогда еще вариант средствами AutoIT-скрипта, вроде работает (не забудь скомпилировать в EXE):
Код: Выделить весь код
; Переименование и смена пароля локального пользователя.
; Использование:
;   AutoIT3.Exe LUserRen.Au3 OldUser NewUser [Password]
;   LUserRen.Exe OldUser NewUser [Password]
Select
    Case $CmdLine[0] = 2
        If _NetUserRename ($CmdLine[1], $CmdLine[2]) Then Exit (@error)
    Case $CmdLine[0] = 3
        If _NetUserSetPassword ($CmdLine[1], $CmdLine[3]) Then Exit (@error)
        If _NetUserRename ($CmdLine[1], $CmdLine[2]) Then Exit (@error)
    Case Else
        MsgBox (16, 'Ошибка', "Недопустимое количество параметров")
EndSelect

; API-реализация функции переименования локального пользователя
Func _NetUserRename ($sOldUser, $sNewUser, $sServer = "")
    Local $ret,  $uBUF = DllStructCreate ("ptr")
    Local $iCParLen = StringLen ($sNewUser)+1, $iWParLen = BitShift ($iCParLen, -1)
    Local $uWPar = DllStructCreate ("byte[" & $iWParLen & "]")
    $ret = DllCall ("kernel32.dll", "int", "MultiByteToWideChar", _
        "int", 0, _
        "int", 0, _
        "str", $sNewUser, _
        "int", $iCParLen, _
        "ptr", DllStructGetPtr ($uWPar, 1), _
        "int", $iWParLen)
    DllStructSetData ($uBUF, 1, DllStructGetPtr ($uWPar, 1))
    $ret = DllCall ("netapi32.dll", "int", "NetUserSetInfo", _
        "wstr", $sServer, _
        "wstr", $sOldUser, _
        "int", 0, _
        "ptr", DllStructGetPtr ($uBUF), _
        "ptr", 0 )
    If $ret[0] Then
        SetError ($ret [0])
        Return -1
    Else
        Return 0
    EndIf
EndFunc

; API-реализация функции смены пароля локального пользователя
Func _NetUserSetPassword ($sUser, $sPassword, $sServer = "")
    Local $ret,  $uBUF = DllStructCreate ("ptr")
    Local $iCParLen = StringLen ($sPassword)+1, $iWParLen = BitShift ($iCParLen, -1)
    Local $uWPar = DllStructCreate ("byte[" & $iWParLen & "]")
    $ret = DllCall ("kernel32.dll", "int", "MultiByteToWideChar", _
        "int", 0, _
        "int", 0, _
        "str", $sPassword, _
        "int", $iCParLen, _
        "ptr", DllStructGetPtr ($uWPar, 1), _
        "int", $iWParLen)
    DllStructSetData ($uBUF, 1, DllStructGetPtr ($uWPar, 1))
    $ret = DllCall ("netapi32.dll", "int", "NetUserSetInfo", _
        "wstr", $sServer, _
        "wstr", $sUser, _
        "int", 1003, _
        "ptr", DllStructGetPtr ($uBUF), _
        "ptr", 0 )
    If $ret[0] Then
        SetError ($ret [0])
        Return -1
    Else
        Return 0
    EndIf
EndFunc

Отправлено: 11:53, 05-12-2006 | #6


Новый участник


Сообщения: 20
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата:
Aushkin
Тогда не проще ли скопировать профиль NewUser в Default User, NewUser сразу удалить?
Так и делалось, но к сожалению и по непонятным причинам некоторые специфические софтинки под вновь созданным юзером не запускались и приходилось их ставить вручную. Хотя все настройки вроде бы переносились. Это как с renuser, вро де бы делает, и даже работает, но не всё и не везде. Ладно, буду копться дальше. Думаю проще будет наверное разобраться с этими кривыми софтинками и потом просто скидывать инфу в реестр под новым юзером. Тоже выход.

Отправлено: 17:25, 05-12-2006 | #7



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » [решено] Переименование существующего пользователя из командной строки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Завершение программы из командной строки Severny Скриптовые языки администрирования Windows 13 21-04-2013 20:50
CMD/BAT - [решено] архиватор 7z и командной строки Daemon.XP Скриптовые языки администрирования Windows 4 15-07-2009 11:40
Службы - [решено] network down из командной строки Daemon.XP Microsoft Windows 2000/XP 3 02-03-2009 21:59
[решено] Создание e-mail для существующего пользователя Delirium Microsoft Exchange Server 2 06-06-2008 03:45
[решено] Утилиты командной строки kapitanvagin Программное обеспечение Windows 1 28-03-2008 22:56




 
Переход