从 VBS 导入的 reg 文件不完整

Reg file import from VBS incomplete

我有以下问题:

客户的自定义安装脚本需要导入一个reg文件。它是在系统上下文中使用命令 (32bit)

从 VBScript 文件 运行ning 完成的

cmd /c reg import reg_neu32Bit.reg /reg:32

或 64 位

cmd /c reg import reg_neu.reg /reg:64

当运行从具有管理员权限的控制台手动操作时,它会成功导入所有密钥。然而,当来自 VBScript 的 运行 时,导入在中间中断,没有反馈,只导入了一些键(直到 NetworkServerFile 行),在注册表中找不到该行以下的键。

reg 文件如下所示:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Company\__Tool3]
"EnableEM"="True"
"EnableRegistry"="True"


[HKEY_LOCAL_MACHINE\SOFTWARE\SOME_SOFT\Tool3_V3\SOMETHING]
"PathToInstantClient"="C:\Program Files\SOME_SOFT\Tool3_V3\instant_client"
"MemorySize"="640000"
"RowCount"="1000"
"CONNECTIONTYPE"="SOMETHING"
"NetworkServerStatus"="False"
"NetworkServerFile"=""
"CheckIsAdmin"="success"
"PWD"="123456......................"
"TNS"="appp"
"USR"="app"
"NLS_LANG"="GERMAN_GERMANY.AL16UTF16"
"BIN_PWD"=hex:ab.....
"TNS_ADMIN"="\\somenetpath"

知道为什么会发生这种情况吗?


编辑:

VBScript 代码:

ReDim Preserve aShellRunAI(0)
If iBits = 64 Then
   aShellRunAI(0) = "cmd /c reg import reg_neu.reg /reg:64"
Else
   aShellRunAI(0) = "cmd /c reg import reg_neu32Bit.reg /reg:32"
End If

以后依次为:

For Each sCmd In aShellRunAI
    WriteToLog 0, "sCmd:" & sCmd
    Call oShell.Run(sCmd, 0, True)
Next

尽管脚本的工作目录被设置为正确的路径,但在我的案例中,通过使用绝对路径而不是相对路径,问题得到了解决。显然,使用相对路径导致根本找不到 .reg 文件,并且与 .reg 文件第一行匹配的注册表项是由之前调用的 exe 安装程序创建的。