如何从 VB 脚本(VBS)最小化运行 psexec

如何从 VB 脚本(VBS)最小化运行 psexec

当你这样做时...

Set WshShell = CreateObject("WScript.Shell")
Call WshShell.Run("psexec -u administrator -p pw1234 cmd /c ipconfig > C:\Output.txt", 2, True)

...您会短暂地看到命令提示符窗口。

我一直在网上搜索,并尝试了所有能想到的方法来隐藏/最小化这个窗口,但不幸的是没有成功。

真的没有办法在隐藏/最小化窗口中运行 psexec 吗?

PS:不幸的Call WshShell.Run("psexec -u administrator -p pw1234 start /min cmd /c ipconfig > C:\Output.txt", 2, True)是,它不起作用(错误信息:PsExec 无法启动...)。

答案1

真的没有办法psexec在隐藏/最小化窗口中运行吗?

我相信psexec正在最小化运行。正在“闪现”的命令窗口可能是cmd /ccmd /c调用一个独立于调用它的命令窗口。

如果您想避开这种“闪烁”效果,一种方法是将第二个命令也包装在 VBScript 中。您可能希望尝试:

例如 run_psexec.vbs

Set WshShell = CreateObject("WScript.Shell")
Call WshShell.Run("psexec -u administrator -p pw1234 wscript C:\path\to\ip.vbs", 2, True)

例如 ip.vbs

Set WshShell = CreateObject("WScript.Shell")
Call WshShell.Run("cmd /c ipconfig > C:\ipconfig.txt", 2, True)

注意事项

  • C:\path\to\ip.vbs可能不应包含空格。也许这是测试方面的问题,但我无法让额外的双引号 ( "") 在上述脚本中正常工作,而单引号 ( ') 用于 VBScript 中的注释。

  • 仅使用 ex.ip.vbs结合-u-p选项psexec即可C:\Windows\System32在我的计算机上使用我的用户进行脚本测试时将其作为默认目录。无论如何,wscript如果找不到指定的脚本,应该会弹出一个提示框,向您显示它在哪里寻找文件。

答案2

我尝试过这样的做法并且它对我有用!

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd psexec cmd /c (Ipconfig /all & Ping www.google.com) > output.txt",0,True
'MsgBox "Done",vbInformation,"Ping Results" 
WshShell.Run "output.txt"

相关内容