Windows 7のPATHおよび環境変数が破損しています


97

私には何の手掛かりもありませんが、最近私はこの問題を抱えています。ワークステーションを突然実行すると、何かがPATHを破壊し、多くのものが機能しなくなります。当初、私のパスには多数のディレクトリがリストされていました(私はWindows 7を開発ボックスとして使用しています)しばらくして、残ったパスに3〜4個のディレクトリしかリストされていませんでした。

環境変数が表示されているシステムプロパティダイアログを開くことさえできません(シェル変数を使用して起動するため機能しません)。つまり、毎回再起動します。

その問題を引き起こす可能性のあるアイデアはありますか?最近、新しいことも珍しいこともしていません。VmWareのみ(ただし、私は過去にそれを使用しており、当時はその問題はありませんでした)。

確認したばかりですが、%WINDIR%定義されていません。WTF ?!


2
私は最近、64ビットのVistaボックスで同じ問題を抱えています。明らかな原因はありませんが、新しいコマンドプロンプトを開くと、パス変数は「ユーザー変数」で定義されたパスの一部に設定されます。パスの「システム変数」部分が欠落しています。一部のシステム変数は未定義です。レジストリは[OK]に見え、[システムのプロパティ]ダイアログ([c:\ windows \ system32 \ systempropertiesadvanced.exe]を使用)ですべてが[OK]に見えます。再起動後、システムは正常に機能します。問題は数日ごとに再発します。完全なウイルススキャンでは何も見つかりませんでした。
リー

同じ問題がありました。私はそれを引き起こしたいくつかの異なるもの(特定のプログラムの実行、インストーラーの実行など)を見つけましたが、それらがそれを引き起こす理由はありませんでした(それらは他のマシンまたはVMでうまく動作します)すべてを修正しました。
ジムマッキース

4
私の道は長すぎました。重複を削除し、役に立たないエントリを削除し、問題はなくなりました。
パベルP

回答:


127

私のブログから

要するに、PATH環境変数が2048文字を超える場合、多くのコンテキストで表示されなくなります(およびWINDIR)。

手動でc:\ windows \ system32 \ systempropertiesadvanced.exeを実行し、PATHから1つのエントリを削除して2048文字未満に設定することで修正しました。新しいcmdウィンドウは問題なく機能します。

更新:この同様の質問は2047が最大であると主張しており、拡張ルールについて詳しく説明しています。


2
コンピューターを再起動することで問題を修正しました...これは本当にWindowsの愚かな制限です!
エドウィンイップ

3
この問題に出くわしました。なんて冗談でしょう。おかげで
SwimBikeRun

3
他の人が述べたように、PATHを修正した後、再起動したくない場合はタスクマネージャでexplorer.exeを再起動してください。タスクバーを右クリックして、タスクマネージャーを起動しないでください。これを行うと、ジャッキアップされたパス(および新しいexplorer.exeプロセス)でタスクマネージャーが初期化されます。+エスケープをシフト+ Ctrlキーを行うことによって、それを起動します
C. Tewalt

1
これありがとう。ソニー製品が私のパスを約200文字増やしたとき、私は先月かそこらの間これと戦っていました。
マイケルドーガン

1
Ravenが提案したものに加えて私がしたこと:c:\program files (86)パス変数のような一般的なベースPRGX86ディレクトリを、たとえばプログラムファイルdirを指すような別の変数に置き換えます。これにより、追加の文字を保存できます。
ovm

23

2048文字の制限は現実のものです。私がやったことは、パスを2つの別々の変数に分割し、2番目の変数をPATH変数に含めることです:

PATH=C:\;%PATHEXTENDED%
PATHEXTENDED=E:\

そのように、PATHディレクトリを削除する必要はありませんでしたが、2048文字未満のPATH変数を取得しました。


2
OKそれはかなり天才です
ケンワーナー14

1
非常に賢いですが、PATHエントリを動的に追加するアプリは、完全に展開されたパスで動作している可能性が高く、それでも機能しません。しかし、少なくとも痛みはそのプロセスに限定されます。
レイヴン

「pathextended」またはあなたのケースで- -変数「extpath」を解析されていなかった.....:この素晴らしいアイデアをありがとう、それは残念ながらwin7の下に動作しませんでした
unknown6656

2
この解決策は、Win 7では機能しませんでした。2つの変数の内容は連結されましたが、2048番目以降の文字は、結果の結合PATH変数から切り捨てられました。だから私は持っていた私のアイコンと取得するには、@Ravenごとに、最後にPATHからエントリを削除するために%windir%戻ってきて、など。
スナーク

12

この問題を解決しようとするpathユーザーに対する回避策の修正。過度の問題またはその他の理由により、エクスプローラーを再起動するだけです。新しいシェルは新しい環境を選択します。これにより、根本的な原因を特定して永続的に解決できていない場合でも、再起動することなく当面の破損が修正されます。

1。

ここに画像の説明を入力してください

2。

ここに画像の説明を入力してください

3。

ここに画像の説明を入力してください

編集:新しいバージョンのWindows用に更新します。

タスクマネージャーは1つのステップでそれを行います。

ここに画像の説明を入力してください


これは質問に対する答えを提供しません。投稿者に批評または説明を依頼するには、投稿の下にコメントを残します-自分の投稿にいつでもコメントできます。評価が十分になったら、投稿にコメントできます。
マイケルK 14

敬意をもって、私は同意しません。問題は、Windows 7's PATH and environment variables are corruptedです。私の応答は、その破損を削除する方法を提供します。これは、それ自体が適切な回答であり、他の修正と組み合わせた場合は、再起動が必要になります。
登録編集14

Ravensの回答を編集して、あなたのパートを追加することをお勧めします。ほとんどの人は受け入れられた答えを読むだけであり、私が正しく理解していれば、あなたの答えはほとんどそれに追加されます。
マイケルK 14

ああ、分かった。いいえ、試されているソリューションに関連しています。それを明確にするために、回答を編集しました。
登録編集14

1
これはおそらく答えよりもコメントとして価値がありました。再起動するのではなく、explorer.exeタスクを終了してexplorer.exeを再起動する必要があります。あなたの答えは彼の問題の一部に対処します-この部分は「環境変数を見ることができるシステムプロパティダイアログを開くことさえできません(シェル変数を使用して起動し、動作しないため)。要するに、私は毎回再起動します時間。" ただし、再起動後にパスの問題が発生するため、再起動しても問題は解決しません。
barlop 14

3

レジストリキーを監視するプログラムを取得する必要があります

ユーザー変数

HKCU\Environment

そして

マシン変数

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

あなたは彼らが破壊される瞬間を捕まえてそれを絞り込むかもしれません。

また、起動後の時間がかかります。少なくともそれがいつ起こるかを知ることができれば、物事を絞り込むのに役立ちます。

セーフモードも試してください。プロセスに関連する場合は、イベントビューアを確認してください。

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