VBScript aracılığıyla kayıt defteri değerleri eklerken neden izin hatası alıyorum?


0

Sistemim her başlatıldığında bir VBScript dosyasını çalıştırmayı deniyorum ve kayıt defterini VBScript kullanarak çalıştırılacak programlar listesine eklemek için değiştirmeyi denedim, ancak izinlerim olmasına rağmen sorunum var. bilgisayar yöneticisi VB_Start.vbsAşağıdaki VBScript koduyla kayıt defterini değiştirerek başlangıç ​​görevleri listesine eklemeye çalışıyorum :

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

Bu kodu çalıştırdığımda aşağıdaki hatayı alıyorum:

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

Yanıtlar:


1

80070005 , bir erişim reddedildi hatasını gösterir. Sırf yönetici olduğunuz için VBS’nizin yönetici haklarıyla otomatik olarak yürütüldüğü anlamına gelmez. Komutun en üstüne aşağıdaki kodu ekleyin:

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

Kod, betiğin yükselip yükselmediğini algılar, aksi takdirde yönetici haklarıyla yeniden başlatılır (yine de elbette komut istemini görürsünüz).


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

Bu kayıt defteri anahtarlarını eklemek için kullandığım kod biçimidir. Değiştirmek olurdu Hepsi içinde ne olduğunu strValueName, strStringValuesve ilk CONSTkayıt ilgili bölüme işaret etmek. Bu kodlar:

Const HKEY_CLASSES_ROOT     = &H80000000
Const HKEY_CURRENT_USER     = &H80000001
Const HKEY_LOCAL_MACHINE    = &H80000002
Const HKEY_USERS        = &H80000003
Const HKEY_CURRENT_CONFIG   = &H80000005
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.