Войти

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


maxim43g
02-12-2020, 17:06
подскажите пожалуйста, у меня есть батник для подключения сетевого диска путем проверки имени пользователя, часть его выглядит так
IF %USERNAME%.==vasiliy. net use k: \\10.11.12.2\Disk_K /persistent:no

скажите, можно ли добавить в батник, что то, что бы он проверял, входит ли пользователь в группу "Пользователи домена", и если да, то выполнял скрытно .bat файл по указанному пути
допусти
if %group% == "пользователи домена" выполнить \\10.11.12.2\1.bat

группа доменная

alpap
02-12-2020, 23:07
"Пользователи домена" »
S-1-5- < domain > -513
---
например (и обернуть в for /f как ниже):
wmic USERACCOUNT where "domain='здесь имя домена'" get Name
или

@echo off
for /f "tokens=2 delims==" %%a in ('wmic USERACCOUNT where "SID like 'S-1-5-%%-513'" get Name /value^|find "="') do echo %%a
pause

Iska
03-12-2020, 01:43
Или так:
(whoami.exe /groups | >nul 2>&1 find.exe /i "BUILTIN\Пользователи" ) && call echo + || call echo -
На месте BUILTIN\Пользователи должно быть наименование искомой группы.

alpap
03-12-2020, 02:08
Или так »
только тут стоит уточнить что это для одного (текущего) пользователя проверка.

Iska
03-12-2020, 02:45
только тут стоит уточнить что это для одного (текущего) пользователя проверка. »
А какой ещё может быть при пользовании %username%:
у меня есть батник для подключения сетевого диска путем проверки имени пользователя, часть его выглядит так
IF %USERNAME%.==vasiliy. net use k: \\10.11.12.2\Disk_K /persistent:no »
? :)

maxim43g
03-12-2020, 10:27
alpap, а где указывать путь к .bat фалу?

alpap
03-12-2020, 15:26
А какой ещё может быть при пользовании %username% »
ну в данном-то случае - да
а где указывать путь »
команду имеется ввиду, наверное
так (для всех юзеров этой группы):

@echo off
for /f "tokens=2 delims==" %%a in ('wmic USERACCOUNT where "SID like 'S-1-5-%%-513'" get Name /value^|find "="') do if not "%%a"=="" выполнить \\10.11.12.2\1.bat
pause

или проще так (если надо проверить только относительно текущего юзера):

wmic USERACCOUNT where "SID like 'S-1-5-%%-513'" get Name /value|>nul find /i "%UserName%"&& выполнить \\10.11.12.2\1.bat

или как предложил Iska (только я поиск по SIDу поставил чтобы избежать кириллицу в имени группы)

WHOAMI /GROUPS|>nul findstr S-1-5-.*-513&& выполнить \\10.11.12.2\1.bat

maxim43g
03-12-2020, 20:54
alpap, в .bat прямо по русски "выполнить" писать?

alpap
03-12-2020, 21:35
maxim43g, я бы сейчас сказал по какому писать ..., ну да ладно.
строка
выполнить \\10.11.12.2\1.bat »
взята из вашего выше приведенного кода и я думал вам известно что вы хотите и куда чего писать в случае успешной помощи по:
входит ли пользователь в группу "Пользователи домена" »
телепатов тут нет чтобы знать чего ваша душа желает выполнить в случае удачи.
Для запуска bat достаточно указать его имя или полный путь к нему или запустить с помощью:

start "" name.bat

DJ Mogarych
04-12-2020, 09:11
А зачем эти извращения, когда существуют доменные политики?

alpap
04-12-2020, 12:58
DJ Mogarych, я думаю из п8 понятна осведомленность о политиках




© OSzone.net 2001-2012