Check file hash with PowerShell version 4 & 5

Note: Tested using PowerShell Version 4

A quick way to check the hash of a file is to use PowerShell’s Get-FileHash Cmdlet along with the Compare-Object Cmdlet.

You may want to check the file you’ve downloaded from the Internet hasn’t been changed and websites sometimes have the file hashes to verify this.

In the code below, copy the file hash from the website and paste it in after the ReferenceObject parameter, input the algorithm that was used to produce the hash after the Algorithm parameter and then input the Path to the downloaded file.

Example

After downloading WinDirStat to my C:\Downloads directory, I can check the SHA1 hash by running the following command.

WinDirStat download page

WinDirStat file hashes

Output of Get-FileHash in PowerShell

Output of Get-FileHash

-IncludeEqual

The IncludeEqual parameter is optional. If you don’t use it and the objects match,  PowerShell will return to the command prompt with no output displayed from running the command. The IncludeEqual parameter will display the InputObject, in this case the hash value and two equals signs to show that the objects (hashes in this case) match.

 

Hashes don’t match

If the hashes don’t match, the hash from the file will be displayed along with the hash that was pasted in. The <= shows the first compared object, in this case the pasted hash and the => shows the second compared object, the hash from the file.

For the screenshot below, I changed the end character of the pasted hash value to show what is displayed when the values don’t match.

Output of Get-FileHash in PowerShell, hashes don't match

Output of Get-FileHash, hashes don’t match