Онзи ден се натъкнах на проблема с невъзможността да стартирам всички скриптове vbs (Visual Basic Script) на компютър с Windows 7. Както се оказа, проблемът е доста често срещан и се среща във всички версии на Windows, като се започне от XP и завърши с Widows 8.
Проблемът е следният: когато се опитвате да стартирате всеки vbs скрипт на компютъра, се появява грешка:
CScript Грешка: Не мога да намеря скрипт двигателя "VBScript"или в руската версия на Windows:
CScript грешка: Не може да се намери ядрото за изпълнение на VBScript за скриптНа първо място проверете наличността на файла. cscript.exe в каталога % Windir% \ system32 (обикновено това е c: \ Windows \ system32 \)
След това трябва да опитате да пререгистрирате библиотеката vbscript.dll, като стартирате в командния ред (с права на администратор)
regsvr32 / s% SystemRoot% \ System32 \ vbscript.dl
Ако проблемът продължава след рестартиране, опитайте следните команди в командния ред (пререгистрирайте всички библиотеки, необходими за изпълнение на скриптове Visual Basic на компютъра):
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
Доста често проблемът, свързан с невъзможността за изпълнение на vbs скриптове, се причинява от неправилното премахване на антивируса. Факт е, че някои антивируси, когато са инсталирани в системата, променят ключа в системния регистър, който сочи към библиотеката vbscript.dll, вместо това пишат своя собствена библиотека. Т.е. Преди да стартира всеки скрипт vbs, неговият код първо проверява специалния антивирусен модул за сигурност и едва след това кодът се прехвърля в библиотеката vbscript.dll за изпълнение. По този начин антивирусът придобива контрол върху изпълнението на всички vbs скриптове на машината.
Ако антивирусът е премахнат правилно, стойността на ключа трябва да се върне към стандартната, но някои антивируси (често McAfee, AVAST антивирусите и AVP продуктите на Лабораторията на Kaspersky грешат) забравят да направят това или потребителят може да създаде проблем, като изтрие антивируса неправилно (не използва стандартната процедура за деинсталиране. )
Например, този ключ на системния регистър ще приеме такава стойност, когато инсталирате McAfee антивирус на компютър.
C: \ програмни файлове \ общи файлове \ McAfee \ SystemCore \ ScriptSn.20130508143011.dll
За да възстановите първоначалните настройки, отворете редактора на системния регистър и отидете на секцията HKEY_CLASSES_ROOT \ CLSID \ B54F3741-5B07-11cf-A4B0-00AA004A55E8 \ InprocServer32. Клавиш по подразбиране (По подразбиране) не трябва да е празно или да сочи към библиотека, различна от vbscript.dll. Ако не, променете стойността му на пътя на библиотеката. vbscript.dll (по подразбиране е C: \ Windows \ system32 \ vbscript.dll)
съвет. Ако, когато се опитате да запазите промените в системния регистър, се появи грешката „Не може да се промени ... Грешка при писане на нова стойност на параметър“ или „Стойност за редактиране на грешки“, трябва да предоставите на акаунта си правото да променя този клон на системния регистър (RMB под InprocServer32 -> Разрешение)Можете просто да запазите следния текст във файл с разширението reg и да го импортирате в системния регистър:
Версия на редактора на системния регистър на Windows 5.00[HKEY_CLASSES_ROOT \ CLSID \ B54F3741-5B07-11cf-A4B0-00AA004A55E8 \ InprocServer32]
@ = "C: \\ Windows \\ system32 \\ vbscript.dll"съвет. Всичко по-горе се отнася за клона HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \ B54F3741-5B07-11cf-A4B0-00AA004A55E8. В секцията InprocServer32 стойността по подразбиране също трябва да бъде написана C: \ Windows \ system32 \ vbscript.dll
Мисля, че въпреки увеличаващото се разпространение към масата от скриптове на Powershell, повечето системни администратори и софтуерни разработчици за дълго време няма да могат да изоставят натрупания багаж от различни скриптове за автоматизация на vbs, така че описаният проблем и методи за решаването му ще бъдат актуални още дълго време.