Windows system >> Windowsの知識 >  >> Windows 8システムチュートリアル >> Win8のシステムアプリケーションスキル >> Windows 8.1システムのホストファイルの障害対処方法

Windows 8.1システムのホストファイルの障害対処方法

  

Visible hostsファイルのパスは正しく、1行マッピングのみで、他の干渉項目がないことを確認します。

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

表示可能なシステム権限も割り当てられています。自分のアカウント内のアカウントおよび以下の管理者グループの権限も完全に制御されています。

そうです、突然失敗した理由はわかりません。何かのハイジャックが発生した可能性がありますか。

分析処理

参考文献によると、hostsファイルに関連するシステムメッセージを追跡するためにメッセージロガーを使用しました。比較のために、私は比較のためにWindows 8.1と仮想マシンで実行されているWindows XPでも動作します。

まず、ネットワーク通信機能を持つすべてのプログラムが、HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDnscacheParametersキーの下にUseHostsFile値が存在するかどうか、およびデータが何であるかを検出することを発見しました。しかし、XPも8.1もこの値を持たないことがわかりましたが、以前の実験によると、XPはhostsファイルを正常に読み取ることができるので、これは無関係な項目であると結論付けることができます。 (ただし、この判断によると、元のDnscacheサービス(つまり、サービス内にDNS Clientという名前を表示し、DNS解決をキャッシュするために使用されるサービス)は、手動でホストファイルを読み取らず、キー値を変更できます。 Br>

すると、hostsファイルを手動で変更するたびに、8.1のsvchost.exeという名前のプロセスがhostsファイルにアクセスしようとしますが、アクセスは拒否されました。 XPでは、同じ名前のプロセスがhostsファイルにアクセスしようとしますが、結果はSuccessです。

メッセージロガーが提供するプロセスのPIDによると、それが運ぶサービスにトレースされる共通のサービスはDNSクライアントです。したがって、上記のDNSクライアントサービスに問題があると結論付けることができます。アクセスファイルは拒否されたので、これは間違いなくアカウントの問題です。そこで、私はいつもDNSクライアントのプロパティページを開き、ログインタブに行き、それが使用するアカウントがデフォルトのローカルシステムアカウントではないことを発見します。組み込みセキュリティプリンシパル。

すべてが明らかで、結局のところ、それは許可の問題です。 DNSクライアントサービスが使用するアカウントはシステムではなくネットワークサービスです。私が開いたスクリーンショットによると、私はシステムアカウントにフルアクセスコントロールを与えましたが、私はネットワークサービスのセキュリティプリンシパルが不足していることを知りました。これで、システムアカウントとNetwork Serviceセキュリティプリンシパルは関連していないと結論付けることができるため、DNSクライアントサービスは起動後にhostsファイルを読み取ることができず、hostsファイルは無効になります。

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

以上の分析により、Windows 8.1システムにおけるHostsファイルの失敗の原因は、だれでもより明確に理解でき、またそれを解決するための対策も把握できると考えています。結局、Hostsファイルは通常の状態に戻ります。

Copyright © Windowsの知識 All Rights Reserved