DOSからWindowsレジストリにアクセスする方法は?
DOSブータブルディスクから起動しながら、DOSからレジストリにアクセスする必要があります。
すべてのインターネットを検索しましたが、理解しているように、DOSでは使用できないオフラインNTパスワードとレジストリエディターのみが見つかりました。
また、(多くのミラーからの)RegViewも機能していません(多くの手順を試しました)。
レジストリハイブをロードできるreg.exeのような使いやすいツールはありますか?
レジストリ値を変更できるように??または作業指示??
注:私はすでに NTFSドライブに対して読み取り/書き込みが可能な起動可能なドライブ を持っています。
前もって感謝します!
Windowsレジストリは、DOSが廃止されてからずっと後に作成されました。そのため、noのネイティブな方法があり、(当然のことながら)それを行うDOSプログラムはないようです。おそらくFreeDOSまたはReactOSを除けば、誰もがDOS用のWindowsレジストリエディタをわざわざ作成することはないでしょう。
とは言うものの、DOSからWindowsレジストリにアクセスして編集する方法はありますが、それはきれいではありません。レジストリHiveファイルに直接アクセスするには、ファイルエディタを使用する必要があります(edit.com
はそれをカットしません)。たとえば、HKLM\Software
にアクセスするには、C:\Windows\Config\Software
を開き、ユーザーのハイブにアクセスするには、C:\Users\<username>\NTUSER.dat
を開きます。そしてこれはすべて、DOSが特別なドライバーなしではNTFSにアクセスできないため、WindowsシステムドライブがFAT32でさえあることを前提としています。そのほとんどは、読み取り専用アクセスのみを許可します。
私が言ったように、この方法はnotきれいです。なぜなら、Windowsレジストリの生のファイル形式に精通し、ファイルに表示されているが削除済みとしてマークされているエントリに注意する必要があるからです。 信じられないほどそのように行うのは非常に危険なので、変更を慎重に行う必要があります。そのため、この方法はあまりお勧めできません([〜#〜] i [〜#〜]でも気にしないでください。亀裂すべて開いて中を見る)。
はるかに簡単で安全な方法は、Hiveファイルを別のWindowsシステムにコピーしてマウントし(例:reg load hku\zzz x:\ntuser.dat
)、必要な操作を行ってからアンマウントする(例:reg unload hku\zzz
)ことです。それらをコピーして戻します。
DOSは、特別な組み込み用途を除いて、2000年にMicrosoftによって多かれ少なかれ廃止されました。
さらに、WindowsのNTベースのバージョンは9x/MEのようなDOSに基づいておらず、オペレーティングシステムの違いにより、MSDOSユーティリティがNTベースのもので動作することはほとんどありません。
マイクロソフトは、帯域外のレスキューとインストールのユースケースをサポートするためにWindowsPEを導入しました。過去にWindows9x/MEでDOSが使用されていたもの。この前に、XP Microsoftは、DOSが過去によく使用されていたのと同じ回復の役割を果たすことを目的とした回復コンソールを導入しました。
純粋な実際のDOSを使用してWindowsインストールを修復またはレスキューすることは、Windows 95、98、またはMEをまだ使用していない限り、約10年間、関連性がないか、実際には不可能です。
したがって、Microsoftは、純粋なDOSからNTベースのインストールにアクセスまたは回復するためのツールを開発していないと確信しています。サードパーティのユーティリティが存在する可能性があり、存在する場合は非常に古く、サポートされていない可能性があり、内部のWindowsレジストリ内部が公式に文書化されていないため、信頼できない可能性があります。
警告:次の記事には、システムレジストリの編集が含まれます。レジストリエディタを誤って使用すると、オペレーティングシステムの再インストールを必要とする重大な問題が発生する可能性があります。レジストリエディタと次の指示は、自己責任で使用してください。
DOSでのREGEDITの使用
Windowsで使用するのと同じREGEDITは、DOSプログラムとしても実行されます。 REGEDIT.EXEは、「ダート」と空のスペースを残したまま、完全なレジストリ再構築を実行できるコマンドライン引数をサポートしています。持ち運び可能でフロッピーから実行できる4つのバッチファイルを作成することで、コマンドを繰り返し入力する必要がなくなります。簡単にするために、SYSTEM.DAT、USER.DAT、およびREGEDIT.EXEがC:\ WINDOWSディレクトリにあると仮定します。ステップ1:SYSTEM.DATおよびUSER.DATからReadOnly属性とHidden属性を削除するDOSからWindowsレジストリを再構築する最初のステップは、SYSTEM.DATファイルとUSER.DATファイルからReadOnly属性とHidden属性を削除することです。属性のオンとオフを自由に切り替えることができるバッチファイル(REGATT.BAT)は、次のようになります。@ echo off if not "%1" == "-" if not "%1" == "+" goto INSTRUCT attrib%1r%1h%1s c:\ windows\system.dat attrib%1r%1h%1s c:\ windows\user.dat goto ENDIT:INSTRUCTエコー。 echo "%0 +"または "%0-":ENDIT echoのように、-または+パラメーターを指定する必要があります。
これを使用するには、コマンドREGATT-またはREGATT +を入力して、ファイル属性をそれぞれ削除または追加します。
REGATT.BATの仕組みは次のとおりです。
@echo off: Prevents the lines that follow from being displayed on the screen while the commands are being executed. The "@" prevents "echo off" from displaying.
if not "%1"=="-" if not "%1"=="+" goto INSTRUCT: This makes the batch file look for one parameter and limits the parameter choices to either "-" or "+." If neither is found, the script jumps to the INSTRUCT portion of the batch file. Note the use of the double "equals" signs (==).
attrib %1r %1h %1s c:\windows\system.dat: Runs the "attrib" command on SYSTEM.DAT with either "-r -h -s" or "+r +h +s," depending on the parameter.
attrib %1r %1h %1s c:\windows\user.dat: Runs the "attrib" command on USER.DAT the same as it does for SYSTEM.DAT.
goto ENDIT: Jumps over the INSTRUCT statement since all went well.
:INSTRUCT: Label that identifies this portion of the batch file.
echo.–: Prints a blank line on the screen. Note that there is no space between "echo" and "."
echo You must specify a - or + parameter, as in "%0 +" or "%0 -": Instructions for using the batch file. The %0 is a variable that is automatically replaced by DOS with the name of the batch file you typed on the command line. If you typed regatt in lower case, the line will read "You must specify a - or + parameter, as in regatt + or regatt -." If you change the name of the batch file to "wom.bat" and type WOM in upper case, it will read "You must specify a - or + parameter, as in WOM + or WOM -" without further editing. Neat, huh?
:ENDIT: Label that identifies this portion of the batch file.
echo.: Prints a blank line on the screen before returning to the Prompt.
ステップ2:SYSTEM.DATとUSER.DATのバックアップを作成します。再構築プロセスは、現在のレジストリを効果的に破棄します。再構築が失敗した場合(DATファイルがひどく破損している場合に発生することを確認しました)、レジストリはありません。復元するレジストリが破損している方が、レジストリがまったくないよりも優れています。バックアップを作成するには、「属性のない」SYSTEM.DATファイルとUSER.DATファイルをREGBACK.BATでコピーします。@ echo off if "%1" == "" goto INSTRUCT copy c:\ windows\system.dat c:\windows\system。%1 copy c:\ windows\user.dat c:\ windows\user。%1 goto ENDIT:INSTRUCTエコー。 echo "%0 sav":ENDIT echoのように、1〜3文字のファイル拡張子を入力する必要があります。
REGBACK.BATのほとんどの行は、REGATT.BATの行と似ています。 3つのユニークなラインは次のとおりです。
if "%1"=="" goto INSTRUCT: This jumps to the INSTRUCT section if no parameter is given after the "regback" command. Without a parameter, the value of %1 is null, so the statement translates to if ""=="" goto INSTRUCT and, since double-quotes indeed equal double-quotes, the script jumps to give the user instructions.
copy c:\windows\system.dat c:\windows\system.%1: Copies SYSTEM.DAT to SYSTEM.parameter. Be sure to limit your parameter to three allowable DOS characters.
copy c:\windows\user.dat c:\windows\user.%1: Copies USER.DAT to USER.parameter as above.
ステップ3:レジストリを再構築するSYSTEM.DATとUSER.DATのバックアップコピーを作成していない限り、これらのコマンドを実行しようとしないでください。再構築の段階で、レジストリの既存のコピーを破棄することを忘れないでください。再構築が失敗した場合は、失敗します。自分のバックアップがあることを確認してください。 REGREBLD.BATは次のようになります:@echo offecho。 echoレジストリコンテンツのエクスポート。お待ちください... regedit /l:c:\windows\system.dat/r:c:\ windows\user.dat/e c:\ windows\newreg.reg echoWindowsレジストリを再構築します。邪魔しないで! regedit /l:c:\windows\system.dat/r:c:\ windows\user.dat/c c:\ windows\newreg.regエコー。 del c:\ windows\newreg.regエコー。
REGREBLD.BATはパラメーターを取りません。重要な行の機能は次のとおりです。
echo Exporting registry contents. Please wait...: The REGEDIT "export" command displays no information while it's executing. This is a courtesy line to let you know that something is happening.
regedit /l:c:\windows\system.dat /r:c:\windows\user.dat /e c:\windows\newreg.reg: Exports the contents of the current registry to a file we'll call "newreg.reg." The "/l:" and "/r:" switches point to the exact paths of SYSTEM.DAT and USER.DAT, respectively. The "/e" switch is for "export" and "c:\windows\newreg.reg" is the name of the target file that is created during the process.
echo Rebuilding the Windows registry. Do not interrupt!: Another courtesy statement. Unlike the "export" command, the REGEDIT "create" command displays a progress counter. However, it doesn't state what it's creating, only that it’s importing.
regedit /l:c:\windows\system.dat /r:c:\windows\user.dat /c c:\windows\newreg.reg: Creates a new registry from the contents of "c:\windows\newreg.reg." The key here is the "/c" switch, for "create." As soon as it is encountered, the current SYSTEM.DAT and USER.DAT are destroyed as new files are created from the data in newreg.reg. If this process is interrupted, the new registry will be incomplete and, therefore, useless.
echo.: The progress counter that is displayed by REGEDIT does not have a carriage return. This statement forces one at the completion of the "create" process.
del c:\windows\newreg.reg: Deletes the now unnecessary newreg.reg data file. You can remove this line if you want to look at the contents of newreg.reg before you delete it manually.
現在のレジストリのサイズと状態によっては、完全なエクスポート/作成ルーチンに非常に時間がかかる場合があります。デスクトップPCでレジストリを再構築するには、5分から1時間以上かかることを確認しました。ラップトップでの使用はお勧めしません。再構築が成功した場合(そしてほとんどの場合)、次のステップは必要ありません。
ステップ4:失敗した再構築の復元ステップ4では、失敗した再構築によってSYSTEM.DATファイルとUSER.DATファイルが機能しなくなった場合に、レジストリを以前の状態に戻す必要があります。このバッチファイルをREGRET.BATと呼びます。バックアップの作成時に使用した拡張子を覚えていますか?ここで必要になります:@echo off if "%1" == "" goto INSTRUCT if not present c:\ windows\system。%1 goto NOFILE if not present c:\ windows\user。%1 goto NOFILE attrib -r -h -sc:\ windows\system.dat attrib -r -h -sc:\ windows\user.dat del c:\ windows\system.dat del c:\ windows\user.dat copy c:\ windows\system。%1 c:\ windows\system.dat copy c:\ windows\user。%1 c:\ windows\user.dat goto ENDIT:NOFILEecho。 echo 1つ以上の「%1」バックアップファイルが見つかりません! echoファイル拡張子を確認して、再試行してください。 goto ENDIT:INSTRUCTエコー。 echo "%0 ext":ENDIT echoのように、有効なバックアップファイル拡張子を付ける必要があります。
REGRET.BATは、プロンプトで「regret ext」と入力して実行されます。ここで、「ext」は、バックアップの作成時に使用した拡張子です。 extファイルが見つからない場合は、REGRETが通知します。すべてのREGRETコマンドは、前のバッチファイルで使用したものと同様です。失敗したSYSTEM.DATファイルとUSER.DATファイルを削除した後、バックアップの名前を変更するのではなく、バックアップをDATにコピーすることに注意してください。重要なバックアップファイルが再び必要になることは絶対にないと確信するまで、重要なバックアップファイルを削除することに抵抗はありません。快適になったら手動で削除してください。
学んだことを活用するバッチファイルができたので、病気のシステムで試してみてください。 PCを真のDOS「セーフモードコマンドプロンプトのみ」で起動し、フロッピーからファイルを実行します。フロッピーを起動可能にする場合は、C:\ WINDOWS; C:\ WINDOWS\COMMANDを指すパスステートメントを含むAUTOEXEC.BATがあることを確認してください。レジストリの再構築が成功すると、多くのWindows保護エラーを含む、「不可思議な」Windowsの問題の多くが解決されます。
ソース: TechRepublic