Тема: VBScript: Скрипт не отпускает флешку
Проблема такая, есть скрипт который находится в автозагрузке, работает нормально, но есть
два вопроса:
1. При отключении флешки через безопасное отключение, с первого раза не удаётся её отключить, не находит программы, блокирующей её, но и не отключает. Приходится несколько раз нажимать на безопасное отключение, пока отключит. Помогите подправить скрипт, по-видимому, что-то с циклом.
2. Ежедневно к компьютеру подключается несколько десятков флешек, имеется несколько конкретных флешек которым нужно запретить просматривать определённые типы файлов
mp3, jpeg, при этом, чтобы на другие запрет не распространялся, но на других компьютерах они бы просматривать могли. В крайнем случае запретить монтирование или полностью работу с этими флешками. Что посоветуете добавить в этот скрипт, чтобы решить эту задачу? И вообще возможно ли это с помощью скрипта? Спасибо.
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
set ws=createobject("wscript.shell")
colDrives = Split("B D E F G H I J K L M N O P Q R S T U V W X Y Z")
Set dictDrives = CreateObject("Scripting.Dictionary")
For Each Drive In colDrives
Set Drv = FSO.GetDrive(Drive & ":")
If Err.Number Then
dictDrives.Add Drive & ":", False
Else
If Drv.DriveType = 1 And Drv.IsReady Then
dictDrives.Add Drive & ":", True
Else
dictDrives.Add Drive & ":", False
End If
End If
Err.Clear
Next
While True
For Each Drive In dictDrives.Keys
Set Drv = FSO.GetDrive(Drive)
If (Err.Number) Or (Drv.IsReady = False) Or (Drv.DriveType <> 1) Then
Flag = False
Else
Flag = True
End If
Err.Clear
Current = dictDrives.Item(Drive)
If Current <> Flag Then
If Current = False And Flag = True Then
Set FSO=CreateObject("Scripting.FileSystemObject")
ws.run FSO.BuildPath(Drive, "SKL\proverka.exe"), 0, false
If .FileExists(.BuildPath(Drive, "SKL\proverka1.txt")) = True Then
ws.run("C:\proverka1.exe"), 0, false
End If
End If
dictDrives.Item(Drive) = Flag
End If
Next
WScript.Sleep 1000
Wend