function Get-DotNetTempFilesCreationTime { <# .SYNOPSIS Gets the first time a .NET Temporary File was created #> [CmdletBinding()] Param( [Parameter(Mandatory = $false)] [Alias("AppPoolName")] [string]$Name = "" ) $logLead = (Get-LogLeadName); $providerStopWatch = [System.Diagnostics.StopWatch]::StartNew() $DotNetTempFilesCreationTimeDictonary = New-Object System.Collections.Specialized.OrderedDictionary $DotNetTempFilesCreationTimeDetails = New-Object System.Collections.Specialized.OrderedDictionary try { Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Getting ASP.NET Temporary files" $targetItems = Get-ChildItem -recurse "C:\Windows\Microsoft.NET\Framework*\v*\Temporary ASP.NET Files\$Name*"; Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Retrived ASP.NET Temporary files" $LastWriteTimes = @() foreach ($targetItem in $targetItems) { Write-Verbose ("$logLead : Extracting Create time {0} for file {1}" -f $targetItem.creationTime, $targetItem.Name); $LastWriteTimes += $targetItem.creationTime } $DotNetTempFilesCreationTimeDetails["Date"] = ($LastWriteTimes | sort-object)[0] } catch { $DotNetTempFilesCreationTimeDetails["Error"] = $_.Exception.ToString() } $DotNetTempFilesCreationTimeDictonary.Add("DotNetTemps", $DotNetTempFilesCreationTimeDetails) Write-Verbose "$logLead : [$($providerStopWatch.Elapsed)] : Provider Complete" $providerStopWatch.Stop() return $DotNetTempFilesCreationTimeDictonary }