Scripts/Get-PCDiskInformation.ps1
Function Get-PCDiskInformation { <# .SYNOPSIS Get hard drive information .DESCRIPTION Get hard drive information .PARAMETER ComputerName The target computer name .EXAMPLE Get-PCDiskInformation -ComputerName LabPC2024 .NOTES N/A .LINK N/A #> [CmdletBinding ()] Param ( [Parameter (Mandatory = $True, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True, HelpMessage = 'Enter computer name' ) ] [String[]]$ComputerName ) BEGIN { $DriveType = @{ '0' = 'Unknown' '1' = 'No root directory' '2' = 'Removable disk' '3' = 'Local disk' '4' = 'Network drive' '5' = 'Compact disc' '6' = 'RAM disk' } $DriveMeadiaType = @{ '0' = 'Format is unknown' '1' = '5 1/4-Inch Floppy disk - 1.2 MB - 512 bytes/sector' '2' = '3 1/2-Inch Floppy disk - 1.44 MB - 512 bytes/sector' '3' = '3 1/2-Inch Floppy disk - 2.88 MB - 512 bytes/sector' '4' = '3 1/2-Inch Floppy disk - 20.8 MB - 512 bytes/sector' '5' = '3 1/2-Inch Floppy disk - 720 KB - 512 bytes/sector' '6' = '5 1/4-Inch Floppy disk - 360 KB - 512 bytes/sector' '7' = '5 1/4-Inch Floppy disk - 320 KB - 512 bytes/sector' '8' = '5 1/4-Inch Floppy disk - 320 KB - 1024 bytes/sector' '9' = '5 1/4-Inch Floppy disk - 180 KB - 512 bytes/sector' '10' = '5 1/4-Inch Floppy disk - 160 KB - 512 bytes/sector' '11' = 'Removable media other than floppy' '12' = 'Fixed hard disk media' '13' = '3 1/2-Inch Floppy disk - 120 MB - 512 bytes/sector' '14' = '3 1/2-Inch Floppy disk - 640 KB - 512 bytes/sector' '15' = '5 1/4-Inch Floppy disk - 640 KB - 512 bytes/sector' '16' = '5 1/4-Inch Floppy disk - 720 KB - 512 bytes/sector' '17' = '3 1/2-Inch Floppy disk - 1.2 MB - 512 bytes/sector' '18' = '3 1/2-Inch Floppy disk - 1.23 MB - 1024 bytes/sector' '19' = '5 1/4-Inch Floppy disk - 1.23 MB - 1024 bytes/sector' '20' = '3 1/2-Inch Floppy disk - 128 MB - 512 bytes/sector' '21' = '3 1/2-Inch Floppy disk - 230 MB - 512 bytes/sector' '22' = '8-Inch Floppy disk - 256 KB - 128 bytes/sector' } Function Show-Output ($Computer, $Values, $Status) { If ($Values.Size) { [Int]$HDSize = $Values.Size / 1GB $DriveSize = "$($HDSize)$(' GB')" [Int]$HDFreeSpace = $Values.FreeSpace / 1GB $DriveSpace = "$($HDFreeSpace)$(' GB')" } [PSCustomObject]@{ ComputerName = $Computer Caption = $Values.Caption Description = $Values.Description VolumeName = $Values.VolumeName FileSystem = $Values.FileSystem DriveType = $DriveType["$($Values.DriveType)"] MediaType = $DriveMeadiaType["$($Values.MediaType)"] Size = $DriveSize FreeSpace = $DriveSpace VolumeSerialNumber = $Values.VolumeSerialNumber Compressed = $Values.Compressed SupportsDiskQuotas = $Values.SupportsDiskQuotas SupportsFileBasedCompression = $Values.SupportsFileBasedCompression Status = $Status } } } PROCESS { ForEach ($Computer In $ComputerName) { If (Test-Connection -ComputerName $Computer -Count 1 -Quiet) { Try { $Data = Get-WmiObject Win32_LogicalDisk -ComputerName $Computer | Select-Object * ForEach ($Item In $Data) { Show-Output $Computer.ToUpper() $Item 'Ok' } } Catch { Show-Output $Computer.ToUpper() $Null $PSItem.Exception.Message } } Else { Show-Output $Computer.ToUpper() $Null 'Unreachable' } } } END {} } |