0

我正在尝试制作一个脚本,它将给我一份安装在 Windows 机器上的软件的报告。

现在我正在从注册表卸载文件夹中提取信息,但是有一个问题。

我得到了两个很多信息

我对帮助程序、运行时、驱动程序包等软件不感兴趣。唯一重要的是可能需要许可证的软件,例如。Microsoft SQL server、MS Office、Adobe Photoshop 等。

是否有一种聪明的方法来确定这一点,或者它是一种艰难的方法并通过常规 exp 对其进行排序?

现在我有一个创建 txt 文件的 VBScript。然后我在 C# 中对它进行排序。

on error resume next 

Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE 
Set objNetwork = CreateObject("Wscript.Network") 
strComputer = objNetwork.ComputerName 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextFile = objFSO.CreateTextFile("C:\Users\a-frkjer\Desktop\" & strcomputer & ".txt", True) 

strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" 
strEntry1a = "DisplayName" 
strEntry1b = "QuietDisplayName"
strEntry1c = "Publisher" 

Set objReg = GetObject("winmgmts://" & strComputer & _ 
 "/root/default:StdRegProv") 
objReg.EnumKey HKLM, strKey, arrSubkeys 

objTextFile.WriteLine ".::SECTION"

For Each strSubkey In arrSubkeys 
  intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _ 
   strEntry1a, strValue1) 
  intRet1c = objReg.GetStringValue(HKLM, strKey & strSubkey, _ 
   strEntry1c, strValue1c) 
  If intRet1 <> 0 Then 
    objReg.GetStringValue HKLM, strKey & strSubkey, _ 
     strEntry1b, strValue1 
  End If 
  If strValue1 <> "" Then 
    objTextFile.WriteLine strValue1c & " " & strValue1 & " ¿ " & strcomputer & "¿" 
  End If 
Next 

strKey2 = "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\" 
strEntry2a = "DisplayName" 
strEntry2b = "QuietDisplayName" 
strEntry2c = "Publisher" 

Set objReg = GetObject("winmgmts://" & strComputer & _ 
 "/root/default:StdRegProv") 
objReg.EnumKey HKLM, strKey2, arrSubkeys 

objTextFile.WriteLine ".::SECTION"

For Each strSubkey In arrSubkeys 
  intRet2 = objReg.GetStringValue(HKLM, strKey2 & strSubkey, _ 
   strEntry2a, strValue2) 
  intRet2c = objReg.GetStringValue(HKLM, strKey2 & strSubkey, _ 
   strEntry2c, strValue2c) 
  If intRet2 <> 0 Then 
    objReg.GetStringValue HKLM, strKey2 & strSubkey, _ 
     strEntry2b, strValue2 
  End If 
  If strValue2 <> "" Then 
        objTextFile.WriteLine strValue2c & " " & strValue2 & " ¿ " & strcomputer & "¿" 
  End If 
Next 

objTextFile.Close 

谢谢。

4

0 回答 0