为什么我不能在Windows 7上编辑“程序文件”文件?

我在Windows 7上无法编辑此文件:

C:\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules\FindJNI.cmake

如果我在Cygwin(vi)或TextPad中对其进行编辑,则这两个程序会看到更改,因此它将被写入磁盘中的某个位置但是,如果我在DOS cmd shell中“键入”文件,则看起来该文件根本没有更改。

我注意到的一件事是,在cmd shell中,所有者是Administrators,而在Cygwin的bash shell中,所有者是Dan:

C:\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules>dir /Q FindJ*
 Volume in drive C is Windows7_OS
 Volume Serial Number is 92CA-8707

 Directory of C:\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules

12/30/2011  09:45 AM             1,480 BUILTIN\Administrators FindJasper.cmake
12/30/2011  09:45 AM             7,951 BUILTIN\Administrators FindJava.cmake
12/30/2011  09:45 AM            10,632 BUILTIN\Administrators FindJNI.cmake
12/30/2011  09:45 AM             1,669 BUILTIN\Administrators FindJPEG.cmake
               4 File(s)         21,732 bytes
               0 Dir(s)  132,524,654,592 bytes free


Dan@home /c/Program Files (x86)/CMake 2.8.7/share/cmake-2.8/Modules
$ ls -al FindJ*
-rwx------+ 1 Dan            None 10636 Jan 30 13:57 FindJNI.cmake
-rwx------+ 1 Administrators None  1669 Dec 30 09:45 FindJPEG.cmake
-rwx------+ 1 Administrators None  1480 Dec 30 09:45 FindJasper.cmake
-rwx------+ 1 Administrators None  7951 Dec 30 09:45 FindJava.cmake

怎么会这样?就像在同一目录中有两个不同的文件,它们具有相同的名称。

穆拜拜

