Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. [cmdletbinding(PositionalBinding = $true,
  2. DefaultParameterSetName = "Default")]
  3. param (
  4. [parameter(mandatory = $false,
  5. ValueFromPipeline = $true,
  6. ValueFromPipelineByPropertyName = $true,
  7. Position = 0)]
  8. [alias('Comp', 'Name', 'DNSHostName')]
  9. [string[]]$ComputerName = 'localhost'
  10. )
  11.  
  12. BEGIN {
  13. #Requires -Version 3
  14.  
  15. $ErrorActionPreference = [System.Management.Automation.ActionPreference]::Stop
  16.  
  17. $objResults = @()
  18.  
  19. $SizeInGB = @{ Name = "SizeGB"; Expression = { "{0:N2}" -f ($_.Size/1GB) } }
  20. $FreespaceInGB = @{ Name = "FreespaceGB"; Expression = { "{0:N2}" -f ($_.Freespace/1GB) } }
  21. $PercentFree = @{ name = "PercentFree"; Expression = { [int](($_.FreeSpace/$_.Size) * 100) } }
  22.  
  23. } # BEGIN
  24.  
  25. PROCESS {
  26. foreach ($c in $ComputerName) {
  27. if (Test-Connection -ComputerName $c -Count 2 -Quiet) {
  28. try {
  29. Write-Verbose -Message "Working on $c"
  30.  
  31. $diskQuery = $null
  32.  
  33. $diskQuery = Get-WmiObject -ComputerName $c -Query "SELECT SystemName,Caption,VolumeName,Size,Freespace,DriveType FROM win32_logicaldisk WHERE drivetype = 3" |
  34. Select-Object SystemName, Caption, VolumeName, $SizeInGB, $FreespaceInGB, $PercentFree
  35.  
  36. foreach ($item in $diskQuery) {
  37. $objDiskInfo = @()
  38.  
  39. $objDiskInfo = [PSCustomObject] @{
  40. SystemName = $item.SystemName
  41. DriveLetter = $item.Caption
  42. VolumeName = $item.VolumeName
  43. SizeGB = $item.SizeGB
  44. FreeSpaceGB = $item.FreeSpaceGB
  45. PercentFree = $item.PercentFree
  46. } # $objDiskInfo
  47.  
  48. $objResults += $objDiskinfo
  49. } # foreach
  50.  
  51. } catch {
  52. Write-Warning -Message "$c - $_"
  53. } # try/catch
  54.  
  55. } else {
  56. Write-Warning -Message "$c - Unreachable via Ping"
  57. } # if/else
  58. } # foreach
  59.  
  60. } # PROCESS
  61.  
  62. END {
  63. $objResults
  64. } # END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement