Monday, July 31, 2017

Get Network Servers Drives info with CSV file

Function Get-WmidrivesCustom([string]$class,[string]$computername = "localhost",[string]$namespace = "root\cimv2",[int]$timeout= 15,[string]$where)
{
    $ConnectionOptions = new-object System.Management.ConnectionOptions
    $EnumerationOptions = new-object System.Management.EnumerationOptions
   
    $timeoutseconds = new-timespan -seconds $timeout
    $EnumerationOptions.set_timeout($timeoutseconds)
   
    $assembledpath = "\\" + $computername + "\" + $namespace
    #write-host $assembledpath -foregroundcolor yellow
   
    $Scope = new-object System.Management.ManagementScope $assembledpath, $ConnectionOptions
    $Scope.Connect()
     
    $querystring = "SELECT * FROM " + $class  + " " + $where
#
    write-host $querystring
   
    $query = new-object System.Management.ObjectQuery $querystring
    $searcher = new-object System.Management.ManagementObjectSearcher
    $searcher.set_options($EnumerationOptions)
    $searcher.Query = $querystring
    $searcher.Scope = $Scope
   
   
 
    return $searcher.get()
}


$csvContents = @()


$servers = get-content -Path "c:\ServerDiskMonitoring\servers.txt"

foreach($server in $servers)
{

#$drive_information =Get-WmiCustom "Win32_LogicalDisk"

$row = New-Object System.Object
$row | Add-Member -MemberType NoteProperty -Name "ServerName" -Value $server
 $drive_information = Get-WmidrivesCustom -ComputerName $server -NameSpace "root\cimv2" -Class Win32_logicaldisk -TimeOut 3 -Where "WHERE MediaType = 12"

foreach($drive in $drive_information)
{

   $drive_freespace_gb = [Math]::Round($drive.FreeSpace / 1024 / 1024 / 1024, 2)
   $drive_name = $drive.Name
   write-host $drive_name
   write-host $drive_freespace_gb

   $row = New-Object System.Object

  $row | Add-Member -MemberType NoteProperty -Name "DriveName" -Value "$drive_name"

  $row | Add-Member -MemberType NoteProperty -Name "DriveFreeSpace" -Value "$drive_freespace_gb"
  $csvContents += $row

}

}

$csvContents | Export-CSV -Path C:\temp\ServerDrives.csv



No comments:

Post a Comment