Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Скрипт для безопасного извлечения флешки (http://forum.oszone.net/showthread.php?t=147427)

11943499 08-08-2009 10:28 1188678

Скрипт для безопасного извлечения флешки
 
Доброе время суток всем ! :)
Вот вопрос по теме, давайте делиться как реализовать.
Можно использовать штатные средства Windows, тогда как ? Или встроенные возможности доступа к железу.
В любом случае было бы интересно найти способ агрессивного извлечения флешки даже в том случае, если с нее запущены программы.

amel27 08-08-2009 11:59 1188710

Цитата:

Цитата 11943499
способ агрессивного извлечения флешки »

гм... удаленно что-ли?.. например, привязать к CD приводу - чтобы при выезде лотка выдергивалась флешка... хотя, пожалуй, у привода сил не хватит... тогда можно использовать блок, при этом силу можно увеличить раз в 10 (соотношение длины USB-разъема и диаметра CD), т.е. в итоге мы должны получить что-то типа полипласта

Цитата:

Цитата 11943499
Можно использовать штатные средства Windows, тогда как ? Или встроенные возможности доступа к железу.»

что имеется ввиду?.. обрубить открытые файлы?.. или автоматизировать операцию "безопасного извлечения"..

11943499 08-08-2009 17:13 1188839

Цитата:

Цитата amel27
например, привязать к CD приводу - чтобы при выезде лотка выдергивалась флешка »

:yes:

Цитата:

Цитата amel27
что имеется ввиду?.. обрубить открытые файлы?.. или автоматизировать операцию "безопасного извлечения".. »

и обрубить и извлечь.....эээээ...фигурально, не физически...

FlatX007 08-08-2009 19:29 1188916

Ну не изобретая за ново велосипед .... можно.

Есть утилита DevEject

Утилита работает в командной строке через команду:
DevEject.exe -EjectDrive:X: (X-буква присоединенной флешки)
Например: DevEject.exe -EjectDrive:H:


Остаётся только ... а ничего не остаётся просто пользоватся ей. =)

Nik_rus 08-08-2009 20:00 1188941

Мне сначала тоже пришло в голову привязать веревочкой к CD-ROM :)
На самом деле можно стандартными средствами винды - Пуск-Выполнить-compmgmt.msc
Но вот параметров я не знаю (чтобы все автоматом сдеалть), хотя на то нам автоит и дан ...

11943499 08-08-2009 20:03 1188944

Не работает эта утилитка в среде X64, да и неудобно это, тулить в скрипт чуждый модуль.
Хочется не велосипед, а вездеход )

Nik_rus 08-08-2009 20:19 1188957

compmgmt.msc + msdnтворят чудеса с человечискими мозгами.
так что велком. :)

11943499 08-08-2009 20:37 1188968

Цитата:

Цитата Nik_rus
compmgmt.msc + msdnтворят чудеса с человечискими мозгами. »

Ну и о чем это ?
Кто-нибудь считал шапку темы ? :closed-to

Nik_rus 08-08-2009 21:12 1188991

Я про то что ты можешь взять эту стандартную в винде утилу на вооружение (там есть пункт "Съемные ЗУ") а на онлайн спарвке мелкомягких можно узнать параметры ком-строки aka compmgmt.msc /s zy /a snyat' и проч., но я их не знаю, да и зачем они, если в руках автоит - им можно все сделать.

Какие все непонятки :dont-know

11943499 09-08-2009 08:43 1189211

Цитата:

Цитата Nik_rus
если в руках автоит - им можно все сделать. »

Хммм..... Задавая свой вопрос на форуме по Autoit, какие иные способы я мог бы подразумевать...?
Итак, как можно реализовать безопасное программное извлечение флешки с помощью autoit ?

Nik_rus 09-08-2009 12:01 1189278

Ну собсно попробовав той утилой отрубить флешку - она действительно вырубается, но драйв остается...
Отследил я там, что при запуске "Безпасного извлечения" запускается rundll32.exe, надо только нужную длл найти...

amel27 09-08-2009 13:41 1189343

Цитата:

Цитата 11943499
как можно реализовать безопасное программное извлечение флешки с помощью autoit ? »

на форуме оффсайта искал?.. Safely Eject a USB Drive

11943499 09-08-2009 18:37 1189507

Цитата:

Цитата amel27
на форуме оффсайта искал? »

Читал, там тоже дело затихло на стадии неудачного эксперимента.

amel27 10-08-2009 04:09 1189818

11943499, у меня работает, статистика есть?

Yashied 11-08-2009 01:32 1190632

http://www.autoitscript.com/forum/in...howtopic=99408

Belfigor 11-08-2009 21:11 1191339

А тупо отключить USB порт на определенное время и потом включить его можно? :)

amel27 12-08-2009 11:54 1191784

Цитата:

Цитата Belfigor
тупо отключить USB порт »

безопасным такое "извлечение" сложно назвать :)

