从 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 安装程序创建的。
我有以下问题:
客户的自定义安装脚本需要导入一个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 安装程序创建的。