TViP

|
Posted: Tue May 17, 2011 20:37 Post subject: |
|
|
Немного переделал скрипт от Skole под RemoveDrive v2.1
По сравнению с другими утилитами для безопасного извлечения у этой большое преимущество в том что она может показывать какой процесс в данный момент блокирует USB устройство...
Code: | Dim WSH
Set WSH = CreateObject("WScript.Shell")
Commander_Path = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%")
Exe = (chr(34) & Commander_Path + "\Tools\RemoveDrive.exe" & chr(34))
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
For Each objDisk In objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
If objDisk.InterfaceType = "USB" Then
If MsgBox("Отключить " & objDisk.Caption & " ?", vbYesNo + vbQuestion, "Безопасное извлечение") =vbYes Then
WSH.Run Exe & objDisk.PNPDeviceID & " -i -h -l -b -w:2000"
End If
End If
Next |
Путь к RemoveDrive.exe укажите свой (в скрипте прописан "\Tools\RemoveDrive.exe")
В строке WSH.Run Exe & objDisk.PNPDeviceID & " -i -h -l -b -w:2000" прописаны команды:
[-i] остановить Windows Indexing Service (CiSvc), на момент(требуются права администратора)
[-h] Показать открытые процессы с этим диском, чем или кем занят этот диск
(нужны админские права, эксперимент, может повесить систему!(ну не знаю, сколько раз пробовал пока не ложила систему))
[-l] повторять в цикле до успешного ивлечения устройства
[-b] Показывает в Windows стандартную подсказку "Теперь съёмный диск можно безопасно
отключить"
[-w:nnnn] Ожидание nnnn миллисекунд перед закрытием окна программы
Остальные команды можно посмотреть на сайте разработчика...  |
|