在这个可视化基本脚本中需要帮助:以静默模式启动程序

时间:2014-09-12 05:11:44

标签: vbscript silent

我正在尝试以静默模式启动程序,以安装某个应用程序。 以静默方式启动安装的命令行如下:

setup.exe /s /v" /q"

我尝试使用以下内容: strCmd="C:\setup.exe"" /s /v"""" /q"""

但显然这不起作用。任何人都可以帮我写出正确的语法。 我知道引号作为转义字符有问题。 我浪费了很多时间试图解决这个问题。  任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:1)

从评论中确定正确的安装字符串。对于VBS,您可以(在计算机上)运行它:

Dim oShell
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "cmd /C C:\setup.exe /s /v""/qn"""
Set oShell = Nothing

如果您不想使用GPO进行部署,您也可以使用PSEXEC.EXE手动将安装任务推送到计算机,它不需要setup.exe在计算机上,并且网络共享文件夹是好的对此。

答案 1 :(得分:0)

如果要使用其他凭据运行命令,可以使用RunAs命令。但是,在RunAs命令中嵌入命令时,事情会变得棘手。这些步骤可能有所帮助:

  1. 确定正确的命令行语法。在命令提示符下直接测试,以确保它是正确的。

    c:\setup.exe /s /v"/qn"
    
  2. RunAs命令中嵌入命令。您的整个命令需要用引号括起来。此外,您的命令中的任何引号都需要使用\进行转义。再次,在命令提示符下直接测试它以确保它是正确的。

    runas.exe /user:DOMAIN\USER "c:\setup.exe /s /v\"/qn\""
    
  3. 将整个命令字符串转换为VBScript。无论您在何处看到引号,请加倍,或将其替换为Chr(34)。以下是引号加倍时的外观:

    runas.exe /user:DOMAIN\USER ""c:\setup.exe /s /v\""/qn\""""
    
  4. 将其分配给VBScript变量。我们只需要在整个命令周围添加额外的引号:

    strCommand = "runas.exe /user:DOMAIN\USER ""c:\setup.exe /s /v\""/qn\"""""
    
  5. 现在你准备好了。您可以使用Shell.Run直接运行此代码:

    With CreateObject("WScript.Shell")
        .Run strCommand
    End With
    
  6. 请注意,当SendKeys提示您输入密码时,仍需要使用RunAs,因为它无法在命令行上传递密码。

    另一种方法是使用SCHTASKS来安排立即运行一次性任务。使用SCHTASKS可以在命令行上传递完整的凭据。