Hallo,
voor mijn werk moet ik de geinstalleerde software op de computers nakijken maar ik wil dit het liefst zonder programmatjes doen om de computers schoon te houden. Daarom heb ik van de IT'er een vbs script gekregen, maar dit geeft pop-ups in windows met de informatie en ik wil het het liefst opgeslagen zien in een bestand. Ik heb redelijke kennis van virtual basic maar dit gaat me mijn pet te boven, dus daarom vraag ik het hier maar.
De script die ik gekregen heb ziet er als volgt uit:
Option Explicit
Dim objWbem
Dim colInstProducts
Dim objProduct
Dim colFeatures
Dim objFeature
Dim blnDetails
Dim strComputer
'On Error Resume Next
'Err.Clear
If WScript.Arguments.Count = 0 Then
blnDetails = False
ElseIf WScript.Arguments.Count = 1 Then
If UCase(WScript.Arguments(0)) = "TRUE" Then
blnDetails = True
Else
blnDetails = False
End If
ElseIf WScript.Arguments.Count = 2 Then
If UCase(WScript.Arguments(0)) = "TRUE" Then
blnDetails = True
Else
blnDetails = False
End If
strComputer = WScript.Arguments(1)
Else
blnDetails = False
End If
If WScript.Arguments.Count = 2 Then
Set objWbem = GetObject("winMgmts:\\" & strComputer)
Set colInstProducts = objWbem.InstancesOf("Win32_Product")
Else
Set objWbem = GetObject("winmgmts:\\" & strComputer)
Set colInstProducts = objWbem.InstancesOf("Win32_Product")
End If
If WScript.Arguments.Count <> 2 Then
WScript.Echo "This report lists all the software " & _
"products installed on [This Computer]"
Else
WScript.Echo "This report lists all the software " & _
"products installed on [" & UCase(strComputer) & "]"
End If
WScript.Echo " under the control of the Windows Installer"
WScript.Echo ""
If Err <> 0 Then
WScript.Echo "Could not connect to WMI"
WScript.Quit
End If
'Loop through Products adding report entries
For Each objProduct In colInstProducts
WScript.Echo "-----------------------------------------"
WScript.Echo objProduct.Name
WScript.Echo Space(5) & "Version: " & objProduct.Version
WScript.Echo Space(5) & "IndentifyingNumber: " & objProduct.IdentifyingNumber
WScript.Echo Space(5) & "Description: " & objProduct.Description
WScript.Echo Space(5) & "Vendor: " & objProduct.Vendor
WScript.Echo Space(5) & "Install Date: " & GetVbDate(objProduct.InstallDate)
WScript.Echo Space(5) & objProduct.InstallDate
If blnDetails = True Then
Set colFeatures = objProduct.Associators_("Win32_ProductSoftwareFeatures")
For Each objFeature In colFeatures
WScript.Echo Space(10) & "--------------------------"
WScript.Echo Space(10) & "Name: " & objFeature.Name
WScript.Echo Space(10) & "Desc: " & objFeature.Description
WScript.Echo Space(10) & "Version: " & objFeature.Version
WScript.Echo Space(10) & "Product Name: " & objFeature.ProductName
WScript.Echo Space(10) & "Vendor: " & objFeature.Vendor
WScript.Echo Space(10) & "# Accesses: " & objFeature.Accesses
WScript.Echo Space(10) & "ID: " & objFeature.IdentifyingNumber
WScript.Echo Space(10) & "Install Date: " & GetVbDate(objFeature.InstallDate)
WScript.Echo Space(10) & "Last Used Date: " & GetVbDate(objFeature.LastUse)
Next
End If
Next
Function GetVbDate(sDate)
On Error Resume Next
Dim strDate
If IsNull(sDate) Then
GetVbDate = "Unknown"
Else
strDate = DateSerial(Mid(sDate, 1, 4), _
Mid(sDate, 5, 2), _
Mid(sDate, 7, 2))
If strDate = "11/30/1979" Then
GetVbDate = "(Default Date, 1980)"
Else
GetVbDate = strDate
End If
End If
End Function
Ik hoop dat jullie me kunnen helpen om de gevonden gegevens in een tekstbestand op te slaan, op de desktop bijvoorbeeld.
voor mijn werk moet ik de geinstalleerde software op de computers nakijken maar ik wil dit het liefst zonder programmatjes doen om de computers schoon te houden. Daarom heb ik van de IT'er een vbs script gekregen, maar dit geeft pop-ups in windows met de informatie en ik wil het het liefst opgeslagen zien in een bestand. Ik heb redelijke kennis van virtual basic maar dit gaat me mijn pet te boven, dus daarom vraag ik het hier maar.
De script die ik gekregen heb ziet er als volgt uit:
Option Explicit
Dim objWbem
Dim colInstProducts
Dim objProduct
Dim colFeatures
Dim objFeature
Dim blnDetails
Dim strComputer
'On Error Resume Next
'Err.Clear
If WScript.Arguments.Count = 0 Then
blnDetails = False
ElseIf WScript.Arguments.Count = 1 Then
If UCase(WScript.Arguments(0)) = "TRUE" Then
blnDetails = True
Else
blnDetails = False
End If
ElseIf WScript.Arguments.Count = 2 Then
If UCase(WScript.Arguments(0)) = "TRUE" Then
blnDetails = True
Else
blnDetails = False
End If
strComputer = WScript.Arguments(1)
Else
blnDetails = False
End If
If WScript.Arguments.Count = 2 Then
Set objWbem = GetObject("winMgmts:\\" & strComputer)
Set colInstProducts = objWbem.InstancesOf("Win32_Product")
Else
Set objWbem = GetObject("winmgmts:\\" & strComputer)
Set colInstProducts = objWbem.InstancesOf("Win32_Product")
End If
If WScript.Arguments.Count <> 2 Then
WScript.Echo "This report lists all the software " & _
"products installed on [This Computer]"
Else
WScript.Echo "This report lists all the software " & _
"products installed on [" & UCase(strComputer) & "]"
End If
WScript.Echo " under the control of the Windows Installer"
WScript.Echo ""
If Err <> 0 Then
WScript.Echo "Could not connect to WMI"
WScript.Quit
End If
'Loop through Products adding report entries
For Each objProduct In colInstProducts
WScript.Echo "-----------------------------------------"
WScript.Echo objProduct.Name
WScript.Echo Space(5) & "Version: " & objProduct.Version
WScript.Echo Space(5) & "IndentifyingNumber: " & objProduct.IdentifyingNumber
WScript.Echo Space(5) & "Description: " & objProduct.Description
WScript.Echo Space(5) & "Vendor: " & objProduct.Vendor
WScript.Echo Space(5) & "Install Date: " & GetVbDate(objProduct.InstallDate)
WScript.Echo Space(5) & objProduct.InstallDate
If blnDetails = True Then
Set colFeatures = objProduct.Associators_("Win32_ProductSoftwareFeatures")
For Each objFeature In colFeatures
WScript.Echo Space(10) & "--------------------------"
WScript.Echo Space(10) & "Name: " & objFeature.Name
WScript.Echo Space(10) & "Desc: " & objFeature.Description
WScript.Echo Space(10) & "Version: " & objFeature.Version
WScript.Echo Space(10) & "Product Name: " & objFeature.ProductName
WScript.Echo Space(10) & "Vendor: " & objFeature.Vendor
WScript.Echo Space(10) & "# Accesses: " & objFeature.Accesses
WScript.Echo Space(10) & "ID: " & objFeature.IdentifyingNumber
WScript.Echo Space(10) & "Install Date: " & GetVbDate(objFeature.InstallDate)
WScript.Echo Space(10) & "Last Used Date: " & GetVbDate(objFeature.LastUse)
Next
End If
Next
Function GetVbDate(sDate)
On Error Resume Next
Dim strDate
If IsNull(sDate) Then
GetVbDate = "Unknown"
Else
strDate = DateSerial(Mid(sDate, 1, 4), _
Mid(sDate, 5, 2), _
Mid(sDate, 7, 2))
If strDate = "11/30/1979" Then
GetVbDate = "(Default Date, 1980)"
Else
GetVbDate = strDate
End If
End If
End Function
Ik hoop dat jullie me kunnen helpen om de gevonden gegevens in een tekstbestand op te slaan, op de desktop bijvoorbeeld.