Windows マシンにインストールされているソフトウェアのレポートを作成するスクリプトを作成しようとしています。
現在、レジストリのアンインストール フォルダから情報を取得していますが、問題があります。
私は2つの多くの情報を得る
ヘルパー、ランタイム、ドライバーパックなどのソフトウェアには興味がありません。重要なのは、ライセンスが必要なソフトウェアだけです。Microsoft SQL サーバー、MS Office、Adobe Photoshop など。
それを判断するスマートな方法はありますか、それとも難しい方法で、Regular 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
ありがとう。