Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
To steal from the .DESCRIPTION section of the comment-based help:
“Yes, PowerShell3 has Get-FileHash, but I have some PSH V2 environments that don't benefit from that yummy goodness.”
function Get-Sha256Hash
{
<#
.SYNOPSIS
Get SHA256 checksum
.DESCRIPTION
Get SHA256 checksum. Yes, PowerShell3 has Get-FileHash, but I have some PSH V2 environments that don't benefit from that yummy goodness.
.PARAMETER Path
File for which to generate checksum
.NOTES
Who What When Why
timdunn V1.0 2014-01-27 Initial creation.
#>
param
(
[string]$Path = $null
);
if (!$Path)
{
Write-Warning "$($MyInvocation.MyCommand.Name) -Path not specified. Stopping.";
return;
} # if (!$Path)
elseif (Test-Path $Path)
{
if ((Get-Item $Path).PsIsContainer)
{
Write-Warning "$($MyInvocation.MyCommand.Name) -Path '$Path' is a folder. Stopping.";
return;
} # if ((Get-Item $Path).PsIsContainer)
} # if (Test-Path $Path)
else
{
Write-Warning "$($MyInvocation.MyCommand.Name) -Path '$Path' not found. Stopping.";
return;
} # if (Test-Path $Path)
$Path = (Resolve-Path -Path $Path).ProviderPath;
$ObjectCheckSum = New-Object -TypeName System.Security.Cryptography.Sha256CryptoServiceProvider;
[System.BitConverter]::ToString(
$ObjectCheckSum.ComputeHash(
[System.IO.File]::Open(
$Path,
[System.IO.Filemode]::Open,
[System.IO.FileAccess]::Read,
[System.IO.FileShare]::ReadWrite
)
)
);
} # function Get-Sha256Hash