Всем привет! Ребят, у меня такая проблема. Написал скрипт, по очистке компа от флешек и usb устройств. Но вот беда в том, что ветки HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB, HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\WpdBusEnumRoot\UMB, HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices не могу редактировать. Как скрипту получить полные права? Есть вариант с утилитой psexec.exe, но как её правильно встроить в скрипт? Приведу фрагмент своего кода:
Код:
For $i= 1 to 500
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}", $i)
If @error <> 0 Then ExitLoop ;проверка условия на оконченность списка ключей
$result = StringInStr($var,"##?#USBSTOR#Disk",1) ;проверяем соответствие ветки реестра с параметром функции StringInStr
GUICtrlCreateLabel("Всего: " & $j, 20,380)
If $result == 0 Then ContinueLoop
$j= $j+1
GUICtrlSetData($edit,$var & @CRLF,1)
GUICtrlCreateLabel("Всего: " & $j, 20,380)
Next
Do
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $cancel
ExitLoop
Case $msg = $del
Run(@ComSpec & " /c psexec.exe -s -i regedit.exe")
RunWait(@ComSpec & " /c" & "regsaver.exe C:\regbackup") ;создаём резервную копию реестр
For $i= 1 to 500
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}", $i)
If @error <> 0 Then ExitLoop ;проверка условия на оконченность списка ключей
$result = StringInStr($var,"##?#USBSTOR#Disk",1) ;проверяем соответствие ветки реестра с параметром функции StringInStr
If $result == 0 Then ContinueLoop
RegDelete('HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}\'&$var) ;удаляем найденные устройства
$i=$i-2
Next