おれさまラボ

実際に手を動かして理解を深めるブログ。

PowerShell でレジストリ値の有無を真偽値で得る方法

はじめに

レジストリ値の有無によって処理をわけたかったので、条件分岐を書いてみました。

実装

以下のような関数にしてみました。$path$value を指定することで、レジストリ値の有無を真偽値で返します。

$path  = 'HKCU:\SOFTWARE\Microsoft\Office\16.0\Common\Identity'
$value = "EnableADAL"

function Test-ExistsRegistryValue ($regPath, $regName) {
     if (Get-ItemProperty -LiteralPath $regPath -Name $regName -ErrorAction Ignore) {
         $true
     }
     
     else {
         $false
     }
 }

 Test-ExistsRegistryValue $path $value

これで真偽値を得られるので、「もし○○というレジストリ値があったら△△する」といったIF文が書けるようになります。

おわりに

もうちょっとさらっと書けるような気がしたのだけれど意外と実装に時間がかかってしまった。PowerShell のえらー/例外処理の書き方がまだまだ苦手。

以上