Comparing Hash of downloaded Files with PowerShell

I can’t claim 99% of this – main credit to : http://www.tinyint.com/index.php/2011/09/14/get-an-md5-or-sha1-checksum-with-powershell/

Param (
        [string]$File=$(throw("You must specify a filename to get the checksum of.")),
        [string]$ProvidedHash,
        [ValidateSet("sha1","md5")]
        [string]$Algorithm=("sha1")

)

function Get-Checksum
{
Param (
[string]$File=$(throw("You must specify a filename to get the checksum of.")),
[ValidateSet("sha1","md5")]
[string]$Algorithm=("sha1")

)

$fs = new-object System.IO.FileStream $File, “Open”, “Read”, “Read”;
$algo = [type]"System.Security.Cryptography.$Algorithm"
$crypto = $algo::Create()
$hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "")
$fs.Close()
return $hash

}

$calchash = Get-Checksum $File $Algorithm $ProvidedHash

if ( $calchash -eq $ProvidedHash ) {
Write-Host "hash match" -ForegroundColor Green;
}
else {
Write-Host "hash doesn't match" -ForegroundColor Red
write-host "Provided:" $ProvidedHash "Calculated: " $calchash
}