2つのハッシュのキーを比較して、存在しないものを抽出

2つのハッシュのキーを比較して、存在しないものを抽出する関数を作成しました。
具体例としては、以下のHash1とHash2というハッシュに対してHash1に存在しないものを抽出する場合、緑の部分を抽出します。

Hash1Hash2
キーキー
one1zero0
two2one1
three3two2
four4three3
結果は次のようなハッシュを返します。
結果
キー
zero0

以下はこの関数を含むスクリプトです。

set-PSDebug -strict;
Function GetDeltaHash{
    param([system.Collections.Hashtable]$h1, [system.Collections.Hashtable]$h2);
    $r = @{};
    foreach ( $key in $h2.keys){
        if (!$h1.ContainsKey($key)){
            $r[$key] = $h2[$key];
        }
    }
    $r
}

$Hash1 = @{one = 1; two = 2; three = 3; four = 4};
$Hash2 = @{zero = 0; one = 1; two = 2; three = 3};
write-Host "";
write-Host "";
write-Host " Hash2に含まれて、Hash1に含まれていないもの";
GetDeltaHash $Hash1 $Hash2;
write-Host "";
write-Host "";
write-Host " Hash1に含まれて、Hash2に含まれていないもの";
GetDeltaHash $Hash2 $Hash1;

結果の画面です。