1

Тема: WSH: Как запустить скрипт под w2k?

Всем добрый день.
Есть рабочий скрипт, который запускается под XP и w2k3. При попытке его запуска под w2k выдается сообщение:
Ошибка: Объект не поддерживает это свойство или метод: 'Exec'
Код: 800A01B6
Источник: Ошибка выполнения Microsoft VBScript

Я уже сталкивался с тем, что в Windows 2000 не все поддерживается, что работает в  XP.
Можно ли как-нибудь заставить скрипт работать в Windows 2000, или какк это обойти (ругается на строчку set WDpul = WshShell.Exec(var1), где var1 получается методом SysEnv)?
Пример не привожу, т.к. ситуация, скорее всего, повторится на любом скрипте.

2

Re: WSH: Как запустить скрипт под w2k?

Может, дело не в ОС, а там стоит просто корявая версия WSH?

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

3

Re: WSH: Как запустить скрипт под w2k?

pserg, желательно привести код скрипта.

4 (изменено: pserg, 2009-08-26 20:26:55)

Re: WSH: Как запустить скрипт под w2k?

alexii пишет:

pserg, желательно привести код скрипта.

Option Explicit
Dim WDpul, WshShell, PSusp, SysEnv
Dim Num, Per, Msg, iKrug
WScript.Sleep 180000    ' ждем, когда автостартует приложение
Set WshShell = WScript.CreateObject("WScript.Shell")
Set SysEnv = WshShell.Environment("SYSTEM")
iKrug = SysEnv("KrugRoot")+"Bin\KrugTaskStarter.exe"
set WDpul = WshShell.Exec(iKrug)     'запускаем приложение
'дальше код, до которого не доходит выполнение

5

Re: WSH: Как запустить скрипт под w2k?

The gray Cardinal пишет:

Может, дело не в ОС, а там стоит просто корявая версия WSH?

А как это определить? Винда ставилась обычным способом. Накрыта СПО4. WSH долен быть стандартный для w2k. Ясно, что дело в нем. Как исправить или что нужно доставить?

6

Re: WSH: Как запустить скрипт под w2k?

Последовательно выполнить, перезагружая машину и проверяя, не заработало ли:

1. Загрузить и установить Update Rollup 1 (Исправления, включенные в накопительный пакет обновления 1 для Microsoft Windows 2000 с пакетом обновления 4 (SP4), датированный 28 июня 2005 г. .).
2. Загрузить и установить/переустановить Windows Script 5.6 for Windows XP and Windows 2000.
3. Загрузить с форума OSzone и выполнить scriptru_5.7_XP_SP3_rereg.exe, — последний перерегистрирует библиотеки, настройки, контекстное меню…

7

Re: WSH: Как запустить скрипт под w2k?

alexii пишет:

3. scriptru_5.7_XP_SP3_rereg.exe, — последний перерегистрирует библиотеки, настройки, контекстное меню…

Лекарство подходит и для w2k?

8

Re: WSH: Как запустить скрипт под w2k?

Должно. Там нет ничего военного: самораспаковывающийся 7z-архив, внутри которого единственный файл такого содержания:

[Version]
Signature            = "$Windows NT$"

[DefaultInstall]
RunPreSetupCommands    = ProcessesToRun
AddReg            = AddReg.WSH
RunPostSetupCommands    = ProcessesToAssoc:1
Reboot            =1

[ProcessesToRun]
"regsvr32 /s ""%11%\jscript.dll"" "
"regsvr32 /s ""%11%\vbscript.dll"" "
"regsvr32 /s ""%11%\scrrun.dll"" "
"regsvr32 /s ""%11%\scrobj.dll"" "
"regsvr32 /s ""%11%\wshext.dll"" "
"regsvr32 /s ""%11%\wshcon.dll"" "
"regsvr32 /s ""%11%\wshom.ocx"" "

[ProcessesToAssoc]
"cmd /c ""assoc .WSH=WSHFile"" "
"cmd /c ""assoc .VBS=VBSFile"" "
"cmd /c ""assoc .VBE=VBEFile"" "
"cmd /c ""assoc .JS=JSFile"" "
"cmd /c ""assoc .JSE=JSEFile"" "
"cmd /c ""assoc .WSF=WSFFile"" "

