Napaka VBScript motorja za skripte ni mogoče najti za skript

Nekega dne sem naletel na težavo zaradi nezmožnosti zaganjanja vseh skriptov vbs (Visual Basic Script) v računalniku z operacijskim sistemom Windows 7. Kot se je izkazalo, je težava precej pogosta in se pojavlja v vseh različicah sistema Windows, začenši z XP in končaj z Widows 8.

Težava je naslednja: ko poskušate zagnati kateri koli vbs skript v računalniku, se pojavi napaka:

Napaka CScript: Ne najdem orodja skripta "VBScript"

ali v ruski različici sistema Windows:

Napaka CScript: Za skripta ni mogoče najti izvršilnega jedra "VBScript"

Najprej preverite razpoložljivost datoteke cscript.exe v katalogu % Windir% \ system32 (ponavadi je to c: \ Windows \ system32 \)

Nato morate poskusiti ponovno registrirati knjižnico vbscript.dll, s tekom v ukazni vrstici (s skrbniškimi privilegiji)

regsvr32 / s% SystemRoot% \ System32 \ vbscript.dl

Če se težava po ponovnem zagonu še vedno pojavlja, v ukazni vrstici poskusite z naslednjimi ukazi (ponovno registrirajte vse knjižnice, ki so potrebne za izvajanje skriptov Visual Basic v računalniku):

regsvr32 atl.dll regsvr32 jscript.dll regsvr32 dispex.dll regsvr32 scrrun.dll regsvr32 scrobj.dll regsvr32 vbscript.dll regsvr32 msxml3.dll regsvr32 ole32.dll regsvr32 oleaut32.dll wscript / regserver

Precej pogosto je težava, povezana z nezmožnostjo izvajanja skriptov vbs, posledica napačne odstranitve protivirusnega programa. Dejstvo je, da nekateri protivirusni virusi, ko so nameščeni v sistemu, spremenijo ključ v registru, ki kaže na knjižnico vbscript.dll, namesto tega pa napiše svojo knjižnico. I.e. Pred zagonom katerega koli skripta vbs najprej preverite varnostni modul posebnega protivirusnega modula in šele nato se koda prenese v knjižnico vbscript.dll za izvedbo. Tako antivirus pridobi nadzor nad izvrševanjem vseh skriptov vbs na napravi.

Če je protivirusni program pravilno odstranjen, se mora ključna vrednost vrniti na standardno, vendar nekateri protivirusni virusi (pogosto so grešili McAfee, AVAST antivirusi in Kaspersky Lab AVP izdelki) pozabijo storiti to, ali pa lahko uporabnik ustvari težavo z napačnim izbrisom protivirusa (ne uporablja standardnega postopka odstranitve )

Ta registrski ključ bo na primer vzel takšno vrednost pri namestitvi protivirusnega računalnika McAfee.

C: \ Programske datoteke \ Skupne datoteke \ McAfee \ SystemCore \ ScriptSn.20130508143011.dll

Če želite obnoviti začetne nastavitve, odprite urejevalnik registra in pojdite na razdelek HKEY_CLASSES_ROOT \ CLSID \ B54F3741-5B07-11cf-A4B0-00AA004A55E8 \ InprocServer32. Privzeta tipka (Privzeto) ne sme biti prazen ali kazati na knjižnico, ki ni vbscript.dll. Če ni, spremenite vrednost v pot knjižnice. vbscript.dll (privzeto je C: \ Windows \ system32 \ vbscript.dll)

Namig. Če se pri poskusu shranjevanja sprememb v registru prikaže napaka "Ne morem spremeniti ... Napaka med pisanjem nove vrednosti parametra" ali "Napaka pri urejanju vrednosti", morate računu podeliti pravico do spremembe te veje registra (RMB pod InprocServer32 -> Dovoljenje)

Naslednje besedilo lahko preprosto shranite v datoteko s pripono reg in jo uvozite v register:

Različica urejevalnika registra Windows 5.00
[HKEY_CLASSES_ROOT \ CLSID \ B54F3741-5B07-11cf-A4B0-00AA004A55E8 \ InprocServer32]
@ = "C: \\ Windows \\ sistem32 \\ vbscript.dll"Namig. Vse zgoraj velja za podružnico HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \ B54F3741-5B07-11cf-A4B0-00AA004A55E8. V razdelku InprocServer32 naj bo vpisana tudi privzeta vrednost C: \ Windows \ system32 \ vbscript.dll

Mislim, da kljub vse večjemu širjenju skript Powershell na množico večina sistemskih skrbnikov in razvijalcev programske opreme za dolgo časa ne bo mogel opustiti nakopičene prtljage različnih skriptov za avtomatizacijo na vbs, zato bo opisana težava in metode za njeno reševanje pomembna še dolgo.