Windows system >> Windowsの知識 >  >> Windows XPシステムチュートリアル >> XPシステムの基本 >> XPの詳細な説明Windowsファイル保護

XPの詳細な説明Windowsファイル保護

  
アプリケーションをインストールしたにもかかわらずWindowsがクラッシュした場合、アプリケーションが重要なWindowsシステムファイルを書き換えてシステムをクラッシュさせた可能性があります。ファイルが修正された後、結果はしばしば予測不可能です。システムは、いくつかのエラー、または完全なクラッシュで、正しく機能している可能性があります。幸い、Windows 2000、XP、およびServer 2003では、重要なシステムファイルが上書きされないようにするWindowsファイル保護(WFP)と呼ばれるメカニズムが使用されています。この記事では、WFPとは何か、またその仕組みについて説明します。また、WFPの動作を変更または無視する方法についても説明します。 (注:Windows 2000、XP、およびServer 2003でのWFPの動作に違いはありませんが、レジストリ関連のエントリやSFC構文を含むこの記事の情報はXP用です。)Windowsファイル保護のしくみ
WFPは、Windowsフォルダの内容を保護するように設計されています。 WFPは、フォルダ全体に対する変更をブロックするのではなく、SYS、EXE、DLL、OCX、FON、TTFなどの特定のファイルタイプを保護します。レジストリキーによって、WFPによって保護されているファイルの種類が決まります。アプリケーションが保護されたファイルを置き換えようとすると、WFPは置き換えファイルのデジタル署名を調べて、そのファイルがマイクロソフトからのもので正しいバージョンかどうかを判断します。これらの条件が両方とも満たされる場合、交換は許可されます。通常、システムファイルの置き換えが許可されているファイルの種類には、Windowsのサービスパック、パッチ、およびオペレーティングシステムのアップグレードがあります。システムファイルは、Windows UpdaterまたはWindows Device Manager /Class Installerに置き換えることもできます。これら2つの条件が同時に満たされない場合、保護されたファイルは新しいファイルに置き換えられますが、すぐに正しいファイルに置き換えられます。この場合、WindowsはWindowsインストールCDまたはコンピュータのDLLCacheフォルダから正しいバージョンのファイルをコピーします。 Windowsファイル保護は、ファイルの変更を拒否してファイルを保護するだけでなく、削除を拒否することもできます。 WFPのアプローチを見て、\\ WINDOWS \\ SYSTEM32フォルダを開き、CALC.EXEファイルの名前をCALC.OLDに変更します。このとき、このファイルの拡張子を変更するとこのファイルが使用できなくなる可能性があるかどうかを確認するメッセージが表示されます。この警告を確認するために、はい(Y)ボタンをクリックします。数分待ってからF5キーを押してファイルシステムの表示を更新します置換が完了するまでしばらく時間がかかる場合があります。ファイルが最終的に置き換えられると、Windowsはイベントログに対応するレコードを作成します。 WFPに関して注意することの1つはそれがWindowsインストーラと非常に密接に統合されているということです。 Windowsインストーラーが保護されたファイルをインストールする必要があるときはいつでも、それをインストールしようとする代わりにWFPに渡します。その後、WFPはインストールが許可されているかどうかを判断します。システムファイルの確認
ファイルの自動置換は時間を節約しますが、手動操作が必要な状況があります。たとえば、保護されたファイルが置き換えられたかどうかをWFPが判断するのを待ちたくない場合があります。幸い、システムファイルチェック(SFC)と呼ばれるツールを使用してWFPを手動で制御できます。 SFCは、コマンドプロンプトウィンドウで実行する必要があるコマンドラインツールです。その構文は次のとおりです。SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE = x] /SCANNOWオプションは、保護されているすべてのシステムファイルを直ちにスキャンするように指示します。スキャン中に誤ったファイルバージョンが見つかった場合、この誤ったバージョンは正しいバージョンのMicrosoftに置き換えられます。もちろん、これはあなたがWindowsインストールCD、最新のサービスパックまたはアップグレードパッチを持っている必要があるかもしれないことを意味します。 /SCANONCEパラメータは、次回システムが起動したときに、保護されているシステムファイルをスキャンするようにWFPに指示します。スキャン中に間違ったファイルがあれば、正しいバージョンに置き換えられます。このパラメータの名前が意味するように、このスキャンは一度だけ行われます。システムの起動が正常に戻ると、SFCは動作しなくなります。 /SCANBOOTパラメータは/SCANONCEオプションと似ています。違いは、SCANONCEは保護されたファイルを次回のWindowsの起動時にのみスキャンするのに対し、SCANBOOTパラメータはWindowsの起動時にシステムファイルをスキャンすることです。これら2つのパラメータは、必要に応じて間違ったシステムファイルを置き換えます。そのため、正しいファイルバージョンのコピーを提供する必要があります。 /REVERTオプションは、SFCを無効にするために使用されますたとえば、SCANBOOTオプションを使用して、システムが起動するたびに保護されたファイルをスキャンするとします。あなたが想像できるように、これはコンピュータが起動する合計時間を増やします。最後に、あなたは長い起動時間にうんざりしていてSFCをオフにしたいと思うかもしれません。起動時にSFCをシャットダウンするには、単にSFC /REVERTを使用します。 /PURGECACHEオプションには注意が必要です。その前に、Windowsはキャッシュフォルダを使用して、さまざまなシステムファイルの正しいバージョンのバックアップを保持していると説明しました。 SFC /PURGECACHEコマンドを実行すると、このファイルキャッシュは空になり、それらのバックアップファイルは削除されます。このコマンドにより、Windowsは保護されたさまざまなファイルのスキャンを開始し、スキャン中にファイルキャッシュを再構築します。もちろん、これはWindowsにWindowsインストールCDまたはシステムファイルアップグレードのコピーを提供しなければならないことを意味するかもしれません。最後のSFCコマンドオプションは/CACHESIZE = xです。この記事を執筆している時点で、マイクロソフトサポート技術情報の3つの記事で指定されているファイルキャッシュのデフォルトサイズが異なることがわかりました。ある記事では、推奨されるファイルキャッシュサイズは50 MBですが、他の推奨されるサイズは300 MBです。さらに、3番目の記事では、このサイズは無限大であるべきだと指摘しています。実際には、デフォルト値のサイズは重要ではありません。必要に応じてCACHESIZEオプションを使用してこのファイルキャッシュのサイズを変更できるためです。 CACHESIZEオプションを使用するときは、コマンドSFC /CACHESIZE = xを入力する必要があります。これは、ファイルキャッシュに割り当てるメガバイト数です。新しいファイルキャッシュサイズを指定したら、システムを再起動してSFC /PURGECACHEコマンドを実行する必要があります。レジストリによるWFPとSFCの制御
その前に、レジストリがWFPの一般的な動作を制御していることを説明しました。 WFPの動作を制御するためにいくつかの異なるレジストリキーを変更できます。 SFCを実行するたびにこれらのキーの一部を直接操作できますが、他のキーは低レベルの機能を備えています。たとえば、ファイルキャッシュまたはインストールファイルの場所を指定します。レジストリを変更するのは危険です。間違えると、Windowsがクラッシュしたりアプリケーションが損傷したりする可能性があるため、このセクションで説明する手法を試す前に、レジストリのフルバックアップを作成することを強くお勧めします。 SFCレジストリキーにアクセスするには、[ファイル名を指定して実行]コマンドにREFEDITコマンドを入力します。これにより、レジストリエディタが開き、レジストリツリーを参照して次のキーを見つけます。HKEY_LOCAL_MacHINE \\ SOFTWARE \\ Microsoft \\ Windows NT \\ CurrentVersion \\ WinLogon通常、レジストリのWinLogonキーは通常、さまざまな起動オプションの制御に使用されます。 SFCがブート時に実行されるかどうかは多くのSFCオプションが制御しますが、MicrosoftはこのセクションにSFC関連のレジストリキーを配置しました。 SFCDisabled
このレジストリキーは、SFCがアクティブか無効かを制御します。実際には、DWORDの値を変更するだけで、4つの異なる選択肢を得ることができます。デフォルトのDWord値は0です。この設定はSFCを有効にします。通常はこの値を変更する必要はありません。ただし、SFCをアクティブにするためにこの値を0から4の間で変更することはできますが、ポップアップさせることはできません。カーネルデバッガをハングさせた場合は、SFCをオフにすることをお勧めします。カーネルデバッガを使用している場合は、レジストリキーのDWord値を1に変更できます。これにより、SFCが閉じられ、起動するたびにSFCを再度アクティブにするように求められます。 DWord値を2に設定してSFCをオフにすることもできます。このオプションは、次回の起動時にSFCをオフにするだけです。 SFCは起動時に自動的に有効化されるため、SFCを再度有効化することはできません。 SFCScan
これより前に、SFCのSCANONCE、SCANBOOT、およびREVERTオプションについて説明しました。これらのオプションを使用している限り、SFCは実際にはSFCScanレジストリキーを変更しています。 DWordの割り当てを変更することでこのキーを変更できます。デフォルト値は0です。この値は、起動時に保護されたファイルをスキャンする必要がないことを意味します。この設定はSFC /REVERTコマンドを実行するのと同じです。 DWord値を1に変更すると、保護されたファイルが起動するたびにスキャンされます。 SFCScanの値を1に設定することは、SFC /SCANBOOTコマンドを実行することと同じです。最後に、DWordの値を2に設定すると、次回の起動時に保護されたファイルをスキャンするようにSFCに指示されますが、将来のすべての起動時には実行されません。これはSFC /SCANONCEコマンドを実行するのと同じです。 SFCQuota
SFCQuotaレジストリキーは、SFCファイルキャッシュのサイズを制御するために使用されます。ご想像のとおり、SFC /CACHESIZE = xコマンドについて説明したときに、ファイルキャッシュのデフォルトサイズについて言及しましたが、矛盾が多数あります。ただし、私のシステムでは、レジストリキーSFCQuotaのDWord値はデフォルトで0xffffffffになります。マイクロソフトサポート技術情報によると、この値は300 MBのファイルキャッシュサイズに対応しています。同じサポート技術情報の記事に、この値をFFFFFFFFに変更すると、保護されているすべてのシステムファイルをバッファリングできることが記載されています。 SFCDllCacheDir
その前に、Windowsはストレージシステムファイルをバックアップする場所としてDLLCACHEフォルダを使用すると説明しました。通常このフォルダは、\\ Windows \\ SYSTEM32ディレクトリにあります。ただし、SFCDllCacheDirレジストリキーを変更することによって、ファイルキャッシュの場所を変更できます。ファイルキャッシュフォルダは通常DLLCACHEディレクトリにありますが、このレジストリキーを変更することで、このフォルダの場所を変更できます。注意すべき唯一のことはあなたがあなたのローカルハードドライブに既に存在するアドレスを指定しなければならないということです。 Windows 2000では、DLLCACHEへのパスとしてネットワーク共有を指定できますが、このオプションはWindows XPでは使用できません。 SFCShowProgress
もう1つのSFC関連のレジストリキーはSFCShowProgressキーです。このレジストリキーを使用すると、そのDWord値を0または1に設定できます。デフォルト値は0で、これはSFCプロセス条件の表示を無効にします。値を1に設定すると、SFCは進行状況を表示できます。ソースファイルのアドレス
その前に、WFPとSFCがどのように機能するかを説明しましたが、特定の条件下では、WindowsインストールCDまたは有効なソースファイルのコピーを提供する必要があるかもしれません。ただし、レジストリを変更することで、Windowsにこれらのファイルを要求することなく、Windowsにソースファイルディレクトリを指定することは完全に可能です。このレジストリキーはレジストリの別の部分にあります。次のキーを見つける必要があります。HKEY_LOCAL_MacHINE \\ Software \\ Microsoft \\ Windows \\ CurrentVersion \\ Setupこの場所が見つかったら、ドライブ記号またはパスまたはUNCを使って、Windowsシステムファイルの場所を指定できます。このコマンドを使用する前提は、ファイルをI386というディレクトリに配置する必要があるということです。たとえば、WindowsシステムファイルがC:\\ I386というディレクトリにある場合は、レジストリにパスC:\\を指定するだけで済みます。WindowsはI386ディレクトリが存在すると見なすためです。同様に、UNC共有を使用する予定の場合は、I386フォルダが共有ディレクトリに存在する必要があります。たとえば、共有しようとしているディレクトリがFILESという名前の場合は、I386フォルダを置く必要があります。
Copyright © Windowsの知識 All Rights Reserved