[AddReg.WSH]
HKLM, "Software\Microsoft\Windows Script Host\Settings","DisplayLogo",,"1"
HKLM, "Software\Microsoft\Windows Script Host\Settings","ActiveDebugging",,"1"
HKLM, "Software\Microsoft\Windows Script Host\Settings","SilentTerminate",,"0"
HKLM, "Software\Microsoft\Windows Script Host\Settings","UseWINSAFER",,"1"

HKLM,"Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved","{60254CA5-953B-11CF-8C96-00AA00B8708C}",,"%DESC_WSHEXT%"

HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnceEx\Regsister WScript","1",,"wscript -regserver"

HKCR, ".WSH","",,"WSHFile"
HKCR, "WSHFile","",,"%DESC_DOTWSH%"
HKCR, "WSHFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4800"
HKCR, "WSHFile","IsShortcut",,"Yes"
HKCR, "WSHFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,1"
HKCR, "WSHFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "WSHFile\Shell\Open\Command",,0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "WSHFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "WSHFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "WSHFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "WSHFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".VBS","",,"VBSFile"
HKCR, "VBSFile","",,"%DESC_DOTVBS%"
HKCR, "VBSFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4802"
HKCR, "VBSFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,2"
HKCR, "VBSFile\ScriptEngine","",,"VBScript"
HKCR, "VBSFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "VBSFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "VBSFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "VBSFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "VBSFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "VBSFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "VBSFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "VBSFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "VBSFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "VBSFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".VBE","",,"VBEFile"
HKCR, "VBEFile","",,"%DESC_DOTVBE%"
HKCR, "VBEFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4803"
HKCR, "VBEFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,2"
HKCR, "VBEFile\ScriptEngine","",,"VBScript.Encode"
HKCR, "VBEFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "VBEFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "VBEFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "VBEFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "VBEFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "VBEFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "VBEFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "VBEFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "VBEFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "VBEFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".JS","",,"JSFile"
HKCR, "JSFile","",,"%DESC_DOTJS%"
HKCR, "JSFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4804"
HKCR, "JSFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,3"
HKCR, "JSFile\ScriptEngine","",,"JScript"
HKCR, "JSFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "JSFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "JSFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "JSFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "JSFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "JSFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "JSFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "JSFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "JSFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "JSFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".JSE","",,"JSEFile"
HKCR, "JSEFile","",,"%DESC_DOTJSE%"
HKCR, "JSEFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4805"
HKCR, "JSEFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,3"
HKCR, "JSEFile\ScriptEngine","",,"JScript.Encode"
HKCR, "JSEFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "JSEFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "JSEFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "JSEFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "JSEFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "JSEFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "JSEFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "JSEFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "JSEFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "JSEFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".WSF","",,"WSFFile"
HKCR, "WSFFile","",,"%DESC_DOTWS%"
HKCR, "WSFFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4801"
HKCR, "WSFFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,2"
HKCR, "WSFFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "WSFFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "WSFFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "WSFFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "WSFFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "WSFFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "WSFFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "WSFFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "WSFFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "WSFFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, "scriptletfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_SCROBJ%,-8192"

[Strings]
; Unlocalizable strings
REG_WSH             = "Software\Microsoft\Windows Script Host"
REG_APPROVE         = "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"
REG_UNINSTALL       = "Software\Microsoft\Windows\CurrentVersion\Uninstall\WindowsScriptHost"
CLSID_WSHEXT        = "{60254CA5-953B-11CF-8C96-00AA00B8708C}"

; Localizable strings
DISP_WSH            = "Сервер сценариев Windows"
DESC_WSH            = "Сервер сценариев Windows"
DESC_DISKS          = "Файлы сервера сценариев Windows"
TIPS_WSH            = "Позволяет создавать сценарии для автоматического выполнения задний в Windows"

