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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Управление настройками пользователя через CMD (тонкие настрйоки)

Ответить
Настройки темы
Любой язык - Управление настройками пользователя через CMD (тонкие настрйоки)

Пользователь


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

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


Изменения
Автор: Skylear
Дата: 04-08-2015
Изображения
Тип файла: png Ustanovka_RemoteApp_009.png
(23.2 Kb, 4 просмотров)
Всем привет. Сейчас попробую обрисовать некую проблемку. Прошу отвечать по существу.
Есть ЗАДАЧА: создать пользователя через батник на любом языке стандартной серверной ОС к примеру 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 делать, то нужно через другой батник с другой кодировкой, но это конечно не такая уж проблема)

Отправлено: 19:03, 04-08-2015

 

Ветеран


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

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


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

Последний раз редактировалось Kazun, 04-08-2015 в 20:25. Причина: Перепутал с AD

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:07, 04-08-2015 | #2



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

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


Пользователь


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

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


чет не могу разобраться. подскажите как внести это все в мой батник, чтобы автоматизировать процесс

Отправлено: 20:52, 04-08-2015 | #3


Пользователь


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

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


Изображения
Тип файла: jpg 85й.jpg
(225.9 Kb, 5 просмотров)

Ошибка в ps
хочется чтобы все было в одном батнике, сверху ввел имя и пароль - остальное переменными

Отправлено: 20:56, 04-08-2015 | #4


Ветеран


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

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


Сохранить скрипт 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%
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:59, 04-08-2015 | #5


Пользователь


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

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


Изображения
Тип файла: jpg Безымя1111нный.jpg
(79.3 Kb, 3 просмотров)

о да! синтаксис для меня не особо знакомый)) но работает!
еще тогда просьба - дабы доработать это все. как снять галочку "Запрашивать разрешение пользователя"

Отправлено: 21:05, 04-08-2015 | #6


Ветеран


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

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


$u.InvokeSet("EnableRemoteControl",2)
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:13, 04-08-2015 | #7


Пользователь


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

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


Вложения
Тип файла: rar runasusr.rar
(19.2 Kb, 0 просмотров)

ОК!!!
В итоге имеем такую картину:
скрипт батника
Код: Выделить весь код
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()

Последний раз редактировалось Skylear, 04-08-2015 в 21:32.


Отправлено: 21:21, 04-08-2015 | #8


Пользователь


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

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


Kazun, еще вопрос пока не закрыли тему)))
как автоматизировать этот процесс, чтобы создавать несколько пользователей за раз, как указывать? где? через запятую или из файла?
подскажи!


В этом батнике получается нужно указывать переменную с паролем и логином для одного - и все ОК!
вопрос такой в связи с ситуацией:
есть сервер рабочий и нужно создать пользователей с такими параметрами как написано выше в количестве 100 человек и занести их куда нибудь, в csv например и потом из этого же csv их пересоздать на зеркальном сервере (без домена, без всего, просто запасная терминалка). получается держать пользователей в таблице очень удобно и создавать "клонов" на другом сервере. скорее всего же достаточно будет иметь в таблице только указанные в батнике переменные, так как остальные параметры идентичны

Последний раз редактировалось Skylear, 04-08-2015 в 21:30.


Отправлено: 21:24, 04-08-2015 | #9


Пользователь


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

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


добавил переменную на путь, теперь где бы ни лежали файлы и скрипты - в любой папке (главное чтобы в пути не было кириллицы, иначе 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"

Отправлено: 21:45, 04-08-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Управление настройками пользователя через CMD (тонкие настрйоки)

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как восстановить профиль пользователя в XP со всеми настройками. Диск переполнился... q12357 Флейм 1 14-03-2015 17:06
CMD/BAT - [решено] Проблема создания пользователя через CMD Тишина Скриптовые языки администрирования Windows 4 03-07-2012 12:21
Управление настройками Виндовс через реестр maerbek Хочу все знать 2 04-12-2008 11:34
[Ъ] Управление пользовательскими данными и настройками Vadikan Microsoft Windows NT/2000/2003 27 15-05-2007 13:37
Решено | Управление с помощью cmd Traktorist Microsoft Windows 2000/XP 2 04-05-2006 17:14




 
Переход