#requires -version 3.0 Function Get-VolumeScan { [cmdletbinding()] Param ( [Parameter(Position=0,ValueFromPipeline=$True)] [ValidateNotNullorEmpty()] [string]$Computername = $env:computername ) Begin { Import-Module Storage } Process { Write-Verbose "Getting volumes from $Computername" #get fixed volumes $volumes = Get-volume -CimSession $computername | where {$_.DriveType -eq 'Fixed' -AND $_.Driveletter} | Sort DriveLetter foreach ($volume in $volumes) { Write-Verbose "Scanning $($volume.driveletter)" $scan = Repair-Volume -DriveLetter $volume.driveletter -Scan -CimSession $Computername $Hash=[ordered]@{ Computername=$volume.PSComputername Driveletter=$volume.driveletter Status=$scan Label=$volume.FileSystemLabel FileSystem=$volume.FileSystem ScanDate=Get-Date } #Write a custom object to the pipeline New-Object -TypeName PSobject -Property $hash } } #Process End {} } #end function