我正在尝试以静默模式启动程序,以安装某个应用程序。 以静默方式启动安装的命令行如下:
setup.exe /s /v" /q"
我尝试使用以下内容:
strCmd="C:\setup.exe"" /s /v"""" /q"""
但显然这不起作用。任何人都可以帮我写出正确的语法。 我知道引号作为转义字符有问题。 我浪费了很多时间试图解决这个问题。 任何帮助都非常感谢。
答案 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
命令中嵌入命令时,事情会变得棘手。这些步骤可能有所帮助:
确定正确的命令行语法。在命令提示符下直接测试,以确保它是正确的。
c:\setup.exe /s /v"/qn"
在RunAs
命令中嵌入命令。您的整个命令需要用引号括起来。此外,您的命令中的任何引号都需要使用\
进行转义。再次,在命令提示符下直接测试它以确保它是正确的。
runas.exe /user:DOMAIN\USER "c:\setup.exe /s /v\"/qn\""
将整个命令字符串转换为VBScript。无论您在何处看到引号,请加倍,或将其替换为Chr(34)
。以下是引号加倍时的外观:
runas.exe /user:DOMAIN\USER ""c:\setup.exe /s /v\""/qn\""""
将其分配给VBScript变量。我们只需要在整个命令周围添加额外的引号:
strCommand = "runas.exe /user:DOMAIN\USER ""c:\setup.exe /s /v\""/qn\"""""
现在你准备好了。您可以使用Shell.Run
直接运行此代码:
With CreateObject("WScript.Shell")
.Run strCommand
End With
请注意,当SendKeys
提示您输入密码时,仍需要使用RunAs
,因为它无法在命令行上传递密码。
另一种方法是使用SCHTASKS
来安排立即运行一次性任务。使用SCHTASKS
,可以在命令行上传递完整的凭据。