TronNG.ps1
#Requires -RunAsAdministrator #Requires -Version 5 <#PSScriptInfo .VERSION 3.1.0 .GUID 35eb535b-7e54-4412-a58b-8a0c588c0b30 .AUTHOR Gavin Eke @GavinEke .COMPANYNAME .COPYRIGHT .TAGS TronNG .LICENSEURI .PROJECTURI https://github.com/GavinEke/TronNG .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES .DESCRIPTION Performs a collection of tasks that should speed-up a computers performance. #> $VerbosePreference = "Continue" $LogFile = "$env:LOCALAPPDATA\TronNG\TronNG.log" If (!(Test-Path -Path $LogFile)) { New-Item -Path $($LogFile | Split-Path -Parent) -ItemType Directory New-Item -Path $($LogFile | Split-Path -Parent) -Name $($LogFile | Split-Path -Leaf) -ItemType File Write-Output "TronNG Log" | Out-File -FilePath $LogFile } Write-Output "Start of TronNG - $(Get-Date)" | Tee-Object -FilePath $LogFile -Append If ([Environment]::OSVersion.Version.Major -eq 10) { #Prerequisite Check # Step 0 - Create Checkpoint If (!($args.Contains("-SkipStep0"))) { Write-Verbose "Step 0 - Create Checkpoint" | Tee-Object -FilePath $LogFile -Append Checkpoint-Computer -Description "TronNG" -ErrorAction SilentlyContinue } # Step 1 - Update If (!($args.Contains("-SkipStep1"))) { Write-Verbose "Step 1 - Update" | Tee-Object -FilePath $LogFile -Append (New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow() } # Step 2 - Virus Scan If (!($args.Contains("-SkipStep2"))) { Write-Verbose "Step 2 - Virus Scan" | Tee-Object -FilePath $LogFile -Append Update-MpSignature -ErrorAction SilentlyContinue Start-MpScan -ErrorAction SilentlyContinue } # Step 3 - Clean-up If (!($args.Contains("-SkipStep3"))) { Write-Verbose "Step 3 - Clean-up" | Tee-Object -FilePath $LogFile -Append Remove-Item $env:temp\* -Recurse -ErrorAction SilentlyContinue | Tee-Object -FilePath $LogFile -Append Remove-Item $env:tmp\* -Recurse -ErrorAction SilentlyContinue | Tee-Object -FilePath $LogFile -Append Clear-RecycleBin -Confirm:$False } # Step 4 - Repair If (!($args.Contains("-SkipStep4"))) { Write-Verbose "Step 4 - Repair" | Tee-Object -FilePath $LogFile -Append Repair-Volume -DriveLetter C �Scan } # Step 5 - Defrag If (!($args.Contains("-SkipStep5"))) { Write-Verbose "Step 5 - Defrag" | Tee-Object -FilePath $LogFile -Append $IsSSD = Get-Disk | Where-Object Model -match 'ssd' If (!($IsSSD)) { #SSD Check Optimize-Volume -DriveLetter C -Defrag } } # Step 6 - Drive Health Check If (!($args.Contains("-SkipStep6"))) { Write-Verbose "Step 6 - Drive Health Check" | Tee-Object -FilePath $LogFile -Append If ((Get-Disk).HealthStatus -ne 'Healthy') { #Failing Drive Check Write-Output "A hard drive in this computer might be failing, it is suggested you investigate all connected hard drives." | Tee-Object -FilePath $LogFile -Append } } } Else { Write-Error "Prerequisite Check Failed - This script can only be run on Windows 10 in an elevated shell" | Tee-Object -FilePath $LogFile -Append } Write-Output "End of TronNG - $(Get-Date)" | Tee-Object -FilePath $LogFile -Append Write-Output "---------------------------" | Tee-Object -FilePath $LogFile -Append |