2012-08-08 84 views
0

我想用VBscript列出在windows server 2008 R2上安裝的軟件。 我想驗證必備軟件(其中之一是.NET Framework 3.5.1)。 我實際上有兩個解決方案,他們都沒有顯示所有的軟件。在Windows Server 2008 R2上安裝的VBScript列表軟件

Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE 
installedSoftwaresPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" 

Set objReg = GetObject("winmgmts://./root/default:StdRegProv") 

objReg.EnumKey HKLM, installedSoftwaresPath, arrSubkeys 
For Each strSubkey In arrSubkeys 
    Ret = objReg.GetStringValue(HKLM, installedSoftwaresPath & strSubkey, "DisplayName", SoftwareName) 
    If Ret <> 0 Then 
    objReg.GetStringValue HKLM, strKey & strSubkey, "QuietDisplayName", SoftwareName  
    End If 
    If SoftwareName<> "" Then 
     WScript.Echo VbCrLf & "Display Name: " & SoftwareName 
    End If 
Next 

另一種方案是這樣的一個:

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") 
Set colSoftware = objWMIService.ExecQuery("Select * from Win32_Product") 

For Each objSoftware in colSoftware 
    WScript.Echo objSoftware.Caption 
Next 

是否有可能獲得所有已安裝的軟件?如果沒有,我會爲每個必備軟件制定一個特定的解決方案。

編輯: 有些應用軟件我的腳本發現:

Microsoft應用程序錯誤報告, 微軟的Visual C++ 2008可再發行, 微軟安全客戶端, ADOBE READER

我想發現: 。 NET框架3.5.1

我想要一個通用的解決方案來找到所有安裝的軟件。

SOLUTION: 看來,沒有通用的方法來檢查已安裝的軟件。我發現在這條道路的.NET框架的註冊表項:

"SOFTWARE\Microsoft\MSBuild\ToolsVersion\v3.5\" 
+0

我想這兩個腳本只顯示通過Microsoft Windows Installer(MSI)安裝的軟件。你可以添加一個或兩個已安裝但未顯示的軟件示例嗎?這可以證明或反駁我的假設。 – rene 2012-08-08 20:52:01

+0

我編輯了這個問題來添加信息。 – pikaille 2012-08-09 13:30:39

回答

1

而不必訪問自己的服務器,看看你正在尋找安裝了該軟件,我只能在你怎麼可能修改你的猜測腳本。

不過,也有你可能應該之外尋找其他的地方: HKLM \ SOFTWARE \微軟\的Windows \ CurrentVersion \卸載\

例如,您可能希望看:

HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall 
HKLM\SOFTWARE\Classes\Installer 
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData 

您可能會在其中一個位置找到您要查找的內容。

您可能還想使用RegEdit爲「.NET Framework 3.5.1」執行「查找」以查看是否顯示某處可以可靠地找到它。

相關問題