asmalyshev
05-03-2011, 00:18
Написал скрипт, и хотел с Вами поделиться, может кому пригодиться в работе!
@Echo OFF
chcp 866 >nul
rem "Определяем УЗ которые удалять не надо"
Set DADM="HOMECREDIT\Domain Admins"
Set SADM="HOMECREDIT\SmallAdmins"
rem "Указываем SID"
Set AdmGroupSID=S-1-5-32-544
Set LocalAdmSID=S-1-5-%%-500
rem "Ищем встроеную УЗ Администратора"
For /F "UseBackQ Tokens=1* Delims==" %%I In (`WMIC UserAccount Where "LocalAccount = True And SID Like '%LocalAdmSID%'" Get Name /Value ^| Find "="`) Do Set LocalAdm="%%J"
rem "Ищем группу Администраторы"
For /F "UseBackQ Tokens=1* Delims==" %%I In (`WMIC Group Where "LocalAccount = True And SID Like '%AdmGroupSID%'" Get Name /Value ^| Find "="`) Do Set AdmGroup="%%J"
rem "Получаем список УЗ и работем с ним"
net localgroup %AdmGroup% > temp.txt
for /f "skip=6 Tokens=*" %%a in (temp.txt) do call :convert %%a
:convert
chcp 1251 >nul
echo %*>>admin.txt
set AdmAcc="%*"
chcp 866 >nul
del temp.txt
:CHECK
IF %AdmAcc%==%DADM% set AdmAcc==%SADM%
IF %AdmAcc%==%SADM% set AdmAcc==%LocalAdm%
IF NOT %AdmAcc%==%LocalAdm% (net localgroup %AdmGroup% %AdmAcc% /Delete)
IF NOT %ERRORLEVEL%==0 (EXIT)
@Echo OFF
chcp 866 >nul
rem "Определяем УЗ которые удалять не надо"
Set DADM="HOMECREDIT\Domain Admins"
Set SADM="HOMECREDIT\SmallAdmins"
rem "Указываем SID"
Set AdmGroupSID=S-1-5-32-544
Set LocalAdmSID=S-1-5-%%-500
rem "Ищем встроеную УЗ Администратора"
For /F "UseBackQ Tokens=1* Delims==" %%I In (`WMIC UserAccount Where "LocalAccount = True And SID Like '%LocalAdmSID%'" Get Name /Value ^| Find "="`) Do Set LocalAdm="%%J"
rem "Ищем группу Администраторы"
For /F "UseBackQ Tokens=1* Delims==" %%I In (`WMIC Group Where "LocalAccount = True And SID Like '%AdmGroupSID%'" Get Name /Value ^| Find "="`) Do Set AdmGroup="%%J"
rem "Получаем список УЗ и работем с ним"
net localgroup %AdmGroup% > temp.txt
for /f "skip=6 Tokens=*" %%a in (temp.txt) do call :convert %%a
:convert
chcp 1251 >nul
echo %*>>admin.txt
set AdmAcc="%*"
chcp 866 >nul
del temp.txt
:CHECK
IF %AdmAcc%==%DADM% set AdmAcc==%SADM%
IF %AdmAcc%==%SADM% set AdmAcc==%LocalAdm%
IF NOT %AdmAcc%==%LocalAdm% (net localgroup %AdmGroup% %AdmAcc% /Delete)
IF NOT %ERRORLEVEL%==0 (EXIT)