New
#41
vehement:
This script puts three files on your desktop. Attach all three.
Script:
# *******************************************************************************
# Places 3RD PARTY DRIVERS.TXT on your desktop
# Places 3RD Party DRIVERS.CSV on your desktop
#
# Places FULL DRIVER INFO.CSV on you desktop.
#
# All are sorted by the driver creation date
#
# CSV files can be viewed, sorted, etc. using Microsoft EXCEL
# *******************************************************************************
# Create an array of gwmi objects
$a = gwmi win32_systemdriver | select name, description, state, startmode,pathname
# Create an array of pathnameobjects
$b = $a | foreach { (gi $_.pathname) } |
select creationtime, lastaccesstime,lastwritetime, basename, directory, name
# Create an array of FileVersionInfo objects using the array you just created
$c = $a | foreach { (gi $_.pathname).versioninfo } |
select companyname,filedescription,filename,internalname,productversion,fileversion
# Create an empty array to hold objects
$arr = @()
$i = 0 # initialize index
ForEach ($aobj in $a) {
$obj = new-object system.object # Create a new system object
# add members using the names and values from the two arrays of objects
$obj | add-member -type noteproperty -name Name -value $aobj.name
$obj | add-member -type noteproperty -name State -value $aobj.state
$obj | add-member -type noteproperty -name "Start Mode" -value $aobj.startmode
$obj | add-member -type noteproperty -name "creationtime" -value ($b[$i].creationtime)
$obj | add-member -type noteproperty -name "Created" -value ($b[$i].creationtime).toshortdatestring()
$obj | add-member -type noteproperty -name "Last Accessed" -value $b[$i].lastaccesstime
$obj | add-member -type noteproperty -name "Last Written" -value $b[$i].lastwritetime
$obj | add-member -type noteproperty -name "Directory" -value $b[$i].directory
$obj | add-member -type noteproperty -name "Company Name" -value $c[$i].companyname
$obj | add-member -type noteproperty -name "Description" -value $c[$i].filedescription
$obj | add-member -type noteproperty -name "File Name" -value $c[$i].filename
$obj | add-member -type noteproperty -name "Internal Name" -value $c[$i].internalname
$obj | add-member -type noteproperty -name "Product Version" -value $c[$i].productversion
$obj | add-member -type noteproperty -name "File Version" -value $c[$i].fileversion
$arr += $obj
$i ++
}
$barr = $arr | ? {($_.state -eq "Running") -AND ($_."Company Name" -ne "Microsoft Corporation")} |
sort creationtime | select name, Description, "Created", "File Version", "Company Name"
# $barr | ft -wrap -auto > $env:userprofile\desktop\"3RD PARTY DRIVERS.TXT"
$barr | fl > $env:userprofile\desktop\"3RD PARTY DRIVERS.TXT"
$barr | export-csv -notypeinformation $env:userprofile\desktop\"3RD PARTY DRIVERS.CSV"
$arr | sort creationtime |
select name, Description, "Created", "File Version", "Company Name", State, "Start Mode", `
"Last Accessed", "Last Written", "File Name", "Internal Name", Directory, "Product Version" |
export-csv -notypeinformation $env:userprofile\desktop\"FULL DRIVER INFO.CSV"
EXIT
EXIT