DESC_DOTWSH         = "Файл параметров сервера сценариев Windows"
DESC_DOTVBS         = "Файл сценария VBScript"
DESC_DOTVBE         = "Файл зашифрованного сценария VBScript"
DESC_DOTJS          = "Файл сценария JScript"
DESC_DOTJSE         = "Файл зашифрованного сценария JScript"
DESC_DOTWS          = "Файл сценария Windows"
DESC_WSHEXT         = "Расширения оболочки для сервера сценариев Windows"

DESC_WSHOMLIB       = "Объектная модель сервера сценариев Windows"
DESC_WSHSHELL       = "Объект оболочки сервера сценариев Windows"
DESC_WSHNETWORK     = "Сетевой объект сервера сценариев Windows"

MENU_OPEN           = "&Открыть"
MENU_CONOPEN        = "Открыть в &командной строке"
MENU_DOSOPEN        = "Открыть &в окне MS-DOS"
MENU_EDIT           = "&Изменить"
MENU_PRINT          = "&Печать"

FILE_WSHEXT         = "wshext.dll"
FILE_SCROBJ         = "scrobj.dll"

Как видим, всё по-честному, никаких абсолютных путей, только через %SystemRoot%, так что должно работать.

9

Re: WSH: Как запустить скрипт под w2k?

alexii пишет:

Последовательно выполнить, перезагружая машину и проверяя, не заработало ли:

1. Загрузить и установить Update Rollup 1.
2. Загрузить и установить/переустановить Windows Script 5.6 for Windows XP and Windows 2000[/url].
3. Загрузить и выполнить scriptru_5.7_XP_SP3_rereg.exe, — последний перерегистрирует библиотеки, настройки, контекстное меню…

После установки 1. и 2. скрипт вроде бы заработал (весь функционал не проверял, убедился лишь, что затыка на прежнем месте нет).
Но когда поставил 3. scriptru_5.7_XP_SP3_rereg. , после перезагрузки скрипт не запускается. Говорит, "There is no script engine for file extension ".vbs".".
В списке установки и удаления программ этого зверя нет. Как откатиться обратно?

10

Re: WSH: Как запустить скрипт под w2k?

Никак. Попробуйте ещё раз пункт 2.

P.S. Я подразумевал, что после того, как заработает — можно остановиться .

11 (изменено: pserg, 2009-08-27 17:06:56)

Re: WSH: Как запустить скрипт под w2k?

alexii пишет:

Никак. Попробуйте ещё раз пункт 2.
P.S. Я подразумевал, что после того, как заработает — можно остановиться .

А как же это:

последний перерегистрирует библиотеки, настройки, контекстное меню…

Я растолковал, как необходимый элемент для корректной работы.
Получается, что после запуска этого шайтан-ПО vbs-файлы перестают поддерживаться системой. Очень "полезный" inf-файл.

И еще, переименовав свой *.vbs в *.wsf, получил другую ошибку:
Error:Ожидается правильное имя
Code:8004000A
Source: Windows Script Host

в строчке комментария(???): ' А в Автозапуске Windows - ярлык с параметрами  wscript <Путь>\test_2020.vbs|
, т.е. ругается на "<Путь>" или "<". Может быть, д/б использованы другой символ комментария?

Какие вообще расширения файлов могут использоваться для WSH-скрипта кроме vbs?

p.s. Повторный запуск п. 2. и переименование файла снова в *.vbs спасло ситуацию. Полностью ли поддерживается в w2k функционал из XP/2003, узнаю завтра (скрипт работает >12 часов).

12

Re: WSH: Как запустить скрипт под w2k?

pserg, мне сейчас не на чем проверить, но в своё время я пользовал предыдущий вариант того же и взятого оттуда же скрипта *.inf (scriptru_5.7_sp3_rereg.exe):

[Version]
Signature            = "$Windows NT$"

[DefaultInstall]
RunPreSetupCommands    = ProcessesToRun
AddReg            = AddReg.WSH
Reboot                =1

