我无法找到解决这个问题的明确方法。简而言之,我想要做的是收集计算机上安装的应用程序列表,并将其写入文件。这是我的第一次尝试:
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
我可以做些什么来充分利用这些?
答案 0 :(得分:0)
其中一个。 WMIC不需要管理员 - •
wmic
首次在系统安装后运行Wmic时,必须从提升的命令提示符运行它。除非WMI操作需要管理员权限,否则后续执行Wmic可能不需要提升模式。见http://msdn.microsoft.com/en-au/library/aa826699(v=vs.85).aspx
开始 - 所有程序 - 附件 - 右键单击“命令提示符”,然后选择“以管理员身份运行”。键入(或通过右键单击“命令提示符”窗口并选择“粘贴”进行复制和粘贴)。表格格式的类型
wmic /output:"%userprofile%\desktop\WindowsInstaller.html" product get /format:htable
或表格格式
wmic /output:"%userprofile%\desktop\WindowsInstaller.html" product get /format:hform
它将在桌面上创建一个html文件。
请注意
这不是完整列表。这只是与Windows Installer一起安装的产品。一切都没有特色。
但正如我在上一篇文章中所述,几乎所有内容都列在注册表中。
所以要在命令提示符下看到它
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s
或在文件中
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s>"%userprofile%\desktop\WindowsUninstall.txt"
以不同的格式在记事本中查看
单击开始 - 所有程序 - 附件 - 右键单击命令提示符,然后选择以管理员身份运行。键入Regedit并导航到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
右键单击“卸载”键,然后选择“导出”。如果您保存为reg文件(还有文本文件,它们的文本格式略有不同),您需要右键单击该文件并选择“编辑”进行查看。
查看Windows更新
wmic /output:"%userprofile%\desktop\WindowsUpdate.html" qfe get /format:htable