|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Блокировка USB-накопителей и отключение DVD, floppy |
|
CMD/BAT - Блокировка USB-накопителей и отключение DVD, floppy
|
Старожил Сообщения: 173 |
Профиль | Отправить PM | Цитировать
Добрый день
Решил вопрос при помощи не стандартных утилит (изначально не установленных в XP) devcon.exe http://support.microsoft.com/kb/311272/ru add reg - support tools psexec.exe http://technet.microsoft.com/ru-ru/s.../bb897553.aspx Вот команда на блокировку psexec @file.txt reg add HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR /t REG_DWORD /v Start /d 4 /f psexec @file.txt cacls %systemroot%\inf\usbstor.pnf /e /p system:n psexec @file.txt cacls %systemroot%\inf\usbstor.inf /e /p system:n psexec @file.txt -c devcon.exe disable ide\cdrom* psexec @file.txt -c devcon.exe disable fdc* Хочу улучшить файл. Мне не нравиться, что команда обрабатывается последовательно. Т.е. мы сначала на всех компьютерах выполняем первую строчку, затем переходим ко второй. Выполняем вторую строчку на всех компьютерах переходим... Хочется, чтобы все команды выполнялись на одном компьютере, затем все команды на втором компьютере и т.д. Не могу создать нормальный log.file Добавил после каждой строчки: > usb.log, > register.log > dvd.log > floppy.log В результате получаем четыре файла, в которых вообщем-то можно понять, что произошло и где, но не удобно есть лишняя информация. Пример DVD.log: IDE\CDROMOPTIARC_DVD_RW_AD-5200A_________________1.09____\5&2AA92C33&0&0.0.0: Disable 1 device(s) enabled. IDE\CDROMOPTIARC_DVD_RW_AD-5200A_________________1.05____\5&2AA92C33&0&0.0.0: Disable 1 device(s) enabled. \\namepc1: \\namepc2: Возник вопрос по данной теме. Знаю есть возможность это сделать это через GPO. Но во-первых у меня нет доступа, во-вторых у людей у которых есть доступ сделали два правила: 1. Блокировка - работает 2. Разблокировка - не работает |
|
Отправлено: 14:32, 08-07-2010 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать Для разбора операций в нужном порядке можно использовать команду FOR:
remEx.bat Echo on& Chcp set Adcomps="F:\@file.txt" for /f %%a in ('^<"%Adcomps%" Find /v ""') do ( psexec %%a reg add HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR ^ /t REG_DWORD /v Start /d 4 /f psexec %%a cacls %systemroot%\inf\usbstor.pnf /e /p system:n psexec %%a cacls %systemroot%\inf\usbstor.inf /e /p system:n psexec %%a -c devcon.exe disable ide\cdrom* psexec %%a -c devcon.exe disable fdc*) pause>nul & goto :eof По поводу log'а: PSExec возвращает код ошибки исполняемого им приложения, т.е. для вывода желаемой инфы в лог достаточно отловить ERRORLEVEL и в продолжение команды поставить на него условие, пример: if errorlevel 9009 (Echo %%a: disabled >> dvd.log ) else Echo Error execute on %%a >> dvd.log. Или же тем же способом можно "прозвонить" системы на проверку изменений и из полученной инфы составть log. Соотвественно нужно проверить коды возврата по используемым утилитам... |
Последний раз редактировалось deepred, 08-07-2010 в 15:38. Отправлено: 15:24, 08-07-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Думаю надо psexec запускать 1 раз - вызывать им батник, только что раскопированный по списку на компы компании. И вместо "> usb.log" нужно использовать имя компа из того списка.
|
------- Отправлено: 16:18, 08-07-2010 | #3 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать tarasov.evgeny и NiOl,
Цитата:
и еще по поводу раскопированного batch'a: когда-то давно пользовался таким приемом (очень давно...), но работало как часы: Echo off && Chcp 866 Set /a "$T=%time:~3,2%+1 Set "$T=%time:~0,3%%$T% Определение времени запуска (net view|findstr /b /c:"\\">>c:\comps.txt)&&(for ^ /f %i in (c:\comps.txt) do (at %i %$T% /next: ^ " задача на исполнение "))&(del c:\comps.txt /q) pause>&&goto :eof - создаем скрипт remtask.vbs под WSH, в который вносим под исполнение все эти команды; - пишем второй скрипт со следующим содержанием: Set oCtrl = CreateObject("WshController") Set oScript = oCtrl.CreateScript("disk:\dir1\dir2\remtask.vbs ", "AlladaPC-42") ' AlladaPC-42 - имя PC WScript.ConnectObject oScript, "Remote_" oScript.Execute() IsQuit = False While Not IsQuit Wscript.Sleep 300 Wend Function Remote_End() Wscript.Echo "Операция успешно завершена! The operation completed successfully!" IsQuit = True End Function Function Remote_Error() Wscript.Echo oScript.Error.Description IsQuit = True End Function Function Remote_Start() Wscript.Echo "Выполнение сценария на удалённом PC запущено! Execute the script on a remote PC running!" End Function - HKCU\SOFTWARE\Microsoft\Windows Script Host\Settings\Remote REG SZ = 1 - HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings\Remote REG SZ = 1 - HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings\IgnoreUserSettings REG SZ = 0 - и определить wscript.exe как "внепроцессный" COM-сервер (wscript.exe -regserver) инфа: http://msdn.microsoft.com/en-us/libr...0d(VS.85).aspx |
|
Последний раз редактировалось deepred, 08-07-2010 в 18:38. Отправлено: 17:47, 08-07-2010 | #4 |
Старожил Сообщения: 173
|
Профиль | Отправить PM | Цитировать Спасибо за ответы.
Буду пробовать Дело в том, что я ушел в отпуск Не хочется сейчас думать Но вопросы будут. Многое не понятно. |
|
Отправлено: 14:39, 15-07-2010 | #5 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Почитал тему и хотел бы продолжить в части вопросов к уважаемым гуру. Хотелось бы из всего того, что здесь приведено получить приемлемый для себя код. Задача по теме, но с тем условием, что хочется блокировку всего выше перечисленного делать из логон-скрипта, выбирая компьютеры не из файла, а из определённого контейнера AD. Раньше делали это через групповые политики домена с использованием административных шаблонов. Теперь мигрировали свой домен в домен головной организации и утратили права на создание групповых политик с привязкой к своим контейнерам. Но защищаться как-то надо от пользователей. Хочется так же надёжно, как это было раньше с GP в AD. Может есть уже что-то наработанное?
|
Отправлено: 15:01, 12-12-2010 | #6 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Не возьмусь предлагать, т.к. не рискну на "живом" домене отлаживать (была у меня одня легкая проба пера - "войти в реку" удалось нормально, а вот "выйти" - никак, пришлось даже здесь постить и надо признать - с удручающим результатом. Благо решить проблему удалось, но самым варварским способом).
Посему, может проще будет попросить "небожителей" делегировать Вам права на те OU, за которые Вы отвечаете? * Понимаю, что не спортивно, но без прав Вам будет нелегко админить и дальше |
------- Отправлено: 20:48, 13-12-2010 | #7 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать NiOl, да я б вообще на месте Дмитрия не парился - прав нету, пусть сами всё и делают - ему же меньше работы и ответственности
|
Отправлено: 09:34, 14-12-2010 | #8 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Не изобретайте велосипед.
Adm шаблон для групповой политики CLASS MACHINE CATEGORY !!category CATEGORY !!categoryname POLICY !!policynameusb KEYNAME "SYSTEM\CurrentControlSet\Services\USBSTOR" EXPLAIN !!explaintextusb PART !!labeltextusb DROPDOWNLIST REQUIRED VALUENAME "Start" ITEMLIST NAME !!Disabled VALUE NUMERIC 3 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY POLICY !!policynamecd KEYNAME "SYSTEM\CurrentControlSet\Services\Cdrom" EXPLAIN !!explaintextcd PART !!labeltextcd DROPDOWNLIST REQUIRED VALUENAME "Start" ITEMLIST NAME !!Disabled VALUE NUMERIC 1 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY POLICY !!policynameflpy KEYNAME "SYSTEM\CurrentControlSet\Services\Flpydisk" EXPLAIN !!explaintextflpy PART !!labeltextflpy DROPDOWNLIST REQUIRED VALUENAME "Start" ITEMLIST NAME !!Disabled VALUE NUMERIC 3 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY POLICY !!policynamels120 KEYNAME "SYSTEM\CurrentControlSet\Services\Sfloppy" EXPLAIN !!explaintextls120 PART !!labeltextls120 DROPDOWNLIST REQUIRED VALUENAME "Start" ITEMLIST NAME !!Disabled VALUE NUMERIC 3 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY END CATEGORY END CATEGORY [strings] category="Custom Policy Settings" categoryname="Restrict Drives" policynameusb="Disable USB" policynamecd="Disable CD-ROM" policynameflpy="Disable Floppy" policynamels120="Disable High Capacity Floppy" explaintextusb="Disables the computers USB ports by disabling the usbstor.sys driver" explaintextcd="Disables the computers CD-ROM Drive by disabling the cdrom.sys driver" explaintextflpy="Disables the computers Floppy Drive by disabling the flpydisk.sys driver" explaintextls120="Disables the computers High Capacity Floppy Drive by disabling the sfloppy.sys driver" labeltextusb="Disable USB Ports" labeltextcd="Disable CD-ROM Drive" labeltextflpy="Disable Floppy Drive" labeltextls120="Disable High Capacity Floppy Drive" Enabled="Enabled" Disabled="Disabled" |
Отправлено: 16:25, 15-12-2010 | #9 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Цитата lexit:
Спасибо всем за проявленный интерес, но вопрос для меня пока остается открытым. Будут решения, прошу поделиться. |
|
Отправлено: 13:14, 16-12-2010 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Отключение USB и Floppy через GPO | DarkMaximus | Microsoft Windows NT/2000/2003 | 22 | 24-05-2013 14:04 | |
[решено] Блокировка USB-flash накопителей | WChek | Программное обеспечение Windows | 9 | 16-07-2012 13:30 | |
Разное - журналирование работы USB накопителей | WChek | Microsoft Windows 2000/XP | 0 | 15-01-2010 09:33 | |
Интерфейс - Как отрубить автозапуск USB накопителей? | Gowdin | Microsoft Windows 2000/XP | 1 | 27-07-2008 16:51 | |
Пропала автоматическая установка накопителей USB | CoooLLer | Microsoft Windows 2000/XP | 2 | 07-06-2007 15:40 |
|