[ProcessesToRun]
"regsvr32 /s ""%11%\jscript.dll"" "
"regsvr32 /s ""%11%\vbscript.dll"" "
"regsvr32 /s ""%11%\scrrun.dll"" "
"regsvr32 /s ""%11%\scrobj.dll"" "
"regsvr32 /s ""%11%\wshext.dll"" "
"regsvr32 /s ""%11%\wshcon.dll"" "
"regsvr32 /s ""%11%\wshom.ocx"" "

[AddReg.WSH]
HKLM, "Software\Microsoft\Windows Script Host\Settings","DisplayLogo",,"1"
HKLM, "Software\Microsoft\Windows Script Host\Settings","ActiveDebugging",,"1"
HKLM, "Software\Microsoft\Windows Script Host\Settings","SilentTerminate",,"0"
HKLM, "Software\Microsoft\Windows Script Host\Settings","UseWINSAFER",,"1"

HKLM,"Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved","{60254CA5-953B-11CF-8C96-00AA00B8708C}",,"%DESC_WSHEXT%"

HKLM,"Software\Microsoft\Windows\CurrentVersion\RunOnce","Regsister WScript",,"wscript -regserver"

HKCR, ".WSH","",,"WSHFile"
HKCR, "WSHFile","",,"%DESC_DOTWSH%"
HKCR, "WSHFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4800"
HKCR, "WSHFile","IsShortcut",,"Yes"
HKCR, "WSHFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,1"
HKCR, "WSHFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "WSHFile\Shell\Open\Command",,0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "WSHFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "WSHFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "WSHFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "WSHFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".VBS","",,"VBSFile"
HKCR, "VBSFile","",,"%DESC_DOTVBS%"
HKCR, "VBSFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4802"
HKCR, "VBSFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,2"
HKCR, "VBSFile\ScriptEngine","",,"VBScript"
HKCR, "VBSFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "VBSFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "VBSFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "VBSFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "VBSFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "VBSFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "VBSFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "VBSFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "VBSFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "VBSFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".VBE","",,"VBEFile"
HKCR, "VBEFile","",,"%DESC_DOTVBE%"
HKCR, "VBEFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4803"
HKCR, "VBEFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,2"
HKCR, "VBEFile\ScriptEngine","",,"VBScript.Encode"
HKCR, "VBEFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "VBEFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "VBEFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "VBEFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "VBEFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "VBEFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "VBEFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "VBEFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "VBEFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "VBEFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".JS","",,"JSFile"
HKCR, "JSFile","",,"%DESC_DOTJS%"
HKCR, "JSFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4804"
HKCR, "JSFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,3"
HKCR, "JSFile\ScriptEngine","",,"JScript"
HKCR, "JSFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "JSFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "JSFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "JSFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "JSFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "JSFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "JSFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "JSFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "JSFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "JSFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".JSE","",,"JSEFile"
HKCR, "JSEFile","",,"%DESC_DOTJSE%"
HKCR, "JSEFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4805"
HKCR, "JSEFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,3"
HKCR, "JSEFile\ScriptEngine","",,"JScript.Encode"
HKCR, "JSEFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "JSEFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "JSEFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "JSEFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "JSEFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "JSEFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "JSEFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "JSEFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "JSEFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "JSEFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, ".WSF","",,"WSFFile"
HKCR, "WSFFile","",,"%DESC_DOTWS%"
HKCR, "WSFFile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_WSHEXT%,-4801"
HKCR, "WSFFile\DefaultIcon","",0x00020000,"%SystemRoot%\System32\WScript.exe,2"
HKCR, "WSFFile\Shell\Open","",,"%MENU_OPEN%"
HKCR, "WSFFile\Shell\Open\Command","",0x00020000,"%SystemRoot%\System32\WScript.exe ""%1"" %*"
HKCR, "WSFFile\Shell\Open2","",,"%MENU_CONOPEN%"
HKCR, "WSFFile\Shell\Open2\Command","",0x00020000,"%SystemRoot%\System32\CScript.exe ""%1"" %*"
HKCR, "WSFFile\Shell\Edit","",,"%MENU_EDIT%"
HKCR, "WSFFile\Shell\Edit\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe %1"
HKCR, "WSFFile\Shell\Print","",,"%MENU_PRINT%"
HKCR, "WSFFile\Shell\Print\Command","",0x00020000,"%SystemRoot%\System32\Notepad.exe /p %1"
HKCR, "WSFFile\ShellEx\PropertySheetHandlers\WSHProps","",,"%CLSID_WSHEXT%"
HKCR, "WSFFile\ShellEx\DropHandler","",,"%CLSID_WSHEXT%"

