无法解析%windir%/无法修改%path%或在启动时重置的%path%


45

有关问题的发展方式,请参见下面的更新3和4。


我的电脑(Windows 7 x64,Lenovo Thinkpad T530)解决%windir%问题。启动后,一切正常。稍后,计算机突然无法解析%windir%。

控制台窗口

检查环境变量窗口显示它已定义。

环境变量

检查注册表还显示它也已定义。我实际上已经删除了密钥,然后重新输入却无济于事。

登记处

重新启动后,一段时间后一切正常。是否有人对我可以检查的其他事项有任何想法?


更新1: 经过一番思考之后,我已经卸载了大约在此问题开始发生时安装的Konica Minolta Pagebox驱动程序/程序(请参阅下面的评论)。这个问题似乎需要大约4-24个小时(我从未计时),因此我将在此之后再次进行更新。

更新2: 问题仍在发生。我从午餐回来,找不到%windir%。今天早上重启后,我进行了一次测试,将计算机置于睡眠状态,然后将其唤醒。唤醒后仍定义%windir%。

更新3: 根据丹尼尔(Daniel)的评论,我set在错误前后进行了比较,比较了输出结果。我注意到的第一件事是,在新启动时,我的%path%长为2000+个字符。我将其修剪到〜375个字符,并在新的cmd窗口中对其进行了验证。我重新启动,再次检查了路径,它又回到了2000多个字符(与我最初看到的字符匹配)。我再次将其截断,然后再次重新启动,发生了同样的事情。我删除了path变量并创建了一个新变量;同样的事情发生了。在这一点上,我可以得出的结论是,要么我无法永久更改路径,要么路径在启动时被某些进程重置。有什么想法吗?

更新4: 我通过下面建议的注册表方法编辑了路径。经过一段时间的运行,我今天检查了自己的路径,该路径已从我输入到注册表中的内容开始增长。现在,它有一些新条目和很多重复项。唯一的新条目来自SQL Server2012。我去更改了注册表中的内容,发现注册表与的输出不匹配echo %path%。从“高级属性”选项卡中检查环境变量将显示我的路径的第三个版本。

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\;

看起来命令行路径 = 注册表路径 + 环境变量path。我试图将注册表路径和环境变量路径设置为同一事物,然后重新启动。重新启动后,我的路径现在增加了一倍,基本上是上面注册表路径的两个背对背副本。

再有什么想法?

更新5:与IT经理交谈后,他说他正在另一台计算机上解决类似的问题。两台计算机都具有SSD(似乎是唯一的共同因素)。这可能相关,也可能不相关。


尝试使用手动set分配值windir并再次重复echo-看看这是否会为您提供输出。如果可以,那么您的env变量就会有些混乱-如果不能,那么shell和/或echo命令就无法正常工作。
mnmnc

设置它是可行的,但是我不确定是什么,因为我可以为一个类似的,短暂的会话变量运行“ set SystemRoot = abcd”
Zack

