Quantcast
Channel: Windows PowerShell forum
Viewing all articles
Browse latest Browse all 21975

Calling functions and passing parameters

$
0
0

Hi

I'm starting to use powershell and writing some basic scripts to check disk space.

The question I have is that if I use the code below I keep on getting errors at "$diskused=$size-$free" system.object[] doesn't contain a method called op_subtraction. However if I run the code outside of the function block with the same values this works fine. How can I get around this?

thanks

Function Get-DiskSpace
 {
 Param ([string]$server)
 #each server has a C
 $disk = Get-WmiObject Win32_LogicalDisk -ComputerName $server -Filter “DeviceID='C:'” | Select-Object Size,FreeSpace
 
switch ($server)
{
server01 {

     $disk = Get-WmiObject Win32_LogicalDisk -ComputerName server01 -Filter “DeviceID='C:'” | Select-Object Size,FreeSpace
     $size=(($disk.Size/1024)/1024)/1024
     $free=(($disk.FreeSpace/1024)/1024)/1024
    
     $size_gb="{0:N2}" -f $size
     $free_gb="{0:N2}" -f $free
    
         
     calcSize($size_gb,$free_gb)
                 }


} #end switch
} # end Get-DiskSpace

 

Function calcSize
{

Param ($size,$freespace)
Write-Host " size & free space $size $freespace"
$diskused=$size-$free
$PercentUsed=($diskused/$size)*100
Write-Host " % used is "$PercentUsed
return $PercentUsed
}


Get-DiskSpace("server01")


Viewing all articles
Browse latest Browse all 21975

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>