- Thread Author
-
- #1
Hello,
To make a bit less painful to migrate from my aging 32-bit Windows 7 workstation to the latest and greatest, I need to find what apps I most often use, before gathering and installing the latest version of each and importing data files and settings.
The "Last Used On" column in W7's Programs application in Control Panel is empty. Apparently, MS stopped monitoring app use even before W7.
I googled a bit but found no app for that task.
Do you know of any, available for 32-bit Windows, preferably free (beer/speech)?
Thank you.
To make a bit less painful to migrate from my aging 32-bit Windows 7 workstation to the latest and greatest, I need to find what apps I most often use, before gathering and installing the latest version of each and importing data files and settings.
The "Last Used On" column in W7's Programs application in Control Panel is empty. Apparently, MS stopped monitoring app use even before W7.
I googled a bit but found no app for that task.
Do you know of any, available for 32-bit Windows, preferably free (beer/speech)?
Thank you.
Solution
The closest you will get is looking at timestamps on prefetch files.
I put together a small powershell script you can run to get applications and their last execution time sorted. It will need to be run from an elevated prompt. Some of them you'll just need to throw out since they are Windows binaries.
I put together a small powershell script you can run to get applications and their last execution time sorted. It will need to be run from an elevated prompt. Some of them you'll just need to throw out since they are Windows binaries.
Code:
$PrefetchDirectory = 'C:\Windows\Prefetch'
$PrefetchFiles = (Get-ChildItem -Path $PrefetchDirectory -Include "*.pf" -Recurse | Sort-Object -Property LastWriteTime -Descending)
$EXE = '.exe'
$ExtLength = $EXE.Length
foreach($Prefetch in $PrefetchFiles) {
$Index = $Prefetch.Name.ToLower().IndexOf($EXE)+$ExtLength
$EXEName = $Prefetch.Name.Substring(0,$Index)
Write-Host "Application: " -NoNewline
Write-Host "$EXEName"...
- Joined
- Jul 4, 2015
- Messages
- 8,998
The closest you will get is looking at timestamps on prefetch files.
I put together a small powershell script you can run to get applications and their last execution time sorted. It will need to be run from an elevated prompt. Some of them you'll just need to throw out since they are Windows binaries.
I put together a small powershell script you can run to get applications and their last execution time sorted. It will need to be run from an elevated prompt. Some of them you'll just need to throw out since they are Windows binaries.
Code:
$PrefetchDirectory = 'C:\Windows\Prefetch'
$PrefetchFiles = (Get-ChildItem -Path $PrefetchDirectory -Include "*.pf" -Recurse | Sort-Object -Property LastWriteTime -Descending)
$EXE = '.exe'
$ExtLength = $EXE.Length
foreach($Prefetch in $PrefetchFiles) {
$Index = $Prefetch.Name.ToLower().IndexOf($EXE)+$ExtLength
$EXEName = $Prefetch.Name.Substring(0,$Index)
Write-Host "Application: " -NoNewline
Write-Host "$EXEName" -ForegroundColor Green -NoNewline
Write-Host "-- Last Run: $($Prefetch.LastWriteTime)"
}
- Thread Author
-
- #3
Thanks much for the tip!
Among the many apps/scripts available, Nirsoft's WinPrefetchView makes it possible to sort files by their location, an easy way to ignore those living in the Windows directory.
Cheers,
Among the many apps/scripts available, Nirsoft's WinPrefetchView makes it possible to sort files by their location, an easy way to ignore those living in the Windows directory.
Cheers,