Получение недопустимого корня в разделе реестра при запуске CScript.exe из файла Windows Cmd

#c# #cmd #jscript #wsh

#c# #cmd #jscript #wsh

Вопрос:

Я запускаю тестовый файл.cmd из C # exe, создав систему.Диагностика.Процесс.

Test.cmd запускает файл JScript с помощью командной строки Windows Scripting Host, как показано ниже

 C:myfolder>CScript.exe //Nologo testxml.js

testxml.js is running on localhost
==== Begin regenerating Xml  ====
Invalid root in registry key "HKCRCLSID{5D1D2C1E-F343-10D2-93B4-00902710D4AD}
LocalServer32\".
Failed to regenerate Xml for transaction 
 

Но ключ действительно существует в реестре. Я могу изучить его и изменить вручную.

Я попытался изменить разрешения для раздела реестра, но бесполезно.

Пожалуйста, помогите мне, как устранить эту ошибку.

Я использую компьютер с Windows 10 x64.

ниже приведен код моего test.cmd

 @echo off
Cscript.exe //B
goto start
:start
@echo on
CScript.exe //Nologo testxml.js
:end
@echo off
 

Комментарии:

1. Этот раздел реестра создан в js? Если это так, пожалуйста, покажите, как это сделать.

2. Нет. Раздел реестра был ключом установленного продукта из install shield.

3. Еще одна вещь, которую забыл упомянуть, когда я запускаю файл cmd вручную из командной строки, он работает нормально. Только когда я запускаю cmd-файл из процесса C #, я получаю сообщение об ошибке.

4. CLSID Ключ является производным от HKEY_CLASSES_ROOT 64-битного и 32-битного и отличается друг от друга. Вы уверены, что C # выполняет правильный процесс разрядности?

5. Я создал exe-файл в режиме выпуска, выбрав «Любой процессор» в качестве целевой платформы. Надеюсь, это должно быть хорошо как с 32-разрядной, так и с 64-разрядной версией