レジストリの値を取得する

前提 レジストリの構造

[HKEY_LOCAL_MACHINE\SOFTWARE\Foo]
"Value A"="AAA"
"Value B"="BBB"
"Value C"="CCC"

[HKEY_LOCAL_MACHINE\SOFTWARE\Foo\Bar]
(省略)

[HKEY_LOCAL_MACHINE\SOFTWARE\Foo\Vaz]
(省略)
  • 上のレジストリの構造は以下のように説明できる。
    • キー Foo
    • サブキー BarとVaz
    • 値(の名前) Value AとValue BとValue C
    • 値のデータ AAAとBBBとCCC
  • 「あるキーが持つサブキーをすべて取得する」のと「あるキーが持つ値をすべて取得する」のは別なので注意する。
  • つまり、レジストリを参照して設定値(値のデータ)を取得しようと思えば、キーやサブキーではなく、値を指定する必要がある。

キーを指定してある値のデータを取得する

(1) PS> Get-ItemProperty "HKLM:\SOFTWARE\FOO" | select -ExpandProperty "Value A"
(2) PS> (Get-ItemProperty "HKLM:\SOFTWARE\FOO")."Value A"
(3) PS> Get-ItemProperty -Path "HKLM:\SOFTWARE\FOO" -Name "Value A"
  • HKLM:\SOFTWARE\FOOキーのValue Aの値のデータを取得する。
  • (1)と(2)どちらの方法でも結果は同じ。
  • (3)のようにValue Aの値だけ取得してもよい。

キー情報を取得する(キーの持つ値の一覧を参照する)

PS> Get-Item "HKLM:\SOFTWARE\FOO"

Name  Property
----  --------
Foo   Value A : AAA
      Value B : BBB
      Value C : CCC
  • Get-Itemを使うと型は Microsoft.Win32.RegistryKey なオブジェクトが取得され、コンソール上では上のように表示される。
  • キーの持つ値の一覧を見るのが目的なら、このようにGet-Itemコマンドレットを使ってもいい。

サブキー情報を取得する

PS> Get-ChildItem "HKLM:\SOFTWARE\FOO"
または
PS> dir "HKLM:\SOFTWARE\FOO"
  • Get-ItemやGet-ItemPropertyではなく、dirを使う。
  • これで取得されるサブキー情報のオブジェクトの型は Microsoft.Win32.RegistryKey。

サブキーの持つデータを取得する

PS> dir "HKLM:\SOFTWARE\FOO" | % { $_.GetValue("Value XXX") }
  • dirは Microsoft.Win32.RegistryKey なオブジェクトの配列をを返すので、%でループして、GetValues()メソッドを使う。

参考

https://stackoverflow.com/questions/15511809/how-do-i-get-the-value-of-a-registry-key-and-only-the-value-using-powershell


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2018-09-23 (日) 10:21:53 (53d)