当你这样做时...
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 /c
。cmd /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"