Показать полную графическую версию : [решено] Мониторинг USB устройств bat-файлом
megaloman
29-04-2020, 14:16
EvgenBrain, Всё прекрасно! Надо контролировать два типа устройств: флэшки и внешние диски. На картинке они присутствуют.
ConType = Array("Removable Media", "External hard disk media")
Зачем запускать wmic c выводом в файл - чтобы потом перенести серийные номера разрешенных флэшек и внешних дисков копипастом - руками можно накосячить. Единственное, там файл лучше открывать как UTF, чтобы не было лишних пробелов.
У меня было:
ConSerial = Array("03U0UDBRCJ6HLEYV", "WX61A93R0348")
Вы вбейте свои.
Кстати, поубивайте в диспетчере все лишние wscript
EvgenBrain
29-04-2020, 17:09
у меня вопрос, а можно связать интерфейс с этим скриптом? Так, чтобы массив мы вручную задавали??
а интерфейс написать на Vba
И как его скрыьт из диспетчера задач??
а можно связать интерфейс с этим скриптом? Так, чтобы массив мы вручную задавали?? »
Не надо интерфейса. Задавайте параметрами скрипта.
megaloman
30-04-2020, 10:45
EvgenBrain, в чем смысл интерфейса? Опишите порядок действий при работе с использованием этого интерфейса для защиты несанкционированного подключения флэшки. Кстати, до сих пор нигде не звучало, а сколько флэшек надо разрешить. И эти флэшки одинаковы для всех пользователей в организации или у каждого свои? В чем смысл этих плясок?
Имхо, есть текстовый редактор, какой еще интерфейс нужно создавать?
EvgenBrain
30-04-2020, 11:53
Есть учреждение, где разрешено 10 флешек, но есть вероятность, что будут поступать новые.
Начальство сначала просило написать скрипт, хорошо, а потом моча в голову долбанула, мол а давайте еще интерфейс замутим, чтобы пользователь(владелец хоста) сам сносил нужный перечень разрешенных флешек... По мне так бред бредом, единственное, что приходит на ум, так сделать банальную winForm, чтобы та в свою очередь создавала 2 текстовых файла с данными, а скрипт их считывал, но тогда возникают другие "камни"
Есть учреждение, где разрешено 10 флешек, но есть вероятность, что будут поступать новые.
Начальство сначала просило написать скрипт, хорошо, а потом моча в голову долбанула, мол а давайте еще интерфейс замутим, чтобы пользователь(владелец хоста) сам сносил нужный перечень разрешенных флешек... По мне так бред бредом, единственное, что приходит на ум, так сделать банальную winForm, чтобы та в свою очередь создавала 2 текстовых файла с данными, а скрипт их считывал, но тогда возникают другие "камни"...
И вот как его скрыть из диспетчера задач
megaloman
30-04-2020, 13:33
EvgenBrain, чтобы пользователь(владелец хоста) сам сносил нужный перечень разрешенных флешек... »Изначально поставленная задача - это профанация системы безопасности. А пустить пользователя в нее - вообще без смысла.И вот как его скрыть из диспетчера задач » - это уже за пределом моего понимания. Perm = "\\Server\Test11\permition.txt" 'Файл с разрешенными номерами флэшек
Quant = 5 * 1000 'милиСек опроса списка дисков
Frequency = 60 'Сколько опросов списка дисков для перепрочтения файла с номерами
FLog = "Z:\Soft_Out\Spy.txt" 'Лог-файл, куда запишется инфа о нерегистрированной флэшке
Spause = 2 'Пауза Сек начала выключения
ConType = Array("Removable Media", "External hard disk media")
Set WMI = GetObject("winmgmts:")
Set FSO = CreateObject("Scripting.FileSystemObject")
iFreq = Frequency
Do
If iFreq = Frequency Then
On Error Resume Next
Set fIn = FSO.OpenTextFile(Perm, 1, False)
If Err.Number <> 0 Then
MsgBox "File " + Perm + vbCrLf + Err.Description + "(" + CStr(Err.Number) + ")"
ConSerial = Array(" ")
' WScript.Quit 2
Else
ConSerial = Split(fIn.ReadAll, vbCrLf)
fIn.Close
End If
On Error GoTo 0
iFreq = 0
End If
' For Each iSerial In ConSerial
' If Len(Trim(iSerial)) <> 0 Then MsgBox iSerial
' Next
iFreq = iFreq + 1
Set DAll = WMI.ExecQuery("Select * from Win32_DiskDrive")
Msg = ""
Flag = True
For Each Drv In DAll
For Each iType In ConType
If LCase(iType) = LCase(Drv.MediaType) Then
Flag = False
For Each iSerial In ConSerial
If Len(Trim(iSerial)) <> 0 Then
' MsgBox iSerial + "^" + CStr(Drv.SerialNumber)
If LCase(CStr(Drv.SerialNumber)) = LCase(Trim(iSerial)) Then
Flag = True
Exit For
End If
End If
Next
End If
If Flag Then Exit For
Next
If Not Flag Then
Msg = CStr(Now) + vbTab + Drv.MediaType + vbTab + Drv.Model + vbTab + CStr(Drv.SerialNumber)
' MsgBox Msg
Set F = FSO.OpenTextFile(FLog, 8, True)
F.WriteLine Msg
F.Close
R = CreateObject("WScript.Shell").Run("shutdown.exe /s /f /t " + CStr(Spause), 7, True)
Exit For
End If
Next
WScript.Sleep Quant
Loop
Предполагается, что где-то на сервере есть файл
Perm = "\\Server\Test1\permition.txt" 'Файл с разрешенными номерами флэшек
с доступом только для чтения, кстати, можно организовать, что он будет персональным для каждого пользователя.
Администратор сможет прописывать в этом файле с помощью "интерфейса" :) - текстового редактора, список разрешенных флэшек.
Управление безопасностью - это прежде всего система ограничений прав пользователя, и без администратора никак.
И вот как его скрыть из диспетчера задач »
Никак.
EvgenBrain
30-04-2020, 19:34
megaloman, conType остается статическим?? или так же можно вставить ссылку на файл с содержанием???
megaloman
30-04-2020, 19:43
EvgenBrain, conType остается статическим?? или так же можно вставить ссылку на файл с содержанием???Зачем? Вам надо контролировать флэшки и внешние винты.
"Removable Media", "External hard disk media"
Продемонстрируйте, что еще возможно?
Смысл считывать эту инфу из файла?
Можно еще в файле к номерам прицепить модель устройства, но смысл? Усложнить администрирование?
EvgenBrain
01-05-2020, 17:26
Я - то понимаю, что это усложняет задачу, но руководству не докажешь
EvgenBrain, а что вы сейчас доказываете руководству? А этой темой, если ее предъявить?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.