|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Правка файла hosts c правами администратора |
|
CMD/BAT - [решено] Правка файла hosts c правами администратора
|
Ветеран Сообщения: 1594 |
Профиль | Отправить PM | Цитировать Ситуация.
Нужно на 63 компах в файл hosts дописать сайт интрасети. Как вызвать консоль с правами администратора понятно. А как все впихнуть в один cmd? 1й кусок: 2й кусок: Заранее спасибо. |
|
------- Отправлено: 23:00, 02-12-2010 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:27, 03-12-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Цитата James Marsh:
2. Предполагаю, что команду запуска "RunAs" Вы подправите, так же не забудте подправить содержимое переменной "AddText", ну и на выходе имеете рядом со скриптом текстовик со списком компов, где скрипт попытался внести корекции. 3. Скрипт проверяет на наличие в файле "hosts" добавляемой строки (чтобы не добавлять их по десять раз), но при этом делает весьма посредственное сравнение и замена пробела на табулятор или на несколько пробелов приведут к тому, что строка найдена не будет и заново добавится, но уже с другими разделителями. 4. Список компов берется перебором всех IP имеющихся на компе подсетей. @Echo off if "%1"=="proceed" goto :Proceed runas /profile /user:SMCMD\time_adm 12345 ""%ComSpec%" /c "%~0" proceed" exit :Proceed setLocal EnableExtensions rem =============================== set AddText=192.168.2.252 smcmd.net rem =============================== set LAN=0&set Mask=0&set Addr=0&set Max=0 set tmp="%TEMP%\%~n0%random%%time:~-2%.tmp" rem Ищем подсети: (for /f "tokens=1,2,4" %%A in ('route print^|findstr /rc:"^ "^|findstr /vc:" 0.0.0.0" /c:"255.255.255.255" /c:"240.0.0.0" /c:"127.0.0.1"') do echo %%A %%B %%C)>%tmp% for /f "tokens=1-3" %%A in ('findstr /rc:"[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\ [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\ [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" %tmp%') do call :ChkIP %%A %%B %%C del %tmp% exit rem Проверяем найденные адреса и пингуем подсети (ищем компы) :ChkIP set LAN=%1 set Mask=%2 set Addr=%3 call :AddrStr2Bin LAN %LAN:.= % call :AddrStr2Bin Mask %Mask:.= % call :AddrStr2Bin Addr %Addr:.= % set /a "A=Addr & Mask" if not "%A%"=="%LAN%" exit /b rem echo %LAN% %Mask% set /a "Max=(Mask^-1)-1" for /l %%A in (1,1,%Max%) do call :Ping %%A exit /b rem Пингуем комп, при этом на пинг он может не отвечать, но его MAC появится в Arp-таблице :Ping set /a Addr=%LAN%+%1 call :AddrBin2Str Addr %Addr% title Look for %Addr% arp -d ping -n 1 -w 100 %Addr%>nul 2>nul for /f "tokens=1 delims=" %%R in ('arp -a %Addr%^|findstr /c:"%Addr%"^|findstr /vc:"00-00-00-00-00-00"') do call :ChkPC exit /b rem Пытаемся добраться до файла "hosts" на найденном ресурсе, если он есть - добавляем строку %AddText% :ChkPC pushd "\\%Addr%\ADMIN$\system32\drivers\etc\"||exit /b if exist hosts for /f "tokens=2 delims=:" %%C in ('find /c "%AddText%" hosts') do if /i %%C equ 0 ( echo %AddText%>>hosts echo Proceed %Addr%>>"%~dpn0.txt" ) popd exit /b :AddrStr2Bin set AddrStr2BinV=%1 set %AddrStr2BinV%=0 :AddrStr2Bin1 shift if "%1"=="" exit /b set /a "%AddrStr2BinV%=(%AddrStr2BinV%<<8)+%1" goto :AddrStr2Bin1 :AddrBin2Str set AddrBin2StrV=%1 set /a "AddrBin2StrV4=%2&255,AddrBin2StrV3=(%2>>8)&255,AddrBin2StrV2=(%2>>16)&255,AddrBin2StrV1=(%2>>24)&255" set %AddrBin2StrV%=%AddrBin2StrV1%.%AddrBin2StrV2%.%AddrBin2StrV3%.%AddrBin2StrV4% exit /b |
|
------- Отправлено: 23:36, 06-12-2010 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - [решено] Права администратора - доступ к файлу hosts | R123 | Microsoft Windows 7 | 5 | 19-06-2012 12:20 | |
Ошибка - Профиль администратора с ограниченными правами | crow1984 | Microsoft Windows 2000/XP | 8 | 06-01-2010 19:49 | |
Пользователь с правами администратора | treiber | Microsoft Windows 2000/XP | 2 | 06-03-2007 20:13 | |
ICQ с правами Администратора | n3rf | Microsoft Windows 2000/XP | 17 | 07-12-2004 12:07 | |
Запуск програм с правами администратора | Harkalada | Программирование и базы данных | 1 | 17-10-2003 09:54 |
|