# PCS Toolkit - Disk Health Check $timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" $outputFile = "$env:USERPROFILE\Desktop\DiskHealth_$timestamp.txt" function Log($msg) { Write-Host $msg Add-Content $outputFile $msg } Log "========================================" Log " PCS Toolkit - Disk Health Check" Log "========================================" Log "Generated: $(Get-Date)" Log "" Log "PHYSICAL DISKS:" Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size, HealthStatus, OperationalStatus | Format-Table | Out-String | ForEach-Object { Log $_ } Log "DISK RELIABILITY (SMART):" Get-PhysicalDisk | ForEach-Object { Log "Disk: $($_.FriendlyName)" $reliability = Get-StorageReliabilityCounter -PhysicalDisk $_ -EA SilentlyContinue if ($reliability) { Log " Temperature: $($reliability.Temperature) C" Log " Read Errors: $($reliability.ReadErrorsTotal)" Log " Write Errors: $($reliability.WriteErrorsTotal)" Log " Wear: $($reliability.Wear)" } else { Log " (No SMART data available)" } Log "" } Log "VOLUMES:" Get-Volume | Where-Object { $_.DriveLetter } | Select-Object DriveLetter, FileSystemLabel, FileSystem, @{N='Size(GB)';E={[math]::Round($_.Size/1GB,2)}}, @{N='Free(GB)';E={[math]::Round($_.SizeRemaining/1GB,2)}}, HealthStatus | Format-Table | Out-String | ForEach-Object { Log $_ } Log "========================================" explorer.exe "/select,$outputFile" Read-Host "Press Enter to exit"