URL Protocol値の設定されたProgIDを列挙するコードです。Get-ItemProperty
コマンドレットは-Name
に配列を与えれば複数の値の有無でキー名を取得できることが分かります。
# 呼び出し側のスコープにHKCRを登録します。 function Register-HKCR { [OutputType([void])] param() Remove-PSDrive -Name HKCR -ErrorAction SilentlyContinue [void](New-PSDrive -PSProvider Registry -Root HKEY_CLASSES_ROOT -Name HKCR -Scope 1) } # # HKCRキーのサブキーからURL Protocol値を持つProgID候補を取得します。 # #戻り値: # KeyName、Description、URL Protocolキーを持つPSCustomObject配列。URL Protocolの値は常に空の文字列です。 # function Get-URLProtocolProgID { [OutputType([PSCustomObject[]])] Param () Get-ItemProperty -Path HKCR:* -Name ('(default)','URL Protocol') -ErrorAction SilentlyContinue | Where-Object PSChildName -NotLike .* # 拡張子の除外 | Where-Object 'URL Protocol' -NE $Null | ForEach-Object {[PSCustomObject]@{KeyName=$_.PSChildName; Description=$_.'(default)'; 'URL Protocol'=$_.'URL Protocol'}} } Register-HKCR Get-URLProtocolProgID