PowerShellでSHA256を確認する|Get-FileHashでダウンロードファイルを比較
- 公開:2026.10.06
- 更新:2026.10.06
- Windows
- PowerShell
ISOやZIPをダウンロードしたあと、配布ページに長い「SHA256」の文字列が載っていることがあります。ファイル名や容量は合っているけれど、この値をどう比べればよいのか迷う場面です。
WindowsのPowerShellでは、Get-FileHashで手元のファイルのハッシュ値を計算できます。配布元が示した値と同じ方式で計算し、文字列として比較すれば、内容が一致するかを確かめやすくなります。
配布元の値と対象ファイルをそろえる
まず、配布元の公式ページから、ダウンロードしたファイルに対応するSHA256の値を探してください。同じ製品でもバージョン、CPUの種類、言語、ファイル形式が違えば別の値になります。SHA256とSHA512も違う方式なので、見出しやファイル名を一緒に確認すると取り違えを防げます。
以下の例はWindows PowerShell 5.1またはPowerShell 7で使えます。ファイルを保存したフォルダーでPowerShellを開き、例の.\sample[1].txtを実際のファイルのパスに置き換えて進めてください。ここでは、改行を含まないUTF-8のhelloだけが入った小さなファイルを例にします。配布されたZIPやISOの値はそれぞれ異なります。
ファイルのSHA256を計算する
$file = '.\sample[1].txt'
$result = Get-FileHash -LiteralPath $file -Algorithm SHA256
$result | Select-Object Algorithm, Hash
-LiteralPathはパスをそのままの名前として受け取ります。例のようにファイル名に[ ]がある場合も、ワイルドカードとして解釈されません。空白を含むパスも、シングルクォートで囲んで指定できます。
Get-FileHashの既定の方式もSHA256ですが、ここでは比較する方式が分かるように-Algorithm SHA256を明記しています。上のサンプルでは次の値が表示されます。
Algorithm Hash
--------- ----
SHA256 2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824
Algorithmは計算方式、Hashは計算された値です。Select-Objectでこの2項目だけを取り出しています。コマンドはファイルを読み取り、元の内容を書き換えません。
配布元の値と比較する
表示された長い値を目で追う代わりに、PowerShellで比較できます。$expectedには配布元が示したSHA256の値を入れてください。下の値は前述のサンプル用なので、実際の配布ファイルへそのまま使う値ではありません。
$expected = '2CF24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824'
$actual = (Get-FileHash -LiteralPath $file -Algorithm SHA256 -ErrorAction Stop).Hash
$actual -eq $expected.Trim()
True
Trueなら比較した2つの文字列が一致し、Falseなら一致していません。-eqの文字列比較は大文字・小文字を区別しないため、配布元の値が小文字でも比較できます。Trim()は貼り付けた値の前後の空白を取り除きますが、途中の空白やSHA256:などのラベルは取り除きません。64文字のハッシュ値だけを入れるのがポイントです。
-ErrorAction Stopは、対象ファイルがないなど、ハッシュを計算できないときにそこで処理を止める指定です。エラーが出ている場合は比較結果と取り違えず、先にファイルのパスや読み取り権限を見直してください。
一致しないときはファイルと方式を見直す
不一致になったら、最初に配布ページのファイル名・版・SHA256の指定を確認すると、別のファイル用の値を貼ったのか、ダウンロードした内容が違うのかを絞り込めます。値の転記に問題がなければ、公式の配布先から再取得したファイルでも比べてください。ハッシュ値が違うだけで、破損や改ざんの原因を特定できるわけではありません。
ファイル名だけを変えても、内容が同じならハッシュ値は変わりません。一方、テキストでは改行や文字コード、BOMの違いもファイルのバイト列に影響します。サンプルを自分で作る場合、エディターが末尾に改行を加えると、上に示した値とは一致しなくなります。
ハッシュ一致が示す範囲を知る
SHA256の一致は、信頼できる配布元が示した内容との照合に役立ちます。ただし、一致したことだけでファイルの提供者や安全性が保証されるわけではありません。比較する値自体も公式の配布ページから取得し、実行前には署名や提供元の案内も確認するのがよいでしょう。MD5やSHA1を、攻撃による改ざんを防ぐ目的でSHA256の代わりに選ぶのは避けてください。
-
前の記事
WSL 3.xのインストール方法|Ubuntuの初期設定と更新後の確認 2026.10.05
-
次の記事
WSL containersで自作イメージをビルドする|Windowsへファイルを保存 2026.10.06