システムwiki

Win8.1 の hosts ファイルは、理由もなく無効です.

ATongMu 解決済 最終更新日:2020-09-28 08:55

私のHostsファイルは以前は通常どおり使用できますが、何らかの理由で突然無効になりました...

写真のように、デモテストを行います.

hostsのファイルパスが正しく、他の干渉項目がないことを確認するためのマッピングが1行しかないことがわかります...

ipconfig/flushdnsを使用してDNSキャッシュをクリーンアップし、実際にDNSクライアントのサービスも停止しました...その後、pingを続行しましたが、それでも戻りました実際のDNS解決アドレスですか...

図に示すように、systemの権限も割り当てられていることがわかります...自分のアカウントと以下のAdminグループのアカウントの権限も完全に制御されています...

それが状況です.最近突然失敗した理由がわかりません...乗っ取られてしまう可能性はありますか?

インターネットを検索しましたが、解決策は役に立ちませんでした.理由がわかりません.


-

分割線です.解決策は14階の自分の返信にあります.返信を解決策としてマークできないため、投稿しました.


-

<引用>

実際、私は最近、Windowsがhostsファイルを正常に読み取れたかどうかを検出する方法を模索しています...現在の状況はに非常に似ているためWindowsはhostsファイルの存在を無視します(ただし、パスを間違えていません)...したがって、Windowsが正常に読み取られたかどうかを検出する方法がある場合hostsファイルを使用してください...

Windowsがhostsファイルをキャッシュするかどうか疑問に思っています.この場合、メモリにhostsファイルのコピーがあるはずです.このメモリ空間を読み取り、コンテンツが実際のhostsファイルのコンテンツに対応しているかどうかを確認して、正常に読み取られたかどうかを判断する方法があります...

Windowsがhostsファイルをキャッシュせず、対応するマッピングがあるかどうかを確認するためにDNSの説明が要求されるたびに直接hostsファイルを開く場合「はい」の場合、Windowsがhostsファイルに接触したかどうか、接触が成功したかどうかなどを検出する方法もあります.たとえば、いくつかのメッセージレコードが生成されますか?

対応する検出方法を見つけるのは難しいので、何かアイデアはありますか?

最近ご協力いただきありがとうございました.役立つヒントをたくさん提供してくださいました.

これで問題は自分で解決しました.発表は次のとおりです:

私が推測したところによると、私はメッセージロガーを使用してhostsファイルに関連するシステムメッセージを追跡しています...比較のために、Windows 8.1と比較のために、仮想マシンで実行されているWindows XPで操作します...

まず第一に、実際には、ネットワーク通信機能を持つすべてのプログラムがHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\を検出することがわかりました

このキーの下にUseHostsFile値はありますか?データとは...しかし、XPまたは8.1にはそのような値がないことがわかりましたが、以前の実験によると、XPは正常に読み取れることがわかりますhostsファイル.これは無関係なアイテムであると結論付けることができます...hostsファイルを読み込まないように手動で強制できます.このキーの値を変更するだけです)

そして、奇妙な現象が見つかりました.hostsファイルを手動で変更するたびに、svchost.exeという名前のプロセスが8.1の下に表示され、アクセスしようとしています.hostsファイルですが、結果はAcces Deniedです...XPでは、同じ名前のプロセスがhostsファイルにアクセスしようとしましたが、結果はでした成功...

メッセージレコーダーによって提供されるプロセスのPIDによると、プロセスが実行するサービスの共通サービスはDNSクライアント...なので、前述のDNSである必要があると結論付けることができます.クライアントサービスに問題があります...ファイルへのアクセスが拒否されているため、それはアカウントの問題である必要があるため、私はいつもDNSクライアントのプロパティページを開き、ログインタブに移動して見つけます使用されるアカウントはデフォルトのローカルシステムアカウントではなく、「Network Service」という名前の組み込みのセキュリティプリンシパル...

この時点では、すべてが明らかです.最終的な分析では、これは権限の問題です...DNSクライアントサービスが使用するアカウントは、システムではなく、ネットワークサービス……私はsystemアカウントに完全なアクセス制御を与えましたが、記事の冒頭のスクリーンショットによると、Network Serviceのセキュリティプリンシパルがないことがわかります...これで、systemアカウントとNetwork Serviceセキュリティプリンシパルが関連付けられていないと結論付けることができるため、起動後にDNSクライアントサービスを正常に読み取ることができませんhostsファイル、無効なhostsファイル...

解決策は、etcフォルダーのアクセス権限を編集し、Network Serviceのセキュリティプリンシパルを追加して、少なくとも読み取り権限を付与してから、DNSクライアントサービスを再起動することです.しかし...現在、私のhostsはすべて正常です...


-

余談:メッセージレコーダーを実験したところ、言及する価値のあることが1つ見つかりました:

DNSクライアントサービスが閉じていない場合、hostsファイルが更新されるたびに、svchost.exeプロセスのみが読み取られますhostsファイル...しかし、DNS Clientサービスを閉じると、ネットワーク通信機能を持つすべてのプロセスがこのhostsファイルを個別に読み取ります...

さらに、DNSクライアントサービスが閉じていない場合、svchost.exeプロセスだけがhostsファイルを読み取ることができますが、hostsは1回だけ読み取り、svchosts.exeはhostsファイルが次に変更されるまでを何度も読み取れませんでした.hostsファイルは、期間中に他のプログラムによって作成されたネットワークアクセス要求の数に関係なく...しかし、サービスが閉じられると、ネットワーク通信機能を持つすべてのプロセスは、ネットワークにアクセスするたびに独立してhsotsを読み取ります.file、hostsファイルが更新されているかどうかに関係なく...

それで、hostsがどのように機能するかを推測しました:

まず、ネットワーク通信機能を備えたすべてのプロセスにネットワーク通信モジュールDLLを含める必要があることを知っています...実際、このDLLの作成当初は、DNSクライアントサービスの存在は考慮されていませんでした...そのため実際、DNS Clientサービスを閉じた後のパフォーマンスは元の処理プロセスです.各プロセスは独自に独自のネットワーク接続を管理し、独自のネットワークアドレス解決を処理します(Windowsネットワーク通信モジュールはまた、最初にこのように定式化されました)...そして、独自のネットワークアドレス解決に対処するための1つのステップは、最初にhostsファイルを解析することです.これにより、ネットワーク通信機能を持つ各プロセスが独立してアクセスします.hostsファイルを作成して解析します...現時点ではキャッシュメカニズムはありません.読み取りと解析の直後に解放され、次のネットワークアドレス解決要求が発生したときにhostsファイル、ただしhostsは期間中に更新されません...

DNSクライアントサービスは後で登場しましたが、目的はDNS解決の混乱を解決することです...何のために登場したとしても、とにかくネットワークアドレス解決機能を使用していました...…この時点から、ネットワークアクセス機能を備えた各プロセスに含まれるネットワーク通信モジュールがネットワークアドレス解決を処理するとき、最初にDNSクライアントサービスがシステムで開始されているかどうかを確認します.開始されている場合は、次に、リクエストを完了させておきます...したがって、hostsの更新を維持するには、すべてのプロセスに移動することなく、DNS Clientサービスでのみ行う必要がありますhostsファイルを読み取る...したがって、上記のプロセスがあります.hsotsファイルが更新されるたびに、svchosts.exeプロセスのみが存在しますhostsファイルを読んで、他のプロセスがネットワークにアクセスすると、hostsファイルの読み取りレコードが生成されなくなります...そして、svchost.exeプロセスは、ネットワークアドレス解決要求が着信するたびにhostsファイルを更新するわけではありません.逆に、hostsの次の更新を待ってから、もう一度読み取ります.読み込んだキャッシュを常に使用する...

つまり、DNSクライアントサービスは本当に有益であることがわかります.これにより、ネットワークアドレス解決へのアクセスが統合され、ネットワーク要求が整然と行われます...そして、統合アクセスはキャッシングメカニズムを追加して道を開く...これが「独立した自律」であり、キャッシングメカニズムが採用されている場合、各プロセスがhostsファイルを個別に監視する必要があるためです.これは明らかに賢明なアプローチではありません...キャッシュメカニズムの後、hostsファイルへのアクセスは大幅に削減され、ネットワークにアクセスするたびにhostsファイルを読み取る代わりに、キャッシュされたデータが使用されます.システムの処理速度を改善...

返信リスト(回答:22)

1 #
WangXia

hostsのファイルエンコーディングが間違っている可能性があります.試してください:

Windowsロゴキー+ Xキーを押し、[コマンドプロンプト(管理者)]をクリックして、次のコマンドを順番に入力し、Enterキー(Enter)を押して実行します.

chcp 936

type "%Windir%\System32\drivers\etc\hosts"

hostsファイルの内容が、文字化けした文字の代わりに正常に表示されるかどうかを確認します

  • 文字化けしている場合は、コマンドプロンプトで実行を続けます.

del "%Windir%\System32\drivers\etc\hosts"

応答1# ->にスキップ
2 #
ATongMu

複数のコーディングメソッドを切り替えようとしましたが、hostsファイルも削除しようとしましたが、それでも無効です...

もう一度ありがとうございました、他に考えられる理由があるかどうかわかりませんか?

3 #
JohnsWu

あなたの熱意をありがとう...

これを行いますか?hostファイルを変更するにはどうすればいいですか?

ローカルループバックアドレスを他のIPアドレスと置き換えることもできます.

応答3# ->にスキップ
4 #
ATongMu

新しいテキストドキュメントを作成する前にhostsを削除してから、メモ帳を使用してデータを追加しようとしました...その後、NPPを使用してASCIIUTFなどで試してみましたが、まだ機能しません...

実際には、以前と同じようにhostsファイルを使用してgoogleサービスへのアクセスを安定させていました.以前はping www.google.com.hkは、hostsファイルで定義されたアドレスを返します.最近、突然googleへのアクセスが異常であることがわかり、pingを実行したところ、アドレスがなくなっていることがわかりましたhostsの定義と一致していますが、nslookupコマンドのデフォルトのクエリによって返されるアドレス...そしてこのプロセスでは、私は決して正しくありませんでしたhostsファイルはなんらかの操作を受けており(上手に使えば、いじる必要はありません)、どうしてもうまくいきません...後で、hostsに進む前に問題が見つかりましたさまざまな削除、再作成、再エンコード操作...

また、昨日sfc/scannowコマンドを実行してシステムを修復しようとしましたが、最終的に問題が解決していないことがわかりました...

応答4# ->にスキップ
5 #
WangXia

試してみる:

hostsを変更した後、コマンドプロンプトで実行します:

netsh Winsock reset

再起動しても問題が解決するかどうか確認してください...

応答5# ->にスキップ
7 #
ATongMu

また、追加するために、冗長な起動項目を禁止し、ネットワーク接続でセーフモードに入ることも試みましたが、それはまだ当てはまります...

応答7# ->にスキップ
8 #
JohnsWu

説明と実行された操作に従って、システムを復元するか、システムを復元した後にもう一度テストして、Hostファイルが初期状態であることを確認することをお勧めします...

応答8# ->にスキップ
11 #
ATongMu

この操作の計画はありますが、データの問題のため、この試行を最後に置きたいと思っています.いつ実装されるかをお知らせします...

応答8# ->にスキップ
12 #
ATongMu

こんにちは.成功しなかったWin8.1の下にhostsファイルを移動して、Windowsを実行するように移動しようとしました.XP仮想マシンで、仮想マシンの元のhostsファイルを置き換えてから、cmd inputを実行します

hostsファイルで定義された222.222.222.222のIPアドレスが正常に解析されたことがわかりました...これは、私のhostsファイルに問題がないことを意味します...

そのため、問題は他の領域にあるはずです.引き続き調査できる可能性を提案してください、ありがとうございます!

応答8# ->にスキップ
16 #
WangXia

回答としてマークされた返信

応答16# ->にスキップ
18 #
JohnsWu

ご返信が遅れました.

応答18# ->にスキップ
19 #
WangXia
私は礼儀正しく、皆さんを励ましていきたいと思います...
応答7# ->にスキップ
9 #
WangXia

申し訳ありません、私は今返信します...

新しいユーザーを作成して、新しく作成したユーザーに問題があるかどうかを確認してください

応答9# ->にスキップ
10 #
ATongMu

こんにちは!何か、私はまた自由に戻ってこの助けを続けています、私は非常に残念です...

と私はhostsと再構築を削除しようとしました.つまり、新しいアカウントでほとんどすべてのメソッドに該当するように再試行しようとしました.)

私はより多くなる、この問題はWin8.1自体のように思われます、これは可能ですか?windowsの以前のversionでは発生しません.

返信を願っています...

応答10# ->にスキップ
20 #
MoXiang
現在、問題が解決したかどうかはわかりません...私の問題はあなたの問題とまったく同じですが、まだ解決していません...
応答20# ->にスキップ
21 #
JohnsWu