HKCR, "scriptletfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\System32\%FILE_SCROBJ%,-8192"

[Strings]
; Unlocalizable strings
REG_WSH             = "Software\Microsoft\Windows Script Host"
REG_APPROVE         = "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved"
REG_UNINSTALL       = "Software\Microsoft\Windows\CurrentVersion\Uninstall\WindowsScriptHost"
CLSID_WSHEXT        = "{60254CA5-953B-11CF-8C96-00AA00B8708C}"

; Localizable strings
DISP_WSH            = "Сервер сценариев Windows"
DESC_WSH            = "Сервер сценариев Windows"
DESC_DISKS          = "Файлы сервера сценариев Windows"
TIPS_WSH            = "Позволяет создавать сценарии для автоматического выполнения задний в Windows"

DESC_DOTWSH         = "Файл параметров сервера сценариев Windows"
DESC_DOTVBS         = "Файл сценария VBScript"
DESC_DOTVBE         = "Файл зашифрованного сценария VBScript"
DESC_DOTJS          = "Файл сценария JScript"
DESC_DOTJSE         = "Файл зашифрованного сценария JScript"
DESC_DOTWS          = "Файл сценария Windows"
DESC_WSHEXT         = "Расширения оболочки для сервера сценариев Windows"

DESC_WSHOMLIB       = "Объектная модель сервера сценариев Windows"
DESC_WSHSHELL       = "Объект оболочки сервера сценариев Windows"
DESC_WSHNETWORK     = "Сетевой объект сервера сценариев Windows"

MENU_OPEN           = "&Открыть"
MENU_CONOPEN        = "Открыть в &командной строке"
MENU_DOSOPEN        = "Открыть &в окне MS-DOS"
MENU_EDIT           = "&Изменить"
MENU_PRINT          = "&Печать"

FILE_WSHEXT         = "wshext.dll"
FILE_SCROBJ         = "scrobj.dll"

без проблем под W2K.

В последней версии (можете сравнить) добавилась секция восстановления ассоциаций:

[ProcessesToAssoc]
"cmd /c ""assoc .WSH=WSHFile"" "
"cmd /c ""assoc .VBS=VBSFile"" "
"cmd /c ""assoc .VBE=VBEFile"" "
"cmd /c ""assoc .JS=JSFile"" "
"cmd /c ""assoc .JSE=JSEFile"" "
"cmd /c ""assoc .WSF=WSFFile"" "

да слегка поменялся механизм вызова перерегистрации («wscript -regserver» после перезагрузки вызывается не в «RunOnce», а в «RunOnceEx»).

Так что, могу сказать только, что у меня работало.

pserg пишет:

А как же это:

последний перерегистрирует библиотеки, настройки, контекстное меню…

Я растолковал, как необходимый элемент для корректной работы.

Здесь делается попытка проделать фактически то же самое, что происходит при инсталляции «Windows Script Host»; пользовать нужно если (пере)инсталляция не помогает или невозможна.

pserg пишет:

И еще, переименовав свой *.vbs в *.wsf, получил другую ошибку:

Этого недостаточно. Там свой формат оформления; сам скрипт в котором — лишь один из элементов: WSH: пишем сценарии в формате WSF.

13

Re: WSH: Как запустить скрипт под w2k?

pserg пишет:

p.s. Повторный запуск п. 2. и переименование файла снова в *.vbs спасло ситуацию. Полностью ли поддерживается в w2k функционал из XP/2003, узнаю завтра (скрипт работает >12 часов).

