- 06/05/2017
- 読むのに5分
-
- j
- s
- s
- s
- K
- m
- b
レジストリエントリはキーのプロパティであり、直接参照することはできない
レジストリエントリの一覧表示
レジストリエントリを調べるには、さまざまな方法があります。 最も簡単な方法は、キーに関連付けられたpropertynamesを取得することです。 たとえば、レジストリキーHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
Get-Item
を使用します。 レジストリキーキー内のレジストリエントリのリストである”Property”の一般名を持つプロパティを持っています。次のコマンドは、Propertyプロパティを選択し、リストに表示されるように項目を展開します:
DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId
レジストリエントリをより読みやすい形式で表示するには、Get-ItemProperty
:
Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
キーのWindows PowerShell関連のプロパティには、asPSPath、PSParentPath、PSChildName、psprovider。現在の場所を参照するには、*.*
表記を使用できます。 最初にCurrentVersionレジストリコンテナに変更するには、Set-Location
を使用できます:または、組み込みのHKLM PSDriveをSet-Location
:
Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion
次に、*.*
表記を使用して、現在の場所のプロパティを一覧表示できますフルパスを指定せずに:
Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...
パス展開は、ファイルシステム内と同じように機能するため、この場所からHKLM:\SOFTWARE\Microsoft\Windows\Help
Get-ItemProperty -Path ..\Help
Get-ItemProperty -Path ..\Help
Get-ItemProperty -Path ..\Help
Get-ItemProperty -Path ..\Help
Get-ItemProperty -Path ..\Help
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...
パス展開は、ファイルシステム内と同じように動作します。>.
単一のレジストリエントリの取得
レジストリキー内の特定のエントリを取得する場合は、いくつかの可能なアプリケーションのいずれかを この例では、DevicePathの値をHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
で検索します。
Get-ItemProperty
を使用して、Pathパラメーターを使用してキーの名前を指定し、名前パラメーターを使用してDevicePathエントリの名前を指定します。
Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath
このコマンドは、標準のWindows PowerShellプロパティとDevicePathpropertyを返します。
注意
Get-ItemProperty
にはFilter、Include、およびExcludeパラメータがありますが、プロパティ名でフィルタリングするために使用することはできません。 これらのパラメータは、項目のプロパティであるレジストリエントリではなく、itempathsであるレジストリキーを参照します。別のオプションは、Regを使用することです。exeコマンドラインツール。 Regの助けのために。exeを実行し、コマンドプロンプトでreg.exe /?
と入力します。 DevicePathエントリを検索するには、regを使用します。次のコマンドに示すようにexeを実行します:
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath
WshShell COMオブジェクトを使用してレジストリエントリを検索することもできますが、thismethodは大きなバイナリデータや”\”などの文字を含むレジストリエントリ名では動作しません)。 プロパティ名を\区切り記号で項目パスに追加します。
(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf
単一のレジストリエントリの設定
レジストリキーの特定のエントリを変更する場合は、いくつかの可能なapproachesのいずれかを使用できます。 この例では、HKEY_CURRENT_USER\Environment
の下のパスエントリを変更します。 Pathエントリは、実行可能ファイルの検索場所を指定します。
Get-ItemProperty
を使用してパスエントリの現在の値を取得します。- 新しい値を追加し、それを
;
で区切ります。 - registryentryを変更するには、指定したキー、エントリ名、および値で
Set-ItemProperty
を使用します。
注意
Set-ItemProperty
にはFilter、Include、およびExcludeパラメータがありますが、プロパティ名でフィルタリングするには使用できません。 これらのパラメータは、項目のプロパティであるレジストリエントリではなく、itempathsであるレジストリキーを参照します。別のオプションは、Regを使用することです。exeコマンドラインツール。 Regの助けのために。exe、regと入力します。exe/?コマンドプロンプトで。
次の例では、上記の例で追加されたパスを削除して、パスエントリを変更します。Get-ItemProperty
reg query
からstringreturnedを解析する必要がないように、現在の値を取得するためにまだ使用されています。 SubStringメソッドとLastIndexOfメソッドは、パスエントリに追加された最後のパスを取得するために使用されます。
The operation completed successfully.
新しいレジストリエントリの作成
CurrentVersionキーに”PowerShellPath”という名前の新しいエントリを追加するには、キーへのパス、エントリ名、エントリの値をNew-ItemProperty
を使用します。 この例では、Windows PowerShellのインストールディレクトリへのパスを格納するWindows PowerShell変数$PSHome
の値を取ります。
次のコマンドを使用してキーに新しいエントリを追加することができ、コマンドは新しいエントリに関する情報も返します:
PropertyTypeはMicrosoftの名前でなければなりません。———–RegistryValueKind列挙memberfrom次の表:
PropertyType Value | Meaning |
---|---|
Binary | Binary data |
DWord | A number that is a valid UInt32 |
ExpandString | A string that can contain environment variables that are dynamically expanded |
MultiString | A multiline string |
String | Any string value |
QWord | 8 bytes of binary data |
注
pathパラメータの値の配列を指定することにより、レジストリエントリを複数の場所に追加できます。
Forceパラメータを任意のNew-ItemProperty
コマンドに追加することにより、既存のレジストリエントリ値を上書きすることもできます。
レジストリエントリの名前変更
PowerShellPathエントリの名前を”PSHome”に変更するには、Rename-ItemProperty
:
Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome
名前を変更した値を表示するには、PassThruパラメータをコマンドに追加します。PSHomeレジストリエントリとPowerShellPathレジストリエントリの両方を削除するには、Remove-ItemProperty
:
を使用します。レジストリエントリの削除
PSHomeレジストリエントリとPowerShellPathレジストリエントリの両方を削除するには、Remove-ItemProperty
:
を使用します。レジストリエントリの削除
レジストリエントリの削除