如果我想问的话,首先您是如何注意到这一点的?也就是说,是什么提示您出现问题?(
不太

几周前,我的计算机上安装了网络扫描仪驱动程序。此后不久,我遇到了找不到Windows程序的问题。我将其追踪到我的路径太长,并进行了修复。这可能相关也可能不相关。从那以后,事情一直很古怪。具体来说,底角的Windows扬声器图标会定期引发错误(“未找到输出驱动程序”,但声音仍然有效)。我再次检查该路径,但在尝试进入高级系统设置时遇到错误(“找不到%windir%\ system32 \ ...”)。我追踪到windir无法解决。
Zack

Answers:



4

使用GUI,将%windir%变量内容设置为%SystemRoot%

至于您的%path%,您可以使用注册表编辑器解决此问题:

  • 启动Regedit.exe
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
  • 在右窗格中,双击值 Path (REG_EXPAND_SZ)
  • 更改值,然后重新启动

在此处输入图片说明


这看起来像修复它。我会在星期一全天工作,以确保一切顺利,在此之后,我将其标记为正确答案。谢谢。
Zack

1
@Zack我在联想T430上遇到了完全相同的问题,同事也是如此。上面的答案不起作用。问题最终得到解决了吗?
福特

@inquisitiveIdiot-我从未完全解决它。我卸载了路径中的某些内容,并继续在命令行中手动修剪路径。最终,问题不再发生。
Zack

@Zack我刚刚发布了最终解决的情况,以防万一您再次遇到问题
福特

在T430上也有同样的问题。
Lightyear Buzz 2014年

2

我的Lenovo TS530确实有相同的问题。它在安装新程序后开始发生,新程序使我的路径比以前更长,因此安装程序将新内容添加到路径定义的开头。我编辑的路径regedt通过移动的%SystemRoot%到路径定义的开头。

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

此外,我编辑ENVIROMENTAL可变WINDIR

windir= C:/Windows

windir=C:\Windows

这似乎已经解决了问题。(可能是我在尝试解决问题时较早地在反斜杠上犯了错误。或者安装程序已对其进行了更改。)


Windows相当宽容地使用/而不是\
jpaugh

1

我遇到过同样的问题。当我在以下对话框中删除 PATH环境变量(对其内容进行备份之后)时,此问题已解决。

C:\Windows\System32\SystemPropertiesAdvanced.exe

我后来一一重建了PATH变量。我将部分不适合系统变量的PATH内容移到了用户变量PATH中。


1

正如@ Pieter-Jan Busschaert所提到的,很可能是由于PATH环境变量损坏或时间太长所致。

解决此问题的最简单方法是下载Rapid Environment Editor。它显示了您的PATH设置有什么问题,并让您立即进行修复。


我总是能够解决问题。问题是该路径自发地扩展到超过2048个字符,而我却没有做任何事情(例如,安装或卸载程序)。
扎克

1

我发现(一致地)如果在Windows 7计算机上安装了SQL Server 2012或更高版本(也不确定在Win8.x或Win10上是否还会出现此问题),也会发生这种情况,但是我找到的解决方案是还可以在当前用户上下文下创建windir环境变量,以将其设置为%SystemRoot%。我们唯一看到的是RDP(远程会话)进入工作站时的情况。如果我们登录到控制台,我们将完全不会遇到这种情况。我不知道SQL 2012(或更高版本)组件是否恰好在此之前安装,但是您可以尝试使用此解决方案。


0

我们的服务台给了我以下回复:

  1. 通过单击“开始”按钮,然后单击“控制面板”,打开“用户帐户控制设置”。在搜索框中,键入uac,然后单击“更改用户帐户控制设置”。
  2. 请执行以下操作:•要关闭UAC,请将滑块移到“从不通知”位置,然后单击“确定”。如果系统提示您输入管理员密码或确认,请键入密码或提供确认。您需要重新启动计算机才能关闭UAC。

考虑到两种不同,它可以工作:

1.)实际上不存在此问题,因为此程序需要%windir才能正常工作。而是在命令提示符下运行C:\ Windows \ System32 \ UserAccountControlSettings。

2.)您更希望没有Windows安全警告。


UAC在我的情况已经被禁用,但如果这对你的作品或其他任何人,这是伟大的
扎克

0

在Lenovo X230上升级到SSD后,我遇到了同样的问题。我用于迁移的软件(Acronis TrueImage)添加了一个路径值,该路径值一定使我超出了限制。我解决了如下问题:

打开注册表编辑器

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

修改路径值(请参见上面的user184745的答案)。

剪切当前值并粘贴到记事本中。

编辑了几个重复的值以及似乎没有什么用的路径。我将路径的长度从2283个字符减少到了1517个字符。

将新的路径字符串粘贴到Path键中。

(以防万一,请保存我的记事本的内容。)

重新启动。一切都很好。



-1

我遇到了与上述相同的问题。%windir%。某些项目未显示图标。使用windir的任何应用程序...经历了所有修复,包括冷启动,路径缩短等。
最后重新创建了Windows配置文件...问题消失了。


4
欢迎使用超级用户PaulG。虽然您尝试回答OP的问题,但是缺少支持事实,并且可能导致删除。请参阅如何删除某些答案以及为什么删除这些答案以及如何写出一个好的答案
双关语
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.