由于Windows Vista(UAC引入了安全功能,任何试图写入受保护位置(例如“程序文件”)的非管理员程序都将捕获其写操作,并将其重定向到其他“用户友好”位置。

创建该文件的程序将能够看到该文件,但是大多数其他程序将看不到该文件。

Wikipedia指出(并且我已突出显示相关部分):

假设用户将以管理员权限运行的应用程序在使用受限用户帐户运行时会在Windows的早期版本中遇到问题,这通常是因为它们试图写入计算机范围或系统目录(例如Program Files)或注册表项(特别是HKLM)。UAC尝试使用文件和注册表虚拟化来缓解这种情况,该技术将写入(和后续读取)重定向到用户配置文件中每个用户的位置例如,如果应用程序尝试写入“ C:\ program files \ appname \ settings.ini”,而用户无权写入该目录,则写入将重定向到“ C:\ Users \ username” \ AppData \ Local \ VirtualStore \ Program Files \ appname \ settings.ini”。

因此,从理论上讲,您更改后的文件实际上已被写入C:\Users\YourUserName\AppData\Local\VirtualStore\Program Files (x86)\CMake 2.8.7\share\cmake-2.8\Modules

解决此限制的唯一方法是完全禁用UAC,出于安全考虑,不建议这样做。

最好的解决方案是您的路径中实际上应该有cmake,并且使用的是不受保护的位置,例如用户配置文件中的某个位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能在 Windows 7 上安装 pip?

来自分类Dev

为什么我的二进制文件可以在Windows 8上运行而不能在Windows 7上运行?

来自分类Dev

为什么我的二进制文件可以在Windows 8上运行而不能在Windows 7上运行?

来自分类Dev

为什么我的二进制文件可以在Windows 8上运行而不能在Windows 7上运行?

来自分类Dev

为什么我不能在 Pycharm 上运行我的文件?

来自分类Dev

XORing可执行文件时,为什么我的XOR程序不能在Windows上运行

来自分类Dev

为什么我的php文件不能在xamppp上运行?

来自分类Dev

为什么Windows EXE文件不能在Linux上运行?

来自分类Dev

为什么我不能在Windows 7上使用Cygwin SSH从Github克隆存储库?

来自分类Dev

为什么我不能在Windows 7上使用Cygwin SSH从Github克隆存储库?

来自分类Dev

为什么我不能在Windows上的nodejs中杀死我的子进程?

来自分类Dev

为什么我的python的socket.shutdown可以在Windows上运行而不能在Ubuntu上运行?

来自分类Dev

为什么我不能在Windows 7中格式化10 GB分区?

来自分类Dev

为什么我不能在Windows 7防火墙中设法阻止IP地址?

来自分类Dev

为什么我不能在Windows 7中禁用易用性工具?

来自分类Dev

为什么我不能在Windows 7中连接到此隐藏的无线设备?

来自分类Dev

为什么我不能在装有最新Java的Windows 10上运行CassandraDB?

来自分类Dev

为什么我不能在Windows 10上激活该分区?

来自分类Dev

为什么我不能在Windows 10上创建系统还原点?

来自分类Dev

为什么我不能在Ubuntu中打开txt文件?

来自分类Dev

为什么我不能在桌子上继承父母的宽度?

来自分类Dev

为什么我的测试不能在MySQL上运行?

来自分类Dev

为什么我不能在类上使用ConditionalAttribute?

来自分类Dev

为什么我不能在Mac上正确安装ImageMagick?

来自分类Dev

为什么我不能在Ubuntu 12.04上编译GLIBC?

来自分类Dev

为什么我不能在Mac上安装任何gem?

来自分类Dev

为什么我不能在图像的画布上绘画?

来自分类Dev

为什么我的冻结期货不能在单核上运行?

来自分类Dev

为什么我的flask命令不能在Heroku上运行?

Related 相关文章

  1. 1

    为什么我不能在 Windows 7 上安装 pip?

  2. 2

    为什么我的二进制文件可以在Windows 8上运行而不能在Windows 7上运行?

  3. 3

    为什么我的二进制文件可以在Windows 8上运行而不能在Windows 7上运行?

  4. 4

    为什么我的二进制文件可以在Windows 8上运行而不能在Windows 7上运行?

  5. 5

    为什么我不能在 Pycharm 上运行我的文件?

  6. 6

    XORing可执行文件时,为什么我的XOR程序不能在Windows上运行

  7. 7

    为什么我的php文件不能在xamppp上运行?

  8. 8

    为什么Windows EXE文件不能在Linux上运行?

  9. 9

    为什么我不能在Windows 7上使用Cygwin SSH从Github克隆存储库?

  10. 10

    为什么我不能在Windows 7上使用Cygwin SSH从Github克隆存储库?

  11. 11

    为什么我不能在Windows上的nodejs中杀死我的子进程?

  12. 12

    为什么我的python的socket.shutdown可以在Windows上运行而不能在Ubuntu上运行?

  13. 13

    为什么我不能在Windows 7中格式化10 GB分区?

  14. 14

    为什么我不能在Windows 7防火墙中设法阻止IP地址?

  15. 15

    为什么我不能在Windows 7中禁用易用性工具?

  16. 16

    为什么我不能在Windows 7中连接到此隐藏的无线设备?

  17. 17

    为什么我不能在装有最新Java的Windows 10上运行CassandraDB?

  18. 18

    为什么我不能在Windows 10上激活该分区?

  19. 19

    为什么我不能在Windows 10上创建系统还原点?

  20. 20

    为什么我不能在Ubuntu中打开txt文件?

  21. 21

    为什么我不能在桌子上继承父母的宽度?

  22. 22

    为什么我的测试不能在MySQL上运行?

  23. 23

    为什么我不能在类上使用ConditionalAttribute?

  24. 24

    为什么我不能在Mac上正确安装ImageMagick?

  25. 25

    为什么我不能在Ubuntu 12.04上编译GLIBC?

  26. 26

    为什么我不能在Mac上安装任何gem?

  27. 27

    为什么我不能在图像的画布上绘画?

  28. 28

    为什么我的冻结期货不能在单核上运行?

  29. 29

    为什么我的flask命令不能在Heroku上运行?

热门标签

归档