Upload files to "/"
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
#requires -version 4.0
|
||||
#requires -runasadministrator
|
||||
|
||||
#Retrieving all events with ID 100
|
||||
|
||||
$BootEvents = Get-WinEvent -FilterHashtable @{
|
||||
logname='Microsoft-Windows-Diagnostics-Performance/Operational';
|
||||
id=100}
|
||||
|
||||
#Building a boot history with, for each boot, the duration of the boot process
|
||||
|
||||
$BootHistory = $BootEvents | Select-Object TimeCreated, LevelDisplayName,
|
||||
@{
|
||||
n="BootStartTime";
|
||||
e={Get-Date -Date (([xml]$_.ToXml()).Event.EventData.Data |
|
||||
Where-Object {$_.name -eq "BootStartTime"})."#text"}
|
||||
},
|
||||
@{
|
||||
n="BootEndTime";
|
||||
e={Get-Date -Date (([xml]$_.ToXml()).Event.EventData.Data |
|
||||
Where-Object {$_.name -eq "BootEndTime"})."#text"}
|
||||
},
|
||||
@{
|
||||
n="MainPathBootTime";
|
||||
e={([timespan]::FromMilliseconds((([xml]$_.ToXml()).Event.EventData.Data |
|
||||
Where-Object {$_.name -eq "MainPathBootTime"})."#text"))}
|
||||
},
|
||||
@{
|
||||
n="BootPostBootTime";
|
||||
e={([timespan]::FromMilliseconds((([xml]$_.ToXml()).Event.EventData.Data |
|
||||
Where-Object {$_.name -eq "BootPostBootTime"})."#text"))}
|
||||
}
|
||||
|
||||
$BootStartTime = $BootHistory.bootstarttime
|
||||
|
||||
$MainPathBootTime = $BootHistory.MainPathBootTime
|
||||
|
||||
$PostBootTime = $BootHistory.BootPostBootTime
|
||||
|
||||
$LastBootDate = $BootStartTime | Select-Object -First 1
|
||||
|
||||
$OldestRecordedBoot = $BootStartTime | Select-Object -last 1
|
||||
|
||||
$BootFrequencyInDays = ($LastBootDate - $OldestRecordedBoot).days / $BootStartTime.Count
|
||||
|
||||
$AvgMainBootDuration = [timespan]::FromSeconds((($MainPathBootTime.totalseconds |
|
||||
Measure -A).average)).ToString("hh\:mm\:ss")
|
||||
|
||||
$AvgPostBootDuration = [timespan]::FromSeconds((($PostBootTime.totalseconds |
|
||||
Measure -A).average)).ToString("hh\:mm\:ss")
|
||||
|
||||
$ActualWindowsBootTime = (Get-Date) - `
|
||||
([timespan]::FromMilliseconds([Math]::Abs([Environment]::TickCount)))
|
||||
|
||||
$LastEvent12 = Get-WinEvent -FilterHashtable @{
|
||||
LogName='System';
|
||||
ProviderName='Microsoft-Windows-Kernel-General';
|
||||
ID=12} -MaxEvents 1 | Select -ExpandProperty TimeCreated
|
||||
|
||||
|
||||
#Building an object containing a quick summary of your last computer boot, as
|
||||
#well as of the average boot duration.
|
||||
|
||||
$BootInformation = 1 | Select-Object BootFrequencyInDays, AvgMainBootDuration, `
|
||||
AvgPostBootDuration, LastBootDate, OldestRecordedBoot, `
|
||||
ActualWindowsBootTime, LastEvent12
|
||||
$BootInformation.BootFrequencyInDays = $BootFrequencyInDays
|
||||
$BootInformation.AvgMainBootDuration = $AvgMainBootDuration
|
||||
$BootInformation.AvgPostBootDuration = $AvgPostBootDuration
|
||||
$BootInformation.LastBootDate = $LastBootDate
|
||||
$BootInformation.OldestRecordedBoot = $OldestRecordedBoot
|
||||
$BootInformation.ActualWindowsBootTime = $ActualWindowsBootTime
|
||||
$BootInformation.LastEvent12 = $LastEvent12
|
||||
|
||||
#Grouping boot events by Level, in order to see if your computer boot duration is below or
|
||||
#beyond the thresholds defined in the Registry
|
||||
$BootAnalysis = Get-WinEvent -FilterHashtable @{
|
||||
logname='Microsoft-Windows-Diagnostics-Performance/Operational';
|
||||
id=100} |
|
||||
Group-Object LevelDisplayName
|
||||
|
||||
$BootHistory | Out-Gridview
|
||||
Reference in New Issue
Block a user