Я пытался запускать файл VBScript каждый раз, когда запускается моя система, и пытался изменить реестр с помощью VBScript, чтобы добавить его в список программ для запуска, но у меня возникает проблема с разрешениями, даже если я администратор компьютеров. Я пытаюсь добавить VB_Start.vbs в список задач запуска, изменив реестр с помощью следующего кода VBScript:

Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Visual Basic" , "VB_Start.vbs" , "REG_SZ"
Set WshShell = Nothing

Когда я выполняю этот код, я получаю следующую ошибку:

Error: Invalid root in registry key HKEY_LOCAL_MACHINE\SOFTWARE\......
Error Code: 80070005
Source: WshShell.RegWrite

2 ответа2

1

80070005 указывает на ошибку в доступе. То, что вы администратор, не означает, что ваша VBS выполняется автоматически с правами администратора. Добавьте следующий код в начало скрипта:

If WScript.Arguments.Named.Exists("elevated") = False Then
  CreateObject("Shell.Application").ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ /elevated", "", "runas", 1
  WScript.Quit
End If

Код определит, запущен ли скрипт с повышенными правами, иначе перезапустите себя с правами администратора (вы все равно увидите подсказку, конечно).

0
Const HKEY_CURRENT_USER = &H80000001

strComputer = "."

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &
strComputer & "\root\default:StdRegProv")

strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
strValueName = "Hidden"
strStringValues = "0"

oReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,strStringValues

Это формат кода, который я использую для добавления ключей реестра. Все , что вам придется изменить то , что находится в strValueName в strStringValues а начальная CONST , чтобы указать на нужный раздел в реестре. Эти коды:

Const HKEY_CLASSES_ROOT     = &H80000000
Const HKEY_CURRENT_USER     = &H80000001
Const HKEY_LOCAL_MACHINE    = &H80000002
Const HKEY_USERS        = &H80000003
Const HKEY_CURRENT_CONFIG   = &H80000005

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .