今天,当我尝试从 Windows XP 命令提示符运行旧 DOS 实用程序时,我收到错误消息“访问被拒绝”。然后我发现大多数 DOS 实用程序都无法运行,即使我对它们有“完全控制权”。几周前它们运行良好,除了 Windows 升级之外,我没有进行任何操作系统更改。
然后我尝试从 Windows\system32 文件夹运行edlin.exe
。edit.com
结果相同 - “访问被拒绝。”我尝试从 Windows 资源管理器运行这些应用程序,并收到消息“Windows 无法访问指定的设备、路径或文件。您可能没有适当的权限来访问该项目。”
我以管理员身份登录,对这些文件拥有完全控制权。我尝试以内置管理员帐户身份登录,但没有任何变化。我检查了文件的安全设置,并完全控制了所有文件。我尝试将文件复制到不同的驱动器,以安全模式启动,并在没有防病毒和防火墙的情况下运行,但都没有任何变化。
有人知道这是什么原因造成的吗?
答案1
您对 NTVDM.EXE 的访问权限是什么?(这是运行 DOS 和 16 位程序的组件)
我建议使用进程监控准确找出哪个进程正在尝试访问哪个文件但失败了。
编辑添加
查看进程监视器的结果,似乎您已设置“阻止访问 16 位应用程序”策略。要修复它,请依次单击“开始”->“运行”。Gpedit.msc
导航到“计算机配置”->“管理模板”->“Windows 组件”->“应用程序兼容性”,然后在右侧窗格中查看“阻止访问 16 位应用程序”。如果显示“已启用”,请进行更改。否则,请在“用户配置”下查找相同的策略。
答案2
您是否以管理员身份运行命令提示符?
我认为它是 Windows Vista/7 甚至可能是 XP,您必须声明您想在管理员模式下运行命令提示符,即使您以管理员身份登录。
在 Vista 中,我认为只需右键单击 -> 以管理员身份运行(如果已打开,则通过 UAC)。
答案3
正如@HughAllen 所说,这可能是由于组策略设置造成的。
对于没有运行 Windows 专业版或旗舰版/企业版的用户,他们可以使用 Windows 注册表编辑设置。
- 找到钥匙
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppCompat
- 创建一个
REG_DWORD
名为的新值VDMDisallowed
- 禁用设置值
0
- 或者启用设置值
1