Показать полную графическую версию : Управление настройками пользователя через CMD (тонкие настрйоки)
Всем привет. Сейчас попробую обрисовать некую проблемку. Прошу отвечать по существу.
Есть ЗАДАЧА: создать пользователя через батник на любом языке стандартной серверной ОС к примеру Windows SRV2012R2 с некоторыми настройками, а именно - установить время завершения отключенного сеанса (терминального).
Эту галочку можно поставить руками, открыв пользователя через GUI, но нужно внести эту настройку в батник. Найти нигде не могу. Подскажите плиз. Имеем такой скрипт, он рабочий.
set name=userpc
set pass=password
set comm="new user"
net user %name% %pass% /add /comment:%comm% /countrycode:0 /expires:never /fullname:"%name%" /passwordchg:no
net localgroup "Пользователи удаленного рабочего стола" %name% /add
wmic path Win32_UserAccount where Name=%name% set PasswordExpires=false
как видно из скрипта создается все хорошо, но чтобы установить параметр - завершния отключенного сеанса или управление пользователем без согласия - нужно заходить через GUI.
Для более понятной ситуации вот картинка где надо поставить значение
кодировка DOS конечно же - это я к тому что в этот же батник не получится вставить любой срипт для powershell типа
$Users = Import-CSV “c:\temp\users.csv”
если через ps делать, то нужно через другой батник с другой кодировкой, но это конечно не такая уж проблема)
PowerShell:
$u = [ADSI]"WinNT://$env:computer/$name"
$u.InvokeSet("MaxDisconnectionTime",1)
$u.SetInfo()
VBScript:
strAccount = "Пользователь"
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set objUser = GetObject("WinNT://" & strComputer & "/" & strAccount & ",User")
objUser.MaxDisconnectionTime = 1
objUser.SetInfo
чет не могу разобраться. подскажите как внести это все в мой батник, чтобы автоматизировать процесс
Ошибка в ps
хочется чтобы все было в одном батнике, сверху ввел имя и пароль - остальное переменными
Сохранить скрипт C:\Scripts\ms.ps1:
param($name)
$u = [ADSI]"WinNT://$env:computername/$name"
$u.InvokeSet("MaxDisconnectionTime",1)
$u.SetInfo()
В батник добавить:
powershell -NoLogo -ExecutionPolicy ByPass -NoProfile -File C:\Scripts\ms.ps1 %name%
о да! синтаксис для меня не особо знакомый)) но работает!
еще тогда просьба - дабы доработать это все. как снять галочку "Запрашивать разрешение пользователя"
$u.InvokeSet("EnableRemoteControl",2)
ОК!!!
В итоге имеем такую картину:
скрипт батника
set name=User
set pass=Password
set comm="Пользователь"
net user %name% %pass% /add /comment:%comm% /countrycode:0 /expires:never /fullname:"%name%" /passwordchg:no
net localgroup "Пользователи удаленного рабочего стола" %name% /add
wmic path Win32_UserAccount where Name=%name% set PasswordExpires=false
powershell -NoLogo -ExecutionPolicy ByPass -NoProfile -File %SystemDrive%\Users\Администратор\Desktop\ADD\ms.ps1 %name%
cd %SystemDrive%\Users\Администратор\Desktop\ADD
runasusr.exe %name% %pass% "%windir%\system32\explorer.exe"
xcopy "%SystemDrive%\Users\Администратор\Desktop\ADD\1C" "%SystemDrive%\Users\%name%\AppData\Roaming\1C\" /H /Y /C /R /S
утилита runasusr.exe позволяет запустить от имени созданного пользователя эксплорер для создания системой пользовательского каталога и передает пароль, чего не умеет делать runas
далее копируем готовый конфиг 1С с прописанными путями
И в итоге имеем полностью чистого юзера, готового к работе в RemoteAPP с 1С
конфиг скрипта ms.ps1
param($name)
$u = [ADSI]"WinNT://$env:computername/$name"
$u.InvokeSet("MaxDisconnectionTime",5)
$u.InvokeSet("EnableRemoteControl",2)
$u.SetInfo()
Kazun, еще вопрос пока не закрыли тему)))
как автоматизировать этот процесс, чтобы создавать несколько пользователей за раз, как указывать? где? через запятую или из файла?
подскажи!
В этом батнике получается нужно указывать переменную с паролем и логином для одного - и все ОК!
вопрос такой в связи с ситуацией:
есть сервер рабочий и нужно создать пользователей с такими параметрами как написано выше в количестве 100 человек и занести их куда нибудь, в csv например и потом из этого же csv их пересоздать на зеркальном сервере (без домена, без всего, просто запасная терминалка). получается держать пользователей в таблице очень удобно и создавать "клонов" на другом сервере. скорее всего же достаточно будет иметь в таблице только указанные в батнике переменные, так как остальные параметры идентичны
добавил переменную на путь, теперь где бы ни лежали файлы и скрипты - в любой папке (главное чтобы в пути не было кириллицы, иначе ps1 не работает) - запускается создание нового пользователя
set name=60
set pass=passwords
set comm="Пользователь"
set road=%cd%
net user %name% %pass% /add /comment:%comm% /countrycode:0 /expires:never /fullname:"%name%" /passwordchg:no
net localgroup "Пользователи удаленного рабочего стола" %name% /add
wmic path Win32_UserAccount where Name=%name% set PasswordExpires=false
powershell -NoLogo -ExecutionPolicy ByPass -NoProfile -File %road%\ms.ps1 %name%
cd %road%
runasusr.exe %name% %pass% "%windir%\system32\explorer.exe"
xcopy "%road%\1C" "%SystemDrive%\Users\%name%\AppData\Roaming\1C\" /H /Y /C /R /S
разобрался с путями, надо заключить в кавычки путь до ps1 и тогда что на кириллице что на латинице с пробелами и без путь считывается корректно
set name=67
set pass=psswords
set comm="Пользователь"
set road=%cd%
net user %name% %pass% /add /comment:%comm% /countrycode:0 /expires:never /fullname:"%name%" /passwordchg:no
net localgroup "Пользователи удаленного рабочего стола" %name% /add
wmic path Win32_UserAccount where Name=%name% set PasswordExpires=false
powershell -NoLogo -ExecutionPolicy ByPass -NoProfile -File "%road%\ms.ps1" %name%
cd %road%
runasusr.exe %name% %pass% "%windir%\system32\explorer.exe"
xcopy "%road%\1C" "%SystemDrive%\Users\%name%\AppData\Roaming\1C\" /H /Y /C /R /S
главное это кавычки "%road%\ms.ps1"
хочется чтобы все было в одном батнике, сверху ввел имя и пароль - остальное переменными »
Делайте всё на PowerShell: создание пользователя, настройки параметров учётной записи, добавление в группу безопасности и т.п.
на PS не очень силен в синтаксисе, особенно что касается "тонких" настроек, да и в интернете статей то не особо.
Skylear, можно просто взять скрипт на WSH и попробовать перевести его на PoSH. Сравните, скажем, коды PoSH и WSH во втором сообщении (http://forum.oszone.net/post-2536924.html#post2536924).
насколько я знаю выгрузка пользователей из csv-файла возможна в powershell, но это актуально для AD. в моем случае это терминальный сервер и еще один терминальный запасной. и при создании нового пользователя, хотелось бы заносить его в таблицу и запускать скрипт (в котором в свою очередь кроме создания самого пользователя есть еще настройки, запуск explorer.exe и копирование конфига 1С). Может подскажете как сделать параметр в этом батнике? а через другой батник вводить просто пользователей через запятую с ссылкой на сам скрипт?? такое возможно?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.