VBScript - 需要在两个不同的路径上查询以获取已安装程序的列表

时间:2016-03-18 01:52:05

标签: vbscript

我是vbscript的新手。我正在努力通过注册表获取使用vbscript的所有程序的列表。我的问题是我想搜索两个路径"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\CSV“然后将其编译为一个const HKEY_LOCAL_MACHINE = &H80000002 Dim strComputer, strKeyPath,strKeyPath2 strComputer = "." Sub Check_Installed(strKeyPath) Dim objReg, strSubkey, arrSubkeys Set objReg=GetObject( _ "winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys Dim objFSO, objCSVFile Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objCSVFile = objFSO.CreateTextFile("Installed-Softwares_final.csv", _ ForWriting, True) Dim Name,Version,Publisher,Location,Size For Each strSubkey In arrSubkeys objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayName" , Name If Name <> "" Then objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayVersion", Version objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "Publisher",Publisher objReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "EstimatedSize" , Size If Size <> "" Then Size= Round(Size/1024, 3) & " MB" Else Size= "0 MB" End If objCSVFile.Write Name &","&Version&","&Publisher&","&Size objCSVFile.Writeline ' New Line End If Next End Sub strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" strKeyPath2 = "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\" Check_Installed(strKeyPath) Check_Installed(strKeyPath2) WScript.Echo "Installed Softwares exported successfully into CSV file through Registry using VBScript." WScript.Quit

这是我的代码:

body {
    background-color: #eeeeee;
}
header {

    text-align: center;
    height: 80px;
    width: 100%;
    background-color: #eeeeee;
}
#stredovyObal {
    margin-left: 10%;
    margin-right: 10%;
    width: 80%;
}

#container1 {
    float:left;
    width: 100%;
    background:white;
    position:relative;
}
#col1, #col2 {
  padding: 15px;
  box-sizing: border-box;
}
#col1 {
    text-align: center;
    float:left;
    width: 25%;
    position:relative;

}
#col2 {
text-align: justify;
    float:left;
    width: 75%;
    position: relative;
    background:yellow;
}

footer {
float: left;
    width: 100%;
    height: 1em;
    background-color: #007501;
        text-align: right;
    color: white;
}    
footer p {
    text-align: right;
    color: white;
    font: bold;
    font: fantasy;

} 

1 个答案:

答案 0 :(得分:1)

这是我的标准答案。使用/format:csv进行CSV输出。

开始 - 所有程序 - 附件 - 右键单击​​命令提示符,然后选择以管理员身份运行。键入(或通过右键单击“命令提示符”窗口并选择“粘贴”进行复制和粘贴)。表格格式的类型

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

在VBS中也是如此(这意味着最好的方法是批处理)。

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Product")

For Each objItem in colItems
    msgbox objItem.Name & " " & objItem.Version
Next