我无法找到这个问题的明确解决方案。简而言之,我想做的是收集计算机上安装的应用程序列表,并将其写入文件。以下是我的第一次尝试:
Set objShell = WScript.CreateObject("Wscript.Shell")
randTrashVar = objShell.Run("cmd /c wmic product get Name,Version > " & strAppListPath, 0, true)
但是为了在所有情况下都能正常工作,它必须以管理员身份运行。因此,我尝试将其包装在 runas 中,但我对此并不太了解,所以可能有些错误。
randTrashVar = objShell.Run("runas /user:Administrator ""cmd /c wmic product get Name,Version > " & strAppListPath & "", 0, true)
或者也可以使用objShell.Exec
执行某些操作。
Set getAppsProcess = objShell.Exec("runas /user:Administrator ""cmd /c wmic product get Name,Version > " & strAppListPath & "")
Do While getAppsProcess.Status = 0
WScript.Sleep 100
Loop
第一个命令使我进入某个地方,它们都在等待命令完成后再继续进行,但是并没有以管理员身份运行/根本没有运行(据我所知)。
现在以管理员身份运行,但不等待。
CreateObject("Shell.Application").ShellExecute "cmd", "/c wmic product get Name,Version > " & strAppListPath, "", "runas", 1
我该怎样才能获得最佳效果?