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
}