質問者
コマンドプロンプトからのレジストリエディタの操作を禁止する方法

質問
すべての返信
-
- 「コマンドプロンプトから可能な」「レジストリエディタの動作をすべて禁止する」方法
- 「コマンドプロンプトから」「可能なレジストリエディタの動作をすべて禁止する」方法
どっち?
質問は複数の意味に取れないような正確な表現を心がけると良いでしょう。
それからレジストリエディタの動作に制限を掛けたとして、reg コマンドや WMI、PowerShell などがらいくらでもレジストリを編集できますが、それらについては何も対処しなくて良いのでしょうか?
そもそも何のためにレジストリエディタの制限を行いたいのか、具体的に示されると良いでしょう。
hebikuzure
- 編集済み Hebikuzure aka Murachi AkiraMVP 2017年7月16日 1:32
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年7月21日 2:37
-
reg query
指定されたレジストリキーやそのサブツリーの値を表示する 可 reg add レジストリにキーや値名、値を追加したり、既存の値を修正したりする 可 reg delete レジストリから指定されたキーや値を削除する 可 reg copy レジストリのツリーをコピーする。ローカルコンピューターのレジストリ内だけでなく、2つのコンピューター間でのリモートコピーも可能 可
とくにこの4つのコマンドです。これらのコマンドは管理者としてコマンドプロンプトを起動しないとできないようにしたいです。
bcdedit /set {bootmgr} displaybootmenu noというコマンドがあるのですが、管理者で起動せずに
コマンドプロンプトでこのコマンドを打つと
ブート構成のデータ ストアを開けませんでした。
アクセスが拒否されました。このように以上のコマンドも表示されてコマンドが発動されないようにしたいです。
このようにしたい理由はパソコン制限ソフトを使っており、このソフトはほとんどのソフトウェアや特定のwindow名のついたものを強制終了できます。レジストリエディタは完全に使えなくしたとして、コマンドプロンプトは都合上必要です。
しかし、コマンドプロンプトからレジストリディタの編集や閲覧が可能だったのでこのような質問に至りました。
-
チャブーンです。
まず、前提ですが、regedit.exeとreg.exeは実体として別のソフトウェアです。ですから、reg.exeを制限する必要があります。パスですが、以下の2ヶ所にあります。
C:\Windows\System32\reg.exe
C:\Windows\WoWsys64\reg.exeうえを「パソコン制限ソフト」とやらで制限すればいい、のではないでしょうか。
Windows標準機能で行いたい場合、ローカルセキュリティポリシーで、非管理者のみに対して[ソフトウェアの制限ポリシー]で、reg.exeを制限すればいいでしょう。
mmc.exeを起動し、「グループポリシーオブジェクトエディター」を選択して、[ローカルコンピューター]の状態で[参照]ボタンをクリックすると、[ユーザー]タブが出てきますので、[非管理者]を選択することで[ローカルコンピューター\非管理者]として、非管理者権限だけにローカルセキュリティポリシーを適用できるようになります。
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 回答の候補に設定 Hebikuzure aka Murachi AkiraMVP 2017年7月17日 2:08
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2017年7月21日 3:20
- 回答としてマークされていない tttttttttttttttttttaaugh 2017年7月27日 1:12
-
フォーラムオペレーターの栗下 望です。
tatutouahtatatotietotouagh さん、こんにちは。ご質問いただいた件についてですが、
その後いかがでしょうか?チャブーンさんよりいただいている回答が、
参考になるかと思いましたので勝手ながら[回答としてマーク]を設定させていただきました。[回答としてマーク]は後から解除も出来ますので、
ご留意いただければと思います。何か進展がございましたら、
こちらのスレッドにてお知らせいただければ幸いです。どうぞよろしくお願いいたします。
MSDN/TechNet Community Support 栗下 望
-
mmc の「スナップインの追加と削除」で「グループポリシーオブジェクトエディター」が追加できない、ということでしょうか?
hebikuzure
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月10日 0:30
-
ローカルセキュリティポリシーで一つ一つ禁止するのは知ったのですが、新たにレジストリを編集閲覧するアプリを入れられたりすると大変です。どんなソフトウェアを使ってもレジストリの編集閲覧ができないように根本的に制限する方法はありませんか。
ありません。
仮に存在したとしても、それは、設定値をレジストリに保存する・参照するアプリケーションすべてが動かなくなるので、実質的に「そのユーザーアカウントで多くのアプリケーションを使えなくなる」、「そのユーザーアカウントに PC を使わせないようにする」のと近しい行為です。
狙いが何なのかわかりませんが、ユーザーに環境を壊されたくないなら、再起動したら元に戻るようなソリューションでも考えてはどうでしょうか。
HD革命/WinProtector など。- 編集済み AzuleanMVP 2017年7月28日 14:23
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月1日 2:07
-
Azulean さんからも返信が付いていますが、少なくとも HKEY_CURRENT_USER 配下はサインインしているユーザーの権限でアクセス(読み書き)できる必要があります。Windows に付属のレジストリ編集ツール(regedit、reg コマンド)を実行禁止にしても、サードパーティ製の(管理者にとって)未知のツールの実行を禁止することは現実的には困難でしょうし、WSH や WMI を通じたレジストリ操作も可能です。
ユーザーによる環境の変更を禁止するのであれば、Azulean さんが書かれているようなサードパーティ製のソリューションを利用するか、固定プロファイルを利用すれば良いでしょう。
hebikuzure
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月1日 2:07
-
スタートアップを阻止の防止、またはパソコン制限ソフトのパスワードの不正取得ができないように設定しようと思っています。
パソコン制限ソフトはこのリンクです。
通常のスタートアップ
、ファイル名を指定して実行→start:up→スタートアップファイルにアプリのショートカットを作る
タスクスケジューラにスタートアップをさせるというのがありますが、
どれも指定先のファイルの確保が必要で、つまりは指定先のファイルを削除や名前変更してしまえば起動の阻止できてしまうのです。
しかし、スタートアップさせているので、アプリが実行中なのでファイルの削除ができません。
またこのソフトはタスクマネージャーの強制終了を使っても再起動するようにプログラムされています。
しかし、セーフモードを起動すれば、スタートアップ起動が適用されないため、パソコン使用制限ソフトが動かない状態なので、
パソコン制限ソフトを探し当てれば、削除、名前変更ができてしまい、次に通常起動する際のパソコン制限ソフトのスタートアップを
阻止することができるのです。
隠しファイルにしたとしてもエクスプローラーの検索機能を使えば、全く意味をなさなくなります。
そこでレジストリエディタでスタートアップさせる方法を知りました。(参照)
これを実行するとスタートアップさせているアプリの削除、名前変更が管理者権限がないとできず、
レジストリエディタのHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
での設定を変更されない限りはスタートアップ起動ができないということがわかりました。
なのでスタートアップさせているレジストリのファイルの変更、削除が管理者権限がない限りできないようにしたいです。
またパソコン制限ソフトのパスワードはレジストリエディタの
HKEY_CURRENT_USER\Software\pasonemu.net
に登録してあるので、
ここにあるパスワードの変更、またはレジストリの変更削除を防止したいです。
それで質問なんですが、
特定のレジストリのファイルの削除変更また閲覧を管理者権限がない限り、
実行できないようにする方法はありませんか。
値を変更して無効にしたり、スタートアップさせているパソコン制限ソフトのパスワードを閲覧されると
このパソコン制限ソフトの
-
特定のレジストリ キーの改変をさせない、ということであれば、そのキーのアクセス権を編集すれば実現可能でしょう。
ただし
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
は色々なソフトウェアで共通に利用される場所なので、ここのアクセス権を変更することで他のソフトウェアの動作に影響が出ないかは十分な検証が必要でしょう。
hebikuzure
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月10日 0:29
- 回答の候補の設定解除 tttttttttttttttttttaaugh 2017年8月10日 13:02
-
レジストリ キーへの書き込み/変更/削除のアクセス権がないユーザーの権限で実行されている限りは、どのようなツールを使ってもそのキーを変更することはできない理屈です。
もちろんツールを「管理者として実行」や runas で別の(権限のある)ユーザー コンテキストで実行すれば話は別ですが、そういう権限を持った資格情報をユーザーに与えないのであれば、ユーザーは変更できないでしょう。
繰り返しになりますが、特定のソフトウェア固有のキー以外のレジストリ キーの改変やアクセス権の制限は、Windows 自体の動作や他のアプリケーションの動作に問題がないか十分調査/確認してから展開してください。
hebikuzure
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月10日 0:29
- 回答の候補の設定解除 tttttttttttttttttttaaugh 2017年8月10日 13:02
-
念のため。
またパソコン制限ソフトのパスワードはレジストリエディタの
HKEY_CURRENT_USER\Software\pasonemu.net
に登録してあるので、
ここにあるパスワードの変更、またはレジストリの変更削除を防止したいです。
変更権限を削るのは良いと思いますが、間違って読み取り権限を削ったり、拒否したりしないようにしてくださいね。
読み取りアクセスを外すか、拒否した場合、そのパソコン制限ソフト自体が動かなくなります。そのソフトの実装次第では、変更権限を削るだけでもエラーになる可能性はありますのでその点も知っておいてください。
// 個人的には、そこまで求めるなら HKEY_CURRENT_USER に設定を記憶する制限ソフトを使うのはやめた方がいいと思う。
- 編集済み AzuleanMVP 2017年8月4日 23:09
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月10日 0:30
- 回答の候補の設定解除 tttttttttttttttttttaaugh 2017年8月10日 13:02
-
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月10日 0:30
- 回答の候補の設定解除 tttttttttttttttttttaaugh 2017年8月10日 13:02
-
復元ポイントの作成でバックアップを取ってから実行してみました。
拒否の読み取り制御にチェックを入れず
継承の無効化/有効化にしてそれぞれ以下のことを試しました。
administratorsはフルコントロール、
標準ユーザー(管理者権限を持たないユーザー)
のアクセス許可エントリの設定で 読み取り以外すべてを拒否にして、読み取りを許可にしましたが、
結果、スタートアップ起動できませんでした。
通常起動させようとするとこれもできませんでした。
読み取り許可の拒否はしていないのですが、スタートアップと通常の起動ができない現象はなぜ起こるのでしょうか。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
のレジストリは変更していません。
-
ソフトの実装次第のところもあるので、第三者には証明しきれません。
推測は可能ですが、推測に過ぎませんので、割愛します。ソフトの作者におたずねいただくか、レジストリのアクセス許可制御を諦めた方がいいでしょう。
通常はやらないことにこだわり、むやみに操作して手戻りを招いている日々になっているはずです。
諦めて既製のソリューションを使うか、そこまでの強固にする必要性があるのかを考え直してみてください。
そもそも、HKEY_CURRENT_USER にパスワードを記録していると言うことは、1アカウントで運用する前提ですから、そんなに強固なソフトではないと予想されます。
そういう観点と、あなたの言動からすると、そのソフトはあなたが望まれている強固さに見合っていないと考えられます。
(HKEY_LOCAL_MACHINE に記録しておき、一般ユーザーには変更不可能とするようなソリューションか、再起動すれば元に戻るようなソリューションが望まれる状況であるはず)- 編集済み AzuleanMVP 2017年8月10日 14:02
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月18日 0:30
-
できません。
ソフトウェアが HKEY_CURRENT_USER を見る実装である限り、どんな小細工をしても無意味と言えますので、そういう小細工で何とかしようという考え方をやめましょう。
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月18日 0:30
-
回答ありがとうございます。
例のソフトは変更権限を少しでも削ると(フルコントロールにしないと)
起動しないことがわかりました。
同時に、レジストリのアクセス制御でのレジストリ変更の禁止は不可能だと分かりました。
固定ファイルやロックダウンは全く希望には添わないので実装する予定はないです。
(ログオフしたらもとに削除されたレジストリも前の状態に戻りますが、
それはパソコン制限ソフトは毎回レジストリで削除されパソコン制限ソフトをログインするたびに無効化させることが可能になってしまうからです。
)
また、このソフトウェアの機能は極めて特殊で、類似したソフトウェアは存在しないので、ほかのソフトウェアを使う予定もないです。
とりあえず、今考えている
変更権限がかけられないソフトウェアのレジストリにたいして、
非管理者が削除、変更、閲覧を防止する方法は
スクリプト言語によるレジストリの変更削除閲覧を可能とするWMI、 WSHといったスクリプト言語でつくった
今考えているレジストリの削除閲覧するファイルを禁止し、
やいじくーるつーるなどレジストリを変更する特殊なソフトウェアを現時点存在してあれば、削除し、今後それらがインストールできないようにインストーラーの制限と圧縮ファイルの制限を考えようと思っています。
だいぶ、当初の質問内容とは異なってきたので、新たなすれでこれらの質問を続けていこうかと思います。
回答ありがとうございました。
-
どこまで守るかを決めて考えた方が良いですよ。
利用者の悪意を前提とするなら、利用者のスキルレベル次第では HKEY_CURRENT_USER を守らないとどうにもならないようなソフトウェアでは太刀打ちできません。また、このソフトウェアの機能は極めて特殊で、類似したソフトウェアは存在しないので、ほかのソフトウェアを使う予定もないです。
断定されていますが、どのような性質が「特殊」で「必須」なのですか?
レジストリキー名から察するに、このソフトウェア かと思いますが、悪意を完璧に排除することを前提とするなら、この仕様をどこかの業者に発注して作ってもらったらよいのでは…。// 対応 OS に Win10 書いていない& BBS にレスポンスなさそうなので更新が止まっているように見えますね。
-----
標準的な exe の実行制限は、ファイル名で規制するので、ファイル名を偽装すれば何だって実行できます。
前述のソフトウェアで合っている場合、「子供相手」と銘打っているからこそ、効果があるのだと思います。- 編集済み AzuleanMVP 2017年8月13日 15:29
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年8月18日 0:30