CMDスクリプトを介してレジストリキーまたは値を削除しますか?


18

.cmdスクリプトでWindowsレジストリ内の特定のレジストリキーを削除するために、既に運用中のスクリプトファイルを編集するにはどうすればよいですか?

第一に、これは可能ですか、第二に(それが不可能な場合)、.regファイルを作成し、そのファイルからそのファイルを実行でき.cmdますか?

.cmdスクリプト内からは、機能していません。

del "[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CurrentVersion\SampleKey]"

私にとってもこの方法はうまくいきませんでした:

cmd "\\networkdrive\regfiles\deleteSampleKey.reg"

次に、.regファイル内から:

Windows Registry Editor Version 5.00
[
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
]

1
.regファイルを使用すると、ネットワークドライブからでも問題なく機能します。そうでない場合は、UACまたはその他のセキュリティ対策が必要であると考えています。
ウィリアムヒルサム

回答:


26

.regファイルを作成してインポートするのではなく、REGコマンドを使用することをお勧めします。

reg delete "HKCU\Some\Registry\Path" /f

または

reg delete "HKLM\Some\Registry\Path" /f

これらのコマンドは、バッチ(.cmd)ファイルに直接入力できます。


15

ここで説明すると、Microsoftが、ここで「レジストリエントリの削除」の下で、あなたは削除することができ、キーをマイナスを置くことによって「 - 」そのようなキーの前に:

[-HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]

そして、エントリを削除するには、そのような=文字の後にマイナス「-」を配置します。

[HKEY_LOCAL_MACHINE\SOFTWARE\YourSoft\MyKey]
"MyEntry"=-

注:これらは単なるキー例です。実際には機能しません。


確かに、それは動作します。
ピーターモーテンセン


@Peter Mortensenこれはさらに公式のリファレンスです。共有していただきありがとうございます。
ブルーノビエリ

皮肉なことに、Microsoftのサポートリンクは現在「 '/ app / content'アプリケーションのサーバーエラー」を示しています。
sdjuan

@sdjuan Microsoftサポートリンクが再び機能します。
ブルーノビエリ

4

REGコマンドを使用して.cmdファイルでこれを行うことができるため、別のスクリプトの使用は避けます。

次のようなことができます:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram"

特定のエントリのみを削除する場合は/v "EntryName"、キーへのパスの後に引数を追加する必要があります。例:

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /v "EntryName"

これらの両方により、値を削除する前に警告が発行されます。これを回避するに/fは、最後に引数を使用する必要があります。

REG DELETE "HKEY_CURRENT_USER\SOFTWARE\SomeProgram" /f

ありがとうございました。サブキーを参照するネット上の唯一の場所を見つけることができました。
square_eyes

3

私は次の方法を使用します。これは、Windows XP用のMRUリッパーの一部であり、役立つ場合があります。これは、CMDまたはショートカットから実行されるバッチファイルのテキストです。単純なエコーリダイレクトを使用してレジストリファイルを作成し、インポートします。

REM *** START REGISTRY SHREDDER ***
ECHO CREATING MRU REGISTRY
ECHO .
 ECHO > "%TMP%\MRUKILL.reg" Windows Registry Editor Version 5.00
ECHO >> "%TMP%\MRUKILL.reg" [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Doc Find Spec MRU]
ECHO >> "%TMP%\MRUKILL.reg" [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FindComputerMRU]

REM ***  IMPORT THAT REG TO WIPE OUT THEM KEYS AND VALUES ****
regedit "%TMP%\MRUKILL.reg"

私はコーダーではなく、自分でバッチ処理を行うだけなので、自分が書いたものを読むことさえできないことがよくありますが、それを他のことを行うためのテンプレートとして使用します。

echos(リダイレクトされた>単一のファイルに)>最初のリダイレクションのため、および>>同じファイルに追加します。-記号は、レジストリエントリを削除するために使用されます。最後の行を省略し、インポートする前に作成したファイルを表示するとよいでしょう。インポートは静かに行うことができますが、私はそれを自分で行いません。

免責事項:レジストリエントリを削除すると、システムに重大な損害を与える可能性があるため、システムに障害が発生した場合にシステムを返すことができるディスクイメージバックアップが必要です。

適切なアクセス許可、昇格、およびレジストリの一部のエントリは、重要性があるため、アクセス許可を設定せずにユーザーがそれらを破棄するだけではありません。

楽しみのために追加された「ユーザーに尋ねる」部分があります。

ECHO
 REM *** ASK the USER FIRST ***  
ECHO  DO YOU WANT TO DELETE REGISTRY MRUS?
SET /P Choice2=type "Y" to Mangle your registry, - -
ECHO . 
IF /I "%Choice2%"=="Y" GOTO SHREDD
ECHO OK WELL THEN I WON'T
ECHO By By 
   REM *** USER DECIDED AGAINST IT ***
ECHO .
PAUSE
GOTO FINISH

1
Vistaでは、このメソッドはUACを呼び出します。ユーザーはこのアクションを承認または拒否する必要があります。ただし、管理者としてスクリプトを実行すると、それはバイパスされます
ピオトルクラ

1
%USERPROFILE%\ Local Settings \ Tempではなく、%TMP%を使用する必要があります。前者は英語システムでのみ動作します
-kinokijuf

@kinokijuf Feexed、そういう風にずっと良く見えます。私は一時ディスクをRAMディスクまたはデータディスクに送信することがあるため、システムディスクに保存するように設定されていると考えられます。
サイコギーク

1

私はWindows 7を使用していますが、これはCMDを通じて得たものです:

Fri 08/08/2014  8:13:51.72 | C:\Users\MrCMD
>reg.exe delete /?

REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

  KeyName    [\\Machine\]FullKey
    Machine  Name of remote machine - omitting defaults to the current machine.
             Only HKLM and HKU are available on remote machines.
    FullKey  ROOTKEY\SubKey
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   The full name of a registry key under the selected ROOTKEY.

  ValueName  The value name, under the selected Key, to delete.
             When omitted, all subkeys and values under the Key are deleted.

  /ve        delete the value of empty value name (Default).

  /va        delete all values under this key.

  /f         Forces the deletion without prompt.

Examples:

  REG DELETE HKLM\Software\MyCo\MyApp\Timeout
    Deletes the registry key Timeout and its all subkeys and values

  REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
    Deletes the registry value MTU under MyCo on ZODIAC

または、このアルゴリズムによっていくつかのキーを削除したり、いくつかの値を変更したりできると思います。

  1. 削除/変更するキー/値のレジストリの場所をファイル(File01.reg)にエクスポートします。
  2. 適切なキー/値を編集/変更し、新しいファイル(File02.reg)に保存します。
  3. その変更されたファイル(File02.reg)をWindowsレジストリにインポートします。

EXPORTレジストリへの参照。

Fri 08/08/2014  8:24:53.19 | C:\Users\mardir01
>reg.exe export /?

REG EXPORT KeyName FileName [/y]

  Keyname    ROOTKEY[\SubKey] (local machine only).
    ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
    SubKey   The full name of a registry key under the selected ROOTKEY.

  FileName   The name of the disk file to export.

  /y       Force overwriting the existing file without prompt.

Examples:

  REG EXPORT HKLM\Software\MyCo\MyApp File01.reg
    Exports all subkeys and values of the key MyApp to the file File01.reg

IMPORTレジストリへの参照。

>reg.exe import /?

REG IMPORT FileName

  FileName  The name of the disk file to import (local machine only).

Examples:

  REG IMPORT File02.reg
    Imports registry entries from the file File02.reg

改善のためのより明るいアイデアは大歓迎です。:) :) :)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.