CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
-
volk1234
CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Написал себе простейший скрипт для рабочих групп-
создает Учетную запись администратора с паролем.
net user USER PASS /add
и так далее.
Проблемма в том, что иногда попадается англицкая винда и группа называется Administrators, а не Администраторы.
Я сделал простейший выбор через set /p, 1-ENG 2-RUS.
Есть ли способ получить в переменную название группы Администраторы.
создает Учетную запись администратора с паролем.
net user USER PASS /add
и так далее.
Проблемма в том, что иногда попадается англицкая винда и группа называется Administrators, а не Администраторы.
Я сделал простейший выбор через set /p, 1-ENG 2-RUS.
Есть ли способ получить в переменную название группы Администраторы.
-
etix
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Задачу получения имени локальных администраторов еще можно решить так:
Код:
Использовал на зоопарке русских и английских клиентских машин. См. также сообщение ниже от тов. Iska.
Код:
Код: Выделить всё
@set AdminName=Administrator
@net user %AdminName% 2>&1
@IF ERRORLEVEL 1 set AdminName=Администратор && chcp 866 >nul
@echo %AdminName%Использовал на зоопарке русских и английских клиентских машин. См. также сообщение ниже от тов. Iska.
-
Petya V4sechkin
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
volk1234, а есть ли смысл?
Можно просто обе команды выполнить:
Код:
и не напрягаться с выяснением.
Цитата volk1234:
Есть ли способ получить в переменную название группы Администраторы.
Встроенная группа Администраторы всегда имеет SID = S-1-5-32-544 (
Код:
или с помощью
Пример:
Код:
или так:
Код:
В переменной AdmGroup имя группы.
Можно просто обе команды выполнить:
Код:
Код: Выделить всё
net localgroup Администраторы /add USER
net localgroup Administrators /add USERи не напрягаться с выяснением.
Цитата volk1234:
Есть ли способ получить в переменную название группы Администраторы.
Встроенная группа Администраторы всегда имеет SID = S-1-5-32-544 (
KB243330
), получить имя по SID можно командой:Код:
Код: Выделить всё
WMIC Group Where "SID = 'S-1-5-32-544'" Get Nameили с помощью
PsGetSid
.Пример:
Код:
Код: Выделить всё
Set AdmGroupSID=S-1-5-32-544
Set AdmGroup=
ChCP 1251 >nul
For /F "Tokens=1* Delims=: " %%I In ('PsGetSid %AdmGroupSID% 2^>nul ^| Find /I "Alias:"') Do Set AdmGroup=%%J
ChCP 866 >nul
Set AdmGroup=%AdmGroup:~8%или так:
Код:
Код: Выделить всё
Set AdmGroupSID=S-1-5-32-544
Set AdmGroup=
For /F "UseBackQ Tokens=1* Delims==" %%I In (`WMIC Group Where "SID = '%AdmGroupSID%'" Get Name /Value ^| Find "="`) Do Set AdmGroup=%%J
Set AdmGroup=%AdmGroup:~0,-1%В переменной AdmGroup имя группы.
-
volk1234
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Мда. Все не так страшно как выглядит в коде 
Цитата:
volk1234, а есть ли смысл?
ну хотябы, чтобы не копатся выясняя - а не переименована ли группа Администраторы ...
Плюс, автоматически можно переименовать локальную учетку Администратор, и понизить ее до Пользователя.
Есть несколько организаций по 10 комп. в каждой, с обыной рабочей группой и зверинцем из программ на каждом рабочем месте.
Надо все это почистить, вот планирую ...

Цитата:
volk1234, а есть ли смысл?
ну хотябы, чтобы не копатся выясняя - а не переименована ли группа Администраторы ...
Плюс, автоматически можно переименовать локальную учетку Администратор, и понизить ее до Пользователя.
Есть несколько организаций по 10 комп. в каждой, с обыной рабочей группой и зверинцем из программ на каждом рабочем месте.
Надо все это почистить, вот планирую ...
-
Petya V4sechkin
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Цитата volk1234:
Плюс, автоматически можно переименовать локальную учетку Администратор
Тут запрос немного другой: у встроенного админа RID = 500 (окончание SID), поэтому:
Код:
Плюс, автоматически можно переименовать локальную учетку Администратор
Тут запрос немного другой: у встроенного админа RID = 500 (окончание SID), поэтому:
Код:
Код: Выделить всё
Set AdmAccountRID=500
Set NewAdmin=Adminn
WMIC UserAccount Where "LocalAccount = True And SID Like 'S-1-5-%%-%AdmAccountRID%'" Call Rename Name = "%NewAdmin%"-
volk1234
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Многоуважаемый Petya V4sechkin!
Остался у меня последний вопрос. Как получить в переменную и понизить в правах УЗ Администратор
то есть в итоге
Код:
чесно пытался почитать справку по коммандной строке wmic - страшное дело
еще конечно хотелось бы следующего:
определения всех УЗ с правами администратора.
ситуация самая обычная - компьютер на нем установлена WinXP с 2 УЗ: Администратор и Коля (с правами админа)
Необходимо это исправить, так как домена нету - исправить ручками или атоматизированно:
Админ запись Коля понизить до пользователя, Администратора понизить до пользователя. и так далее если админов больше....
Остался у меня последний вопрос. Как получить в переменную и понизить в правах УЗ Администратор
то есть в итоге
Код:
Код: Выделить всё
net localgroup %AdmGroup% %AdmName% /delete
net localgroup %UserGroup% %AdmName% /add
*все переменные надо получатьчесно пытался почитать справку по коммандной строке wmic - страшное дело

еще конечно хотелось бы следующего:
определения всех УЗ с правами администратора.
ситуация самая обычная - компьютер на нем установлена WinXP с 2 УЗ: Администратор и Коля (с правами админа)
Необходимо это исправить, так как домена нету - исправить ручками или атоматизированно:
Админ запись Коля понизить до пользователя, Администратора понизить до пользователя. и так далее если админов больше....
-
Petya V4sechkin
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Цитата volk1234:
Как получить в переменную
Вы же переименовали админа, поэтому должны знать новое имя (в 4-м посту переменная NewAdmin).
Цитата volk1234:
понизить в правах УЗ Администратор
Зачем? Не надо этого делать.
Просто задайте нормальный пароль.
Цитата volk1234:
Админ запись Коля понизить до пользователя, Администратора понизить до пользователя. и так далее если админов больше
Если переменная AdmGroup вычислена, а админ переименован (переменная NewAdmin), то список членов группы Администраторы (за исключением встроенного):
Код:
Вместо команды Echo %%I подставить желаемое (добавление в группу, удаление из группы).
P. S. Завтра еще проверю формат вывода Net LocalGroup на разных ОС.
Как получить в переменную
Вы же переименовали админа, поэтому должны знать новое имя (в 4-м посту переменная NewAdmin).
Цитата volk1234:
понизить в правах УЗ Администратор
Зачем? Не надо этого делать.
Просто задайте нормальный пароль.
Цитата volk1234:
Админ запись Коля понизить до пользователя, Администратора понизить до пользователя. и так далее если админов больше
Если переменная AdmGroup вычислена, а админ переименован (переменная NewAdmin), то список членов группы Администраторы (за исключением встроенного):
Код:
Код: Выделить всё
For /F "Delims=" %%I In ('Net LocalGroup "%AdmGroup%"') Do Set Last=%%I
For /F "Skip=6 Delims=" %%I In ('Net LocalGroup "%AdmGroup%"') Do (
If "%%I" Neq "%Last%" (
If "%%I" Neq "%NewAdmin%" (
Echo %%I
)
)
)Вместо команды Echo %%I подставить желаемое (добавление в группу, удаление из группы).
P. S. Завтра еще проверю формат вывода Net LocalGroup на разных ОС.
-
volk1234
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Цитата volk1234:
Как раз таки результат и встроенного админа выдает.
В вашем батнике не определена переменная NewAdmin.
И нет переименования:
Цитата volk1234:
автоматически можно переименовать локальную учетку Администратор
Цитата volk1234:
Set %admname(счетчик)%=%%I
А это зачем?
Как раз таки результат и встроенного админа выдает.
CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
В вашем батнике не определена переменная NewAdmin.
И нет переименования:
Цитата volk1234:
автоматически можно переименовать локальную учетку Администратор
CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
Цитата volk1234:
Set %admname(счетчик)%=%%I
CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
А это зачем?
-
Petya V4sechkin
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
с %NewAdmin% разобрался, супер, спасибо.
насчет счетчика -
чтобы переместить все учетки в группу пользователи, если у.з. больше одной,
админ1 > пользователь
админ2 > пользователь
админ3 > пользователь
а встроенную запись администратора по вашему совету, тогда просто запоролим.
Я понимаю, что вы не умеете читать мысли.
насчет счетчика -
чтобы переместить все учетки в группу пользователи, если у.з. больше одной,
админ1 > пользователь
админ2 > пользователь
админ3 > пользователь
а встроенную запись администратора по вашему совету, тогда просто запоролим.
Я понимаю, что вы не умеете читать мысли.

-
volk1234
Re: CMD/BAT - [решено] Как получить название группы Администраторов в переменную.
с %NewAdmin% разобрался, супер, спасибо.
насчет счетчика -
чтобы переместить все учетки в группу пользователи, если у.з. больше одной,
админ1 > пользователь
админ2 > пользователь
админ3 > пользователь
а встроенную запись администратора по вашему совету, тогда просто запоролим.
Я понимаю, что вы не умеете читать мысли.
насчет счетчика -
чтобы переместить все учетки в группу пользователи, если у.з. больше одной,
админ1 > пользователь
админ2 > пользователь
админ3 > пользователь
а встроенную запись администратора по вашему совету, тогда просто запоролим.
Я понимаю, что вы не умеете читать мысли.
