[登録されているタグ]

[記事公開日]2026/01/23

PowerShellでレジストリ値を新規作成する|New-ItemPropertyの使い方

📝 はじめに

PowerShellでレジストリを操作していると、
「値が存在しないため Set-ItemProperty ではエラーになる」
「設定値を新規に作成してから制御したい」
という場面に出会うことがあります。

そんなときに使うのが
New-ItemProperty です。
この記事では、レジストリ値を新規作成する基本から、
実務で安全に使うためのポイントまでを解説します。

こんな場面で便利

  • 存在しないレジストリ値を新しく作りたい
  • 初期設定用のスクリプトを作成したい
  • Set-ItemProperty でエラーになる状況を回避したい

✅ このコマンドでできること(要点)

  • レジストリに新しい値を作成できる
  • 値名・データ・型を指定して登録できる
  • 初期設定や展開用スクリプトに向いている
  • 既存値との使い分けが明確になる

✅ New-ItemProperty でできること

New-ItemProperty は、
レジストリキーの中に新しい値(Value)を作成するためのコマンドです。

すでに値が存在する場合はエラーになるため、
「初回のみ作る設定」や「存在チェックと組み合わせた処理」でよく使われます。

考え方としては、
「設定ファイルに新しい項目を追加する」イメージです。

🧩 基本構文

New-ItemProperty -Path レジストリパス -Name 値名 -Value 設定値 -PropertyType 型

-PropertyType で、
DWORD や String などの型を指定する点が重要です。

▶ 基本的な使い方(まずこれだけ)

🔹 新しいレジストリ値を作成する

New-ItemProperty `
  -Path HKCU:\Software\TestApp `
  -Name Enabled `
  -Value 1 `
  -PropertyType DWORD

エラーが表示されなければ、
レジストリ値は正常に作成されています。
この状態で次の処理に進めます。

🔹 作成結果を確認する

Get-ItemProperty HKCU:\Software\TestApp

作成した値が一覧に表示されていれば、
正しく登録されています。

🛠 よく使われる指定例

🔹 文字列(String)値を作成する

New-ItemProperty `
  -Path HKCU:\Software\TestApp `
  -Name InstallPath `
  -Value "C:\Program Files\TestApp" `
  -PropertyType String

パスや文字列設定の初期登録によく使われます。

🔹 強制的に上書きする

New-ItemProperty `
  -Path HKCU:\Software\TestApp `
  -Name Enabled `
  -Value 0 `
  -PropertyType DWORD `
  -Force

-Force を指定すると、
既存値がある場合でも上書きできます。
意図しない変更にならないよう注意が必要です。

💼 実務でよく使う使用例(応用)

🔹 値が存在しない場合のみ作成する

$path = "HKCU:\Software\TestApp"

if (-not (Get-ItemProperty $path -Name Enabled -ErrorAction SilentlyContinue)) {
    New-ItemProperty `
      -Path $path `
      -Name Enabled `
      -Value 1 `
      -PropertyType DWORD
}

🔹 初期設定用スクリプト

$path = "HKCU:\Software\TestApp"

New-ItemProperty -Path $path -Name Enabled     -Value 1 -PropertyType DWORD
New-ItemProperty -Path $path -Name InstallDir -Value "C:\TestApp" -PropertyType String
組み合わせ例

  • Test-Path でキーの存在確認
  • Get-ItemProperty で事前チェック
  • Set-ItemProperty で既存値の更新

🧩 よくある勘違い・つまずきポイント

  • 既存値があるとエラーになる
  • -PropertyType の指定を忘れがち
  • 値の型を誤ると意図しない動作になる
  • 管理者権限が必要なレジストリがある
  • キー自体が存在しない場合は作成できない

🔄 cmdとの違いについて

cmd では reg add を使って
新しいレジストリ値を作成しますが、
PowerShellではパラメータ指定が分かりやすく、
スクリプトとしての可読性が高くなります。

⚠ エラー・うまく動かないときの確認ポイント

  • 指定したレジストリキーが存在しているか
  • 管理者として実行しているか
  • 値名がすでに存在していないか
  • -PropertyType を正しく指定しているか

🧠 注意点

レジストリ値の新規作成は、
アプリやOSの挙動を変えるきっかけになります。
実務では、仕様を確認したうえで必要最小限の値だけ
作成するようにしてください。

📌 まとめ

  • New-ItemProperty はレジストリ値の新規作成に使う
  • 値の型指定(PropertyType)が重要
  • 既存値は Set-ItemProperty と使い分ける
  • 次は存在チェックと組み合わせた運用を覚えると安心

🔎 PowerShellコマンドを探す

やりたいことからPowerShellコマンドを探せます。

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • レジストリ値を新規作成したい
  • 初期設定を自動化したい
Generic filters
すべてを開く | すべてを閉じる

ページ上部へ戻る