如果没有驱动器中的CD,powershell将无法启动

时间:2014-05-05 15:11:59

标签: windows powershell windows-7-x64 powershell-v3.0

我正在使用Windows 7,并已升级到Windows Management Framework 3.0,其中包括PowerShell 3.在过去一周左右的时间内,我开始在启动PowerShell时出现错误,导致无法启动,直到我的CD中有CD电脑的驱动器(任何CD都可以)。到目前为止我找到的唯一修复 - 这只是一个临时修复 - 是完全卸载并重新安装管理框架。这有效,直到我使用CD驱动器,然后PowerShell再次开始行动。错误对话框显示为:There is no disk in the drive. Please insert a disk into drive D:.

有人对此处可能发生的事情有任何建议吗?我看到了与配置设置相关的两个可能的问题,但仍需要有关检查和验证的内容/位置的指导:

  • PowerShell在某处配置为在启动时检查某些驱动器,并且对空CD驱动器响应不佳
  • PowerShell实际上是试图在D:\上打开一些路径。我很确定这是问题,因为当驱动器中的 CD时它会打开我的%USERPROFILE%,但当然我可能是遗失了什么
  • 当然,我确信还有很多其他的可能性我没有考虑过

对可能修复的想法?我希望每次使用CD驱动器时都不必卸载并重新安装Management Framework!

编辑:以下其他详细信息已从我对各种评论的回复中复制

  • 我可以通过多种方式启动PowerShell来重新创建错误。捷径是一个。从命令提示符(cmd.exe)启动它是另一个。即使尝试使用PowerShell -ExecutionPolicy RemoteSigned -File script.ps1之类的命令从命令提示符调用PowerShell脚本也会产生错误,PowerShell /?也是如此。
  • 我在D:\中看不到任何指向$env:PATH的内容,而$env:HOMEDRIVE未将D:设置为%windir%C:\Windows设置为%SystemDrive%C:设置为%SystemRoot%C:\Windows设置为HKCU\Software\Classes\Local Settings\MuiCache\5E6\52C64B7E\@D:\Windows\system32\AccessibilityCpl.dll,-10
  • 将CD驱动器重新分配给另一个字母可以解决问题,但这不是一个解决方案,因为它解决了症状而不是根本原因(无论)。
  • 当其他所有方法都失败时,我仍然可以从Cygwin
  • 启动PowerShell
  • Process Monitor(下面链接)显示尝试读取不存在的注册表项{{1}}。无论什么机制导致错误读取都可能导致错误对话。 必须以编程方式更改PowerShell内部的系统驱动器。

赞赏进一步的想法和建议。

1 个答案:

答案 0 :(得分:0)

当Powershell首次启动时,它会检查指定的文件夹以导入模块。我会好好看看这些。默认的var是$ env:PSModulePath,其作用与标准的$ env:Path var非常相似。我会查看该路径,看看是否有任何对D:驱动器的引用。

MSDN - Windows PowerShell Modules

您是否从DVD驱动器安装.net?也许从MS下载一个新的副本将清除这一点。 MS .Net Framework 3.0非常老,它实际上是为Server 2003或WinXP指定的。你有没有理由使用它而不是3.5,4或4.5.1?