SyDr 12-08-2009 16:17 1191983

http://technet.microsoft.com/ru-ru/s.../bb897438.aspx

Цитата:

Автор: Марк Руссинович (Mark Russinovich)
Опубликовано 1 ноября 2006 г.
Введение
В ОС UNIX имеется стандартная служебная программа под названием Sync, которая позволяет сбросить все данные файловой системы из памяти на диск, чтобы они не были потеряны, если произойдет сбой системы. Без выполнения этой операции все присутствующие в кэше данные утрачиваются при сбое. Я написал аналогичную программу, также названную Sync, которая работает во всех версиях Windows. Обращайтесь к ней, если вам потребуется организовать надежное хранение на жестких дисках измененных данных файловой системы. К сожалению, для запуска Sync нужны административные привилегии. В данной версии, помимо прочего, реализована возможность сброса из памяти данных, относящихся к съемным носителям (например, к ZIP-дисководам).

Синтаксис: sync [-r] [-e] [список букв дисков]

-r Сброс съемных носителей.
-e Извлечение съемных носителей.

При указании конкретных дисков (например, "c e") программа Sync сбрасывает из памяти только связанные с ними данные.

Belfigor 12-08-2009 16:20 1191987

amel27, нет, это не ради извлечения, это чтобы просто отключить работу например клавиатуры на определенное время, ей от этого хуже не станет :)
Дак можно или нет? :)
Ну или любым другим способом заблокировать пользователю возможность исользования маши или клавиатуры до тех пор пока скрипт не сочтет нужным разрешить пользователю снова ими пользоваться?

amel27 12-08-2009 16:33 1192003

Цитата:

Цитата Belfigor
любым другим способом заблокировать пользователю возможность исользования маши или клавиатуры до тех пор пока скрипт не сочтет нужным разрешить пользователю снова ими пользоваться »

поиск по форуму, ключевое слово: "SetWindowsHookEx" ;)

Yashied 12-08-2009 19:05 1192118

BlockInput() не подходит?

11943499 12-08-2009 19:45 1192145

Цитата:

Цитата amel27
11943499, у меня работает, статистика есть? »

Стсатистика проста, пробовал тамошний скрипт, в нем если запущены проги с флешки, то при ее остановке, процесс неуспешен.
А смысл задачи в том, чтобы насмотря ни на что отключить флешку, подкосив все исходящие с нее программы. Отключение USB не вариант, так как программно это невозможно, да и отключать в моем случае нужно не физическую флешку, а эмулированную.

Belfigor 13-08-2009 01:05 1192373

amel27, спасибо :)

amel27 13-08-2009 12:13 1192646

Цитата:

Цитата 11943499
насмотря ни на что отключить флешку, подкосив все исходящие с нее программы »

тогда можно просто выдернуть - эффект тот же :)

AFAIK Windows не предоставляет программных интерфейсов для работы с "чужими" описателями, т.е. "отрубить" заданную программу или даже просто получить список "плохих" процессов очень проблематично.... то же самое касается и сброса буферов на диск. Т.е. без сторонних утилит, написанных в дебрях MS (использующих недокументированные функции и структуры) здесь никак не обойтись, поэтому вижу лишь два пути:

1. Сброс буферов через Sync, дальше хоть выдергивай - минимум мозговых усилий.
2. Поиск "плохих" процессов/описателей через Handle, далее - либо рубить, либо автозакрытие.

hacker666 14-04-2010 13:45 1392302

Вот файл. Работает с любой флешкой. Называется removedrive. Скачиваем архив, распаковываем в корень флешки, создаем removedrive.bat в нём пишем:
@ECHO off
removedrive.exe \ -l -h -b -i -d
exit
Ссылка http://www.uwe-sieber.de/files/removedrive.zip

266903582 14-04-2010 17:49 1392534

Мне интересно, вся эта истерия по поводу "безопасного извлечения" только меня не коснулась?
До появления XP SP2 (да, именно тогда появилась в трее эта новая иконка) никто и не знал, что перед выдергиванием флешки нужно что-то нажимать (линуксоиды не считаются), теперь - ритуал какой-то. Некоторые (особо одаренные) предпочитают даже компьютер выключать ради этой процедуры (наиболее безопасное средство из всех безопасных).
Будто у всех флешки исключительно в NTFS форматированы и им крайне важна эта процедура...
Куда катится этот мир?

beve 15-04-2010 00:13 1392846

Цитата:

Цитата 266903582
Будто у всех флешки исключительно в NTFS форматированы и им крайне важна эта процедура... »

Если бы при выдергивание флешки (вместо безопасного извлечения устройства) была только маленькая вероятность потери данных, то с этим в крайнем случае можно было бы смирится, но, к сожалению, бывают случаи, когда при выдергивании флешки пропадает сама флешка...


Время: 17:01.

Время: 17:01.
© OSzone.net 2001-