Неправильный подход: Windows Script Host 5.7 полностью поддерживает возможности Windows Script Host 5.6 (максимально допустимая версия для Windows 2000). А с самими скриптами при переносе W3K&#8594;W2K могут быть проблемы. Например, технология WMI для Windows 2000 не предусматривала объекта SWbemDateTime, нет класса Win32_PingStatus, нет возможности различать в классе Win32_Processor число процессоров/ядер/HyperThreading (впрочем, этого и в XP нет) и т.п. То есть, для скриптов многое также зависит и от установленных компонент на машину.

pserg пишет:

Какие вообще расширения файлов могут использоваться для WSH-скрипта кроме vbs?

Многие. Но в Вашем случае скрипт-то содержит код VBScript, потому попытки дать ему другое допустимое для Windows Script Host расширение не приведут ни к чему хорошему: будет ожидаться другой формат файла или язык.

14

Re: WSH: Как запустить скрипт под w2k?

Спасибо, вроде бы общий смысл уловил. Разбираться в дебрях WSF пока не планирую, просто старый vbs-тест надо прогнать под w2k.
Пока раболтает, дальше видно будет.

15

Re: WSH: Как запустить скрипт под w2k?

Работа над ошибками.

alexii пишет:

…поддерживает возможности Windows Script Host 5.6 (максимально допустимая версия для Windows 2000).

Download details: Windows Script 5.7 for Windows 2000

alexii пишет:

…нет возможности различать в классе Win32_Processor число процессоров/ядер/HyperThreading (впрочем, этого и в XP нет) и т.п.

В Windows XP SP3 уже есть (из-за включённого в него KB936235 The number of physical hyperthreading-enabled processors or the number of physical multicore processors is incorrectly reported in Windows XP):


Before you apply this hotfix, the WMI classes and the WMI properties exhibit the following behavior.

Win32_ComputerSystem

    * The NumberOfProcessors property returns the number of logical processors that are available on the system.
    * The NumberOfLogicalProcessors property is not available.

Win32_Processor

    * The NumberOfLogicalProcessors property is not available.
    * The NumberOfCores property is not available.
    * The number of Win32_Processor instances that are returned is equal to the number of logical processors that are available on the system.

After you apply this hotfix, the WMI classes and the WMI properties exhibit the following behavior.

Win32_ComputerSystem

    * The NumberOfProcessors property returns the number of physical processors that are available on the system.
    * The NumberOfLogicalProcessors property returns the number of logical processors that are available on the system.

Win32_Processor

    * The NumberOfLogicalProcessors property returns the number of logical processors on the current instance.
    * The NumberOfCores property returns the number of cores on the current instance.
    * The number of Win32_Processor instances that are returned is equal to the number of physical processors that are available on the system.

To determine whether hyperthreading is enabled for the processor, compare the value of the NumberOfCores property to the value of the NumberOfLogicalProcessors property. If hyperthreading is enabled in the basic input/output system (BIOS) for the processor, the value of the NumberOfCores property is less than the value of the NumberOfLogicalProcessors property.

For example, assume that a dual-processor system contains two processors that are each enabled for hyperthreading. This system can run four threads or four programs at the same time. In this case, the value of the NumberOfCores property is 2, and the value of the NumberOfLogicalProcessors property is 4.

Под Windows Server 2003 — KB932370 The number of physical hyperthreading-enabled processors or the number of physical multicore processors is incorrectly reported in Windows Server 2003.

16 (изменено: smaharbA, 2010-10-21 07:35:04)

Re: WSH: Как запустить скрипт под w2k?

в 5.0 небыло ексека

не просче ли скачать с сайта МС версию 5.6

Я конечно далек от мысли... (с)

17

Re: WSH: Как запустить скрипт под w2k?

alexii пишет:

3. Загрузить с форума OSzone и выполнить scriptru_5.7_XP_SP3_rereg.exe, — последний перерегистрирует библиотеки, настройки, контекстное меню…

Есть облегченный вариант от Microsoft: When I run a script in Windows Script, I receive an error message: "Library not registered". Можно «ручками», можно и просто Fix it. Общее описание здесь: Register Windows Script Engine Fix it Live! - Microsoft Fix it BLOG - Site Home - TechNet Blogs.