我有一个VB.Net 2012 Web应用程序,我们正在尝试执行一个启动位于远程VM上的vbs脚本的进程。
当我直接在Visual Studio调试器中运行代码时,代码正常工作,该调试器通过以下URL生成:
http://localhost:63579/DDFE/MultiRun.aspx?&Sort=
但是,当我们将应用程序发布到生产文件夹并运行Web应用程序时,cmd进程似乎没有正确执行。以下是已发布的网址:
http://ne1dwgtqa301/DDFE/MultiRun.aspx?&Sort=
您可以看到区别在于机器名称“ne1dwgtqa301”与“localhost:63579”。
我认为这是一个权限问题,但是无法确定Shell命令在通过发布的URL运行时未正确执行的根本原因。即使在主机服务器上执行此操作也不会运行,但在手动运行或在同一服务器上通过“localhost:63579”运行时,该命令可正常运行。
非常感谢任何帮助!
Protected Sub btnRun_Click(sender As Object, e As EventArgs) Handles btnRun.Click
Dim shellCommand As String
For Each item As ListItem In lstVMs.Items
If item.Selected = True Then
shellCommand = "C:\websites\prod\DDFE\Log\psexec.exe \\NE1-VDI-" & item.Text & ".us.ad.xxx.com -e -h -u W2KXXX\user -p pswd C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe /c C:\windows\SysWoW64\cscript.exe C:\Scripts\Driver.vbs"
Shell(shellCommand, AppWinStyle.Hide)
End If
Next
End Sub 'btnRun_Click
答案 0 :(得分:0)
在黑暗中拍摄 - 但这就是我编写shell命令行的方法。
shellCommand = "cmd.exe /c cd C:\websites\prod\DDFE\Log\ " & "& psexec \\NE1-VDI-" & item.Text & ".us.ad.xxx.com -e -h -u W2KXXX\user -p pswd & powershell.exe /c cd C:\windows\SysWoW64\ " & "& cscript C:\Scripts\Driver.vbs"
Shell(shellCommand, AppWinStyle.Hide, true, -1)
我认为你错过了一个至关重要的"&" cmd.exe和powershell.exe命令之间的符号