Чому під час додавання значень реєстру через VBScript з'являється помилка дозволів?


0

Я намагався запустити файл 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

Відповіді:


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.