最初の質問も曖昧な点多くてグダグダになってる感
こんなんでいいか?

$a=@{a=1;b=2;c=3}
$b=@("a","z","c")
$c=[ordered]@{}
$b|? {$_ -in $a.keys}|% {$c[$_]=$a[$_]}