質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

1回答

970閲覧

PowerShellでレジストリ操作

LBciel.

総合スコア18

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2023/10/03 15:07

編集2023/10/04 02:44

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • Set-ItemProperty で指定した先のエントリ値を変更したい。

書き換えが出来なくなった恐らくPC側の設定を改善したい。どのファイルを指定したら良いのか。そもそも問題点が違うのか。

問題点

ここに質問の内容を詳しく書いてください。

  • 管理者モードでPowerShellを起動しています。

何度か成功はしていたのですが、exe化というかアプリ化の方法がわからずメモ帳を拡張子batに書き換えて下記コードを入力して実行した際に「このファイルを開く方法を選んでください。」というWindowsのメッセージが表示され、メモ帳を選択して終了したものの変更されませんでした。
その後再度PowerShellから書き換えができていた下記コードを試したものの、「このファイルを開く方法を選んでください。」というWindowsのメッセージが常に表示される事となりました。

発生している問題・エラーメッセージ

このファイルを開く方法を選んでください。

該当のソースコード

PowerShell

1PS C:\WINDOWS\system32> Set-ItemProperty -Path 'HKLM:SYSTEM\省略' -name 'Start' -value 0x4

問題が起きる直前のソースコード

bat

1C:\WINDOWS\system32> Set-ItemProperty -LiteralPath 'HKLM:SYSTEM\省略' , 'HKLM:SYSTEM\省略' -name 'Start' -value 0x4

試したこと

指定先にレジストリエディターやコマンドプロンプトを選択したもののエラーが出て選択されませんでした。

補足情報(FW/ツールのバージョンなど)

Windows10
Windows PowerShell

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2023/10/03 20:04

C:\WINDOWS\system32> の部分は PowerShell が表示するプロンプトで、自分で打ち込んだり .bat ファイルに書く必要はないのでは…。
LBciel.

2023/10/03 23:37

そうなのですね。ありがとうございます! 通常の起動方法の場合は「ユーザー」になり、管理者の場合は「system32」になったので必要なのかと思いました。 batファイルをショートカットにして常に管理者にして起動するという方法も試してみたのですが変わらずでした…
guest

回答1

0

現状、以下の認識でよいでしょうか?

  1. PowerShellの端末(青いCUI画面とか)にて直接 Set-ItemProperty ~ コマンドを入力し、何度か成功した
  2. スクリプト化を試みて 拡張子.batファイルを作成したが、1.のコマンドが失敗する
  3. 拡張子.batファイル(バッチファイル)をダブルクリックなどで実行できなくなった (恐らく関連付けがおかしくなった)

解決したい問題 としては以下でよいでしょうか?

  1. スクリプト化して繰り返し実行可能にしたい
  2. バッチファイルの関連付けを戻したい

(元々バッチファイル自体を実行できない環境だったという場合は、上記の現状3および解決したい問題2は無かったことにします)

スクリプト化

PowerShellのスクリプトは拡張子ps1です。拡張子batファイルは旧来のコマンドプロンプト用のバッチファイルです。
バッチファイルでは、Set-ItemPropertyのようなPowerShell用のコマンドは実行できません。

PowerShellのスクリプトを実行できるようにするには

  1. 拡張子.ps1ファイルを作成し、さらに実行許可を含めたショートカットファイルを作成し、ショートカットをダブルクリック等で実行する
  2. 拡張子.ps1ファイルを作成し、さらに実行許可を含めたバッチファイルを作成し、バッチファイルをダブルクリック等で実行する

等の手順が必要です。

またコメントで指摘されている通り、C:\WINDOWS\system32> の部分はコマンドではないのでスクリプトに含めてはいけません。
これは『PS=PowerShellであること(おそらくコマンドプロンプトの画面と区別するための表記)』、『コマンド実行するカレントディレクトリ』を示すプロンプトであり、コマンドとは関係ありません。

バッチファイルの関連付け

手元のwindows10で確認してみたのですが、エクスプローラのファイルプロパティからbatファイルのアプリの関連付けは変更できませんでした。
ですので、もしこれの解決が必要ならば、windowsの設定 > アプリの関連付けとか、直接レジストリを弄って解決する必要があるかもしれません。

投稿2023/10/04 06:06

pecmm

総合スコア760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LBciel.

2023/10/04 11:00 編集

回答ありがとうございます。 pecmmさんの認識で間違いありません。 >元々バッチファイル自体を実行できない環境だった こちらに関しては当方の知識不足で判断出来かねます。デスクトップで実行したのですが、各々のパス先に保存しないと起動しても意味がないという事でしょうか。 バッチファイルをデスクトップで実行後「このファイルを開く方法を選んでください。」というWindowsのメッセージが表示されるようになり、その後PowerShellで起動確認が取れていた動作を行った際にもメッセージが表示されるようになり実行出来なくなりました。 恐らく関連付けが原因と思われるのですが、私が行っている行為が何に対して行っているか正確に理解しておらずとりあえず試して理解しようとしている為、現状となっていると考えています。 >PowerShellのスクリプトは拡張子ps1です。拡張子batファイルは旧来のコマンドプロンプト用のバッチファイルです。 こちらに関しては最初に実行出来なくなった際にコマンドプロンプトなら実行出来るのか?と思いコマンドプロンプトで実行した際にSet-ItemPropertyがコマンドプロンプトの言語ではないと理解しました。その後ネットで調べてps1というものがあると知りえましたが、そもそも起動が出来なくなっているので一先ずそちらの調べ物は置いておいて状況の改善をとこちらに質問する形になりました。 >バッチファイルの関連付け 恐らくこれが一番の原因と思われるのですが、PowerShellやコマンドプロンプトの本来の関連先が何かわからない為、もしわかるようであれば教えて頂きたいと考えています。 ※現状 Windows PowerShell の「ファイル種類ごとに既定のアプリを選ぶ」を確認したところ「.psc1」(Windows PowerShell コンソールファイル)となっておりました。「.ps」は既定なし。「.ps1」はメモ帳。「.bat」は既定なし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問