bsharath
asked on
What is the best software that can find all softwares installed on all machines in the network and dump the data to a excel file. Without any client traces in the machines.
Hi,
What is the best software that can find all softwares installed on all machines in the network and dump the data to a excel file. Without any client traces in the machines.
Regards
Sharath
What is the best software that can find all softwares installed on all machines in the network and dump the data to a excel file. Without any client traces in the machines.
Regards
Sharath
ASKER
Thanks can this script leave out the hotfixes and patches installed in the machine and get me just softwares.
Like office,Visio etc
Like office,Visio etc
ASKER
Thanks can this script leave out the hotfixes and patches installed in the machine and get me just softwares.
Like office,Visio etc
Like office,Visio etc
OK Try this
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objReg = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strRegIdentityCodes = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
strRegComputerName = "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName"
strComputerName = objShell.RegRead(strRegComputerName)
Const HKLM = &H80000002
Const APPEND = 8
strFileOut = strComputerName & " Inventory.xls"
If objFSO.FileExists(strFileOut) Then
Set objFileOut = objFSO.OpenTextFile(strFileOut, APPEND)
objFileOut.WriteLine("")
Else
Set objFileOut = objFSO.CreateTextFile(strFileOut)
End If
objFileOut.WriteLine("Inventory for " & strComputerName & " at " & Now)
objFileOut.WriteLine("Computer Name" & vbTab & "Identity Code" & vbTab & "Display Name" & vbTab & _
"Display Version" & vbTab & "Install Date" & vbTab & "Uninstall String" & vbTab & _
"Quiet Uninstall String")
objReg.EnumKey HKLM, strRegIdentityCodes, arrIdentityCode
On Error Resume Next
For Each strIdentityCode in arrIdentityCode
strRegIdentityInfo = "HKLM\" & strRegIdentityCodes & "\" & strIdentityCode & "\"
strDisplayName = objShell.RegRead(strRegIdentityInfo & "DisplayName")
strDisplayVersion = objShell.RegRead(strRegIdentityInfo & "DisplayVersion")
strInstallDate = objShell.RegRead(strRegIdentityInfo & "InstallDate")
strUninstallString = objShell.RegRead(strRegIdentityInfo & "UninstallString")
strQuietUninstallString = objShell.RegRead(strRegIdentityInfo & "QuietUninstallString")
strISKB = left(strIdentityCode, 2)
if strISKB <> "KB" then
objFileOut.WriteLine(strComputerName & vbTab & strIdentityCode & vbTab & strDisplayName & vbTab & _
strDisplayVersion & vbTab & strInstallDate & vbTab & strUninstallString & vbTab & _
strQuietUninstallString)
end if
strDisplayName = ""
strDisplayVersion =""
strInstallDate = ""
strUninstallString = ""
strQuietUninstallString = ""
Next
objFileOut.Close
ASKER
Thanks this even better...
But i get such data
{90120000-0030-0000-0000-0 000000FF1C E}
{90120000-0030-0000-0000-0 000000FF1C E}_ENTERPR ISE_{02B5A 17B-01BE-4 BA6-95F1-1 CBB46EBC76 E}
{90120000-0030-0000-0000-0 000000FF1C E}_ENTERPR ISE_{1B78D 541-9FF1-4 330-ADD8-C ED14F0C1E8 E}
{90120000-0030-0000-0000-0 000000FF1C E}_ENTERPR ISE_{305D5 09B-F194-4 638-9F0F-D 9E4C05F9D3 3}
Can this also be removed...
But i get such data
{90120000-0030-0000-0000-0
{90120000-0030-0000-0000-0
{90120000-0030-0000-0000-0
{90120000-0030-0000-0000-0
Can this also be removed...
ASKER
Thanks this even better...
But i get such data
{90120000-0030-0000-0000-0 000000FF1C E}
{90120000-0030-0000-0000-0 000000FF1C E}_ENTERPR ISE_{02B5A 17B-01BE-4 BA6-95F1-1 CBB46EBC76 E}
{90120000-0030-0000-0000-0 000000FF1C E}_ENTERPR ISE_{1B78D 541-9FF1-4 330-ADD8-C ED14F0C1E8 E}
{90120000-0030-0000-0000-0 000000FF1C E}_ENTERPR ISE_{305D5 09B-F194-4 638-9F0F-D 9E4C05F9D3 3}
Can this also be removed...
But i get such data
{90120000-0030-0000-0000-0
{90120000-0030-0000-0000-0
{90120000-0030-0000-0000-0
{90120000-0030-0000-0000-0
Can this also be removed...
OK this one should only list applications with a friendly display name...
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objReg = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strRegIdentityCodes = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
strRegComputerName = "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName"
strComputerName = objShell.RegRead(strRegComputerName)
Const HKLM = &H80000002
Const APPEND = 8
strFileOut = strComputerName & " Inventory.xls"
If objFSO.FileExists(strFileOut) Then
Set objFileOut = objFSO.OpenTextFile(strFileOut, APPEND)
objFileOut.WriteLine("")
Else
Set objFileOut = objFSO.CreateTextFile(strFileOut)
End If
objFileOut.WriteLine("Inventory for " & strComputerName & " at " & Now)
objFileOut.WriteLine("Computer Name" & vbTab & "Identity Code" & vbTab & "Display Name" & vbTab & _
"Display Version" & vbTab & "Install Date" & vbTab & "Uninstall String" & vbTab & _
"Quiet Uninstall String")
objReg.EnumKey HKLM, strRegIdentityCodes, arrIdentityCode
On Error Resume Next
For Each strIdentityCode in arrIdentityCode
strRegIdentityInfo = "HKLM\" & strRegIdentityCodes & "\" & strIdentityCode & "\"
strDisplayName = objShell.RegRead(strRegIdentityInfo & "DisplayName")
strDisplayVersion = objShell.RegRead(strRegIdentityInfo & "DisplayVersion")
strInstallDate = objShell.RegRead(strRegIdentityInfo & "InstallDate")
strUninstallString = objShell.RegRead(strRegIdentityInfo & "UninstallString")
strQuietUninstallString = objShell.RegRead(strRegIdentityInfo & "QuietUninstallString")
strISKB = left(strIdentityCode, 2)
if strISKB <> "KB" and strDisplayName <> "" then
objFileOut.WriteLine(strComputerName & vbTab & strIdentityCode & vbTab & strDisplayName & vbTab & _
strDisplayVersion & vbTab & strInstallDate & vbTab & strUninstallString & vbTab & _
strQuietUninstallString)
end if
strDisplayName = ""
strDisplayVersion =""
strInstallDate = ""
strUninstallString = ""
strQuietUninstallString = ""
Next
objFileOut.Close
ASKER
Thanks can i have just the machine name and display name...Can you remove all the other colums please...
ASKER
Thanks can i have just the machine name and display name...Can you remove all the other colums please...
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks worked fine....
I shall post a new Q... Can you get this changed to run on a list of machines in a txt file. Which can get the results to 1 excel in different sheets
I shall post a new Q... Can you get this changed to run on a list of machines in a txt file. Which can get the results to 1 excel in different sheets
ok il have a go : )
You could do this with a script.... Here is a copy of a script I use to dump the software on the local machine off. With a bit of jigging it could do remote machines... Or you could put it in the logon scripts to dump it all to a network path...
Open in new window