%windir%を解決できません/ブート時にリセットされる%path%または%path%を変更できません


45

問題がどのように進化したかについては、以下のアップデート3および4を参照してください


コンピューター(Windows 7 x64、Lenovo Thinkpad T530)で%windir%の解決に問題があります。起動後、すべてが正常に機能します。しばらくして、コンピューターが突然%windir%を解決できなくなります。

コンソールウィンドウ

環境変数ウィンドウを確認すると、定義されていることがわかります。

環境バリバル

レジストリを確認すると、レジストリも定義されていることがわかります。私は実際にキーを削除し、無駄に再入力しました。

登録

再起動後、すべてがしばらく正常に動作します。誰も私が確認できる他の何かについて何か考えがありますか?


更新1: いくつかのことを考えた後、この問題が発生し始めた頃にインストールしたKonica Minolta Pageboxドライバー/プログラムをアンインストールしました(以下のコメントを参照)。問題が顕在化するのに約4〜24時間かかります(時間を計ったことがない)ので、その後再度更新します。

更新2: 問題はまだ発生しています。昼食から戻ってきましたが、%windir%が見つかりません。今朝の再起動後にテストを行い、コンピューターをスリープ状態にしてから目を覚ましました。目覚めた後も%windir%は定義されたままです。

更新3: コメントのダニエルごとに、setエラーの前後に走って、出力を比較しました。私が最初に気づいたのは、フレッシュブートでの%path%が2000+文字長であることです。約375文字に切り詰め、新しいcmdウィンドウで確認しました。再起動し、パスを再度確認しましたが、2000文字以上に戻りました(最初に見たものと一致しました)。私はそれをもう一度切り捨て、もう一度再起動しましたが、同じことが起こりました。パス変数を削除し、新しい変数を作成しました。同じことが起こりました。この時点で結論を出すことができるのは、パスを永続的に変更できないか、ブート時に何らかのプロセスによってパスがリセットされているかのいずれかです。何かご意見は?

更新4: 私は、以下に提案されているレジストリ方式でパスを編集しました。しばらく実行した後、今日自分のパスをチェックしましたが、レジストリに入力したものから大きくなりました。現在、いくつかの新しいエントリと多数の重複があります。新しいエントリはSQL Server 2012からのみです。レジストリでこれを変更しようとすると、レジストリがの出力と一致しないことに気付きましたecho %path%。[詳細プロパティ]タブから環境変数を確認すると、3番目のバージョンのパスが表示されます。

Registry Path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;

