Войти

Показать полную графическую версию : Проблема при создании юзера из командной строки


BACbOK
10-08-2012, 13:55
Народ, помогите, плз, советом. Ситуация такая:
На многих машинах (Windows 2000 SP4, WindowsXP SP2/3) надо создать, допустим, по 30 юзеров.
Решил написать для этого скрипт.
Содержание скрипта таково:

net user bacbok passwd /add /expires:never /passwordchg:no
net localgroup Administrators /add bacbok
net localgroup Users /delete bacbok


Но мне надо ещё в свойствах учётной записи юзера добавить home directory, а как это сделать?
Добавить Local path (/homedir:path) я могу, но это мне не надо,
мне надо добавить именно Connect, присвоить ему именно букву диска F: и прописать именно такой путь - \\server\bacbok

http://storage8.static.itmages.ru/i/12/0810/h_1344592031_1944430_b35c559d33.png (http://itmages.ru/image/view/631380/b35c559d)

Ну и ещё /expires:never не работает, видел на просторах Интернета, что вместо этой команды люди используют
net accounts /maxpwage:unlimited
как по-вашему правильнее реализовать всё это?

Petya V4sechkin
10-08-2012, 16:22
BACbOK, есть консольная утилита Cusrmgr.exe (http://www.windowsitpro.com/article/tips/jsi-tip-2445-console-user-manager-) и соответствующие опции -h и -H

Также можно сделать VBS-скриптом
WinNT Custom User Properties (http://msdn.microsoft.com/en-us/library/windows/desktop/aa746535(v=vs.85).aspx)

Iska
10-08-2012, 17:15
BACbOK, попробуйте так:
Option Explicit

Const ADS_UF_PASSWD_CANT_CHANGE = &H00000040
Const ADS_UF_DONT_EXPIRE_PASSWD = &H00010000

Dim strComputer
Dim objIADsComputer
Dim strUser

For Each strComputer In Array("Machine01", "Machine02", "MachineN")
Set objIADsComputer = GetObject("WinNT://" & strComputer & ",computer")

For Each strUser In Array("User01", "User02", "UserN")
With objIADsComputer.Create("user", strUser)
.SetPassword "Some Password"

.Put "userFlags", CLng(ADS_UF_DONT_EXPIRE_PASSWD Or ADS_UF_PASSWD_CANT_CHANGE)
.Put "HomeDirDrive", "F:"
.Put "HomeDirectory", "\\server\bacbok"

.SetInfo

objIADsComputer.GetObject("group","Administrators").Add(.ADsPath)
End With
Next

Set objIADsComputer = Nothing
Next

WScript.Quit 0

Правда, зачем всех созданных пользователей в «Администраторы» добавлять — мне лично непонятно.

BACbOK
10-08-2012, 23:07
Iska, "Administrators", это я так, для примера написал.
У меня есть несколько групп разделенных в правах как надо. :)
З.Ы. А за скрипт спасибо.




© OSzone.net 2001-2012