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")