解決しました.投稿の方法に従って解決してみてください...

応答20# ->にスキップ
22 #
ATongMu

こんにちは、問題は解決されました.すべての返信でディスカッションをざっと確認できます.解決策はメインの投稿で直接見つけることができます.メインの投稿にコピーしました...

また、すべての主要な分析とエラー修正プロセスをざっと調べたい場合は、メインの投稿で大きなフォントセクションを直接見つけることができます.解決策は私によってマークされています...

応答9# ->にスキップ
13 #
ATongMu

実際には、hostsfile...現在の状況のために、windowsを検出するのに最近の方法を見つけようとしていました.Windows自体が似ているhostsファイルの存在には無関係です(ただし、誤ったパスを作成しませんでした)...を検出する方法がある場合Windowsの読み取りの成功hostsファイル...

私は思考、windowshostsファイル、そのようなメモリはhostsファイルのコピーを持つ必要があります.このメモリ容量を読む方法は、実際のhostsファイルの内容に対応するかどうかを確認してください.

windowshostsファイルをキャッシュしない場合は、dns説明がhostsファイルの検出を開くたびに、対応するマッピングがあるかどうかWindowsを検出する方法がある場合は、メッセージレコードを生成する場合は、正常にタッチするかどうかにかかわらず、タッチhostsファイルです.

対応するテスト方法を見つけていないので、あなたがいくつかの高さがあるかどうかわからない?

応答13# ->にスキップ
14 #
ATongMu
Pを比較するには、仮想マシンで実行されている<

今日の助けを借りて、たくさんの親切なヒントを与えました!

問題は、次のように公開された私自身によって解決されました:

参照によると、私の推測に従って、私はhostsfile...に関連するシステムメッセージを追跡するためにメッセージロガーを使用して、windows 8.1Pを比較するには、仮想マシンで実行されていると操作...

まず、すべてのネットワークのすべてのネットワークがHKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\Services\DNScache\Parameters\

を検出することを確認しました.

このボタンのusehostsfileは存在しますが、データはどのように...ですが、XPまたは8.1に関係なく、値がないことがわかりましたが、以前の実験によると、それは知られていますそのXPは正しくhostsファイルを読み取ることができますので、これは無関係です...手動でhostsfileを手動で読んでいない、このキー値を変更することはできません)

それから私は奇妙な現象を見つけました、hostsファイルを手動で変更するたびに、にアクセスしようとするためにsvchost.exeというプロセスを表示します.hostsファイルがACCES...の...では、hostsファイルにアクセスしようとしても同じ名前のプロセスもありますが、結果は成功...

メッセージロガーが提供するプロセスのPIDによると、それを追跡するサービスに共通のサービスがあり、」のプロパティページを習慣的に開く、[ログイン]タブに移動し、使用されているアカウントがデフォルトのローカルシステムアカウントではないが、「DNSクライアント...であると判断できます.DNS.クライアントサービスには問題があります.アクセスファイルは拒否されているため、アカウントの問題は確実に説明されているので、「DNSクライアントネットワークサービス」の組み込みセキュリティBODY...

と呼ばれます.

すべてが明確で、まだそうである.それはまだ問題のある権利です...dnsクライアントサービスが使用するアカウントはsystemではありません.しかし、ネットワークサービス...私のスクリーンショットによると、私は私のスクリーンショットによると、私はネットワークサービスセキュリティプリンシパルを欠いていることを見つけることができます.systemアカウントとネットワークサービスセキュリティ本文は関連付けられていないため、起動hosts<hostsの後にdns clientサービスを正しく読み取ることはできません./CODE>ファイルの結果、hostsファイルが無効です...

解決策:etcフォルダへのアクセス、ネットワークサービスセキュリティ本体を追加し、読み取りを許可する許可を与える、dns clientサービスを再起動する許可を与えます...現在のMyhostsはすべて普通...


-

疑問口:メッセージロガーを使用して実験を行うときは、言及する価値のある点を見つけます.

dnsクライアントサービスが閉じられていない場合、hostsファイルはsvchost.exeプロセスの読み取りhostsfile...しかしdnsクライアントサービスを閉じると、すべてのネットワーク通信機能がこのhostsfile...

を読みます.

および閉鎖DNSクライアントサービスがない場合、ネットワーク通信機能を持つプロセスアクセスネットワークは、HostsFileの読み取りメッセージをトリガしません...サービスの後に閉じたとき、ネットワーク通信機能を持つすべてのメッセージは毎回HSOTSファイルを読み取るメッセージをトリガし、それは自己読み取りで解析され、読み取るコミュニティプロセスはありません.hostsfile...

だから私はhosts:

の作業原理を推測します

まず、ネットワーク通信機能を持つすべてのプロセスにネットワーク通信モジュールDLLが含まれていることがわかります.実際にこのDLLの準備では、のみを保守するために.DNSクライアントサービスの存在を考慮していません...実際、DNSクライアントサービスのパフォーマンスは、元の処理プロセスです.独自に独自のネットワーク接続を独立して管理し、ネットワークアドレス分析(Windowsネットワーク通信モジュールに依存しない)これはこのようにしている場合でも、あなた自身のネットワークアドレスの解決を処理します.もちろん、hostsファイルを解決するためのステップがありますので、ネットワーク通信機能の各プロセスは独立してアクセスされます.hostsファイルと解析...

およびDNSクライアントサービスは後で表示されます、目的はDNS解決のカオスを解決することです...問題ではありませんとにかく過去のネットワークアドレスを解決するのは何ですか...現時点では、各ネットワーク通信モジュールにはネットワークアドレス解決を扱うネットワーク通信モジュールが含まれていますが、まずシステムを見ていきますか?startDNSクライアントサービス、起動がある場合は、Hostsのメンテナンスのために、DNSクライアントサービスは利用可能で、hostsファイルをすべてのプロセスに読む必要はありません.そのため、上記のプロセスがあります.HSOTHSOTSファイルの後、
svchosts.exe
プロセスのhostsファイルのみ.他のプロセスはネットワークにアクセスしている間、文書の読み取り記録を生成しなくなりました...

だからdns clientサービスが確かに良好であることがわかりますので、過度のhostsファイルの読み取りを縮小し、ネットワークアドレス解決へのアクセスが統合されています.以前に「独立した自律」、すべてのプロセスはHostsファイルにアクセスするたびにhostsファイルを読み取ります.最新のhostsファイルを読み、次にdnsクライアントの自身のメモリ空間をキャッシュすると、各解像度はキャッシュ要求データのようなもので、アクセスを速めることができます...

応答14# ->にスキップ
15 #
WangXia 1

申し訳ありません、私は今返信します...

問題を解決して原理を分析してくれてうれしい...

解決策の手順:

Windowsロゴキー+ Xキーを押し、[コマンドプロンプト(管理者)]をクリックして、次のコマンドを順番に入力し、Enterキー(Enter)を押して実行します.

SC停止Dnscache

SCconfig Dnscache obj="NT AUTHORITY\NetworkService"

TAKEOWN/F "%Windir%\System32\drivers\etc"/A

icacls "%Windir%\System32\drivers\etc"/grant "NT AUTHORITY\NetworkService":RX

SC start Dnscache

コマンドの説明:

  1. Dnscache(DNS Client)サービスを停止します
  2. Dnscacheサービスを実行しているセキュリティプリンシパルをNetwork Service<として構成します/li>
  3. etcフォルダーの所有権を管理者グループに付与する
  4. etcフォルダーにNetwork Serviceの読み取りおよび実行アクセス許可を追加します
  5. Dnscacheサービスを開始します

上記のコマンドは、コミュニティメンバーによって提供されるソリューションから要約されています、解釈の権利はそれらに属しています...

応答14# ->にスキップ
17 #
JohnsWu

ご返信が遅れました.

問題が解決したことを嬉しく思います...同時に、私も共有させていただきます.他のユーザーがそのような問題に遭遇した場合、彼らは以下から学ぶことができると信じています...

応答4# ->にスキップ
6 #
JohnsWu

googleへの最近のアクセスは確かにいくつかの問題です.Webサイト経由のアクセスは正常ではありません.IPアドレスを使用してアクセスできます.DNSサーバーがダウンしている可能性があります...

同時に、システムのデフォルト設定を変更することはお勧めしません.変更する必要がある場合は、最初にバックアップ操作を行ってください...通常、Hostファイルを適切に変更することで、Webサイトにすばやくアクセスできます...p>

特定のWebサイトのIPアドレスとURLをHostファイルの最後の行に追加すると、Webサイトに簡単かつ迅速にアクセスできるようになります...

状況も非常に特殊です.後で再試行するか、システムを以前の通常の状態に復元することをお勧めします......