【发布时间】:2018-02-09 03:47:36
【问题描述】:
我有以下问题:
客户的自定义安装脚本需要导入一个reg文件。它是通过在系统上下文中使用命令(32 位)运行的 VBScript 文件完成的
cmd /c reg import reg_neu32Bit.reg /reg:32
或 64 位
cmd /c reg import reg_neu.reg /reg:64
当从具有管理员权限的控制台手动运行时,它会成功导入所有密钥。然而,当从 VBScript 运行时,导入在中间中断,没有反馈,只导入了一些键(直到 NetworkServerFile 行),在注册表中找不到此行以下的键。
reg 文件如下所示:
Windows 注册表编辑器版本 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Company\__Tool3] “启用EM”=“真” "EnableRegistry"="真" [HKEY_LOCAL_MACHINE\SOFTWARE\SOME_SOFT\Tool3_V3\SOMETHING] "PathToInstantClient"="C:\\Program Files\\SOME_SOFT\\Tool3_V3\\instant_client" "内存大小"="640000" “行数”=“1000” “连接类型”=“某事” “网络服务器状态”=“假” "网络服务器文件"="" "CheckIsAdmin"="成功" “密码”=“123456…………” “TNS”=“应用程序” “USR”=“应用程序” "NLS_LANG"="GERMAN_GERMANY.AL16UTF16" “BIN_PWD”=十六进制: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
【问题讨论】:
-
我认为您的 CMD 代码没有任何问题。请出示您的 VBScript 代码。
-
我添加了关于通话的信息
-
将命令行更改为
cmd /c reg import ... >>C:\reg.log 2>&1,以便获得包含导入命令实际输出的日志。还要检查退出代码:rc = oShell.Run(sCmd, 0 , True) : If rc <> 0 Then WScript.Echo "Reg import failed. Exit code: " & rc。 -
谢谢!试过了 - 日志文件中有错误! FEHLER: Fehler beim ???ffnen der Datei。 Es ist m???glicherweise ein Datantr???ger- bzw。 Dateisystemfehler aufgetreten。 - 这意味着错误:打开文件时出错 - 可能是文件系统或驱动器错误。然而,返回码是 0。
-
您是否已经检查过文件系统是否有错误?
标签: vbscript registry registrykey