Command Line path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;
C:\Program Files(x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;

Environment Variables path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;

コマンドラインパス = レジストリパス + 環境変数パスのように見えます。レジストリパスと環境変数パスを同じものに設定して再起動しようとしました。再起動後、パスが2倍になりました。基本的には、上記のレジストリパスの2つのバックツーバックコピーです。

もう一度、何か考えは?

更新5: ITマネージャーと話した後、彼は別のコンピューターで同様の問題と戦っていると言います。両方のコンピューターにSSDがあります(唯一の共通要因であるようです)。これは適切な場合とそうでない場合があります。


を使用setして値をwindir手動で割り当て、echoもう一度繰り返します-これにより出力が得られるかどうかを確認します。もしそうなら、何かがあなたのenv変数を台無しにしています-そうでなければ、何かがあなたのシェルやエコーコマンドで大丈夫ではありません。
mnmnc

これを設定すると動作しますが、私は「セットSYSTEMROOT = ABCD」、類似した、短命のセッション変数のために実行することができますように私は、本当に必ずそれが何かを証明することはないよ
ザック・

私が尋ねる場合、そもそもこれにどのように気付きましたか?つまり、問題が発生したことをあなたに思い起こさせたのは何ですか?(...それは関連性のことをオフのチャンスオン)
Shinrai

数週間前、ネットワークスキャナードライバーがコンピューターにインストールされました。その後まもなく、Windowsプログラムが見つからないという問題が発生しました。私は自分のパスが長すぎることを突き止め、修正しました。これは関連する場合としない場合があります。それ以来、物事は風変わりです。具体的には、下隅のWindowsスピーカーアイコンで定期的にエラーが発生します(「出力ドライバーが見つかりません」が、サウンドは引き続き機能します)。パスをもう一度確認しに行きましたが、高度なシステム設定に到達しようとしてエラーが発生しました( "%windir%\ system32 \ ...が見つかりません")。解決できないwindirまで追跡しました。
ザック

回答:


26

私は同じ問題を抱えていて、最初にこの質問を見つけました。ただし、実際の原因/解決策はこの質問ではまだ言及されていませんが、ここでは言及されています:Windows 7のPATHおよび環境変数が破損しています

解決策の要約:パスが2048文字未満であることを確認してください。ユーザー変数とシステム変数の両方をチェックインします。


4

GUIを使用して、%windir%変数のコンテンツを%SystemRoot%に設定します。

%path%については、レジストリエディターでこれを解決できます。

  • Regedit.exeを起動します
  • に行く HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
  • 右側のペインで、値をダブルクリックします Path (REG_EXPAND_SZ)
  • 好きなように値を変更して再起動する

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


これは修正されたようです。私は月曜日に仕事で丸一日過ごして、すべてがうまくいくと仮定して、これを正解としてマークします。ありがとう。
ザック

1
@ZackレノボT430でもまったく同じ問題があり、同僚も同じです。上記の答えは機能しませんでした。問題は最終的に解決されましたか?
フォードの知事

@inquisitiveIdiot-完全に解決したことはありません。パスにあるものをアンインストールし、コマンドラインで手動でパスを整理し続けました。最終的に問題は発生しなくなりました。
ザック

@ザック私はちょうどあなたが再び問題がある場合の答えとして働いてしまったものを投稿しました
フォード知事

T430でも同じ問題が発生します。
ライトイヤーバズ

2

Lenovo TS530でも同じ問題が発生しました。これは、新しいプログラムをインストールした後に発生し始めたため、パスが以前よりもはるかに長くなり、インストーラーが新しいものをパス定義の先頭に追加しました。%SystemRoot%をパス定義の先頭に移動して、regedtパスを編集しました。

path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot....

さらに、環境変数windirを編集しました

windir= C:/Windows

windir=C:\Windows

これで問題は解決したようです。(問題を修正しようとしているときに、バックスラッシュで以前にミスをした可能性があります。あるいは、インストーラーが変更しました。)


Windowsはの/代わりにを使用することをかなり許してい\ ます。
jpaugh

1

同じ問題がありました。次のダイアログで(環境の内容をバックアップした後)PATH環境変数削除すると解決しました。

C:\Windows\System32\SystemPropertiesAdvanced.exe

後でPATH変数を1つずつ再構築しました。システム変数に収まらないPATHコンテンツの一部をユーザー変数PATHに移動しました。


1

@ Pieter-Jan Busschaertで既に述べたように、PATH環境変数が破損しているか、長すぎるためです。

これを修正する最も簡単な方法は、Rapid Environment Editorをダウンロードすることです。PATH設定の問題点を示し、すぐに修正できます。


私はいつもパスを修正することができました。問題は、私が何もしなくても(プログラムのインストールやアンインストールなど)パスが2048文字を超えて自然に拡大し続けることでした。
ザック

1

SQL Server 2012以降のバージョンがWindows 7マシンにインストールされている場合(これがWin8.xまたはWin10でも発生するかどうかは不明)にも発生することが(一貫して)見つかりましたが、私が見つけた解決策はまた、現在のユーザーコンテキストでwindir環境変数を作成して、%SystemRoot%に設定します。これが表示されるのは、ワークステーションへのRDP(リモートセッション)時のみです。コンソールにログインした場合、これはまったく発生しません。SQL 2012(またはそれ以降)のコンポーネントがたまたまインストールされたのかどうかはわかりませんが、この解決策を試すことができます。


0

ヘルプデスクから次の回答がありました。

  1. [スタート]ボタンをクリックして、[コントロールパネル]をクリックして、ユーザーアカウント制御設定を開きます。検索ボックスに「uac」と入力し、[ユーザーアカウント制御設定の変更]をクリックします。
  2. 次の手順を実行します。•UACをオフにするには、スライダーを[通知しない]の位置に移動して、[OK]をクリックします。管理者のパスワードまたは確認を求められたら、パスワードを入力するか、確認を提供します。UACをオフにするには、コンピューターを再起動する必要があります。

次の2つのことを考えて動作します。

1.)このプログラムでは、%windirが正しく機能する必要があるため、実際には存在しません。代わりに、コマンドプロンプトでC:\ Windows \ System32 \ UserAccountControlSettingsを実行します。

2.)Windowsのセキュリティ警告が表示されないようにします。


私の場合、UACはすでに無効になっていますが、これがあなたや他の人に有効であれば、それは素晴らしいことです。
ザック

0

Lenovo X230でSSDにアップグレードした後、同じ問題が発生しました。移行に使用したソフトウェア(Acronis TrueImage)にパス値が追加されていたため、制限を超えたはずです。私は次のように解決しました:

Regeditを開く

に行く HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Path値を変更します(上記のuser184745の回答を参照)。

現在の値を切り取り、メモ帳に貼り付けます。

いくつかの重複する値と、ほとんど利点がないと思われるパスを編集しました。パスの長さを2,283文字から1,517文字に減らしました。

新しいパス文字列をPathキーに貼り付けました。

(念のため、メモ帳の内容を保存しました。)

再起動しました。すべては順調です。



-1

上記と同じ問題がありました。%windir%。一部のアイテムでアイコンが表示されません。windirを使用したすべてのアプリケーション...コールドブート、パスの短縮などを含むすべての修正が行われました。
最後にWindowsプロファイルを再作成しました...問題はなくなりました。


4
スーパーユーザーPaulGへようこそ。OPの質問に答えようとしましたが、裏付けとなる事実がなく、削除につながる可能性があります。参照してくださいいくつかの答えが削除されている方法&なぜ良い答えを書く方法
しゃれ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.