admin 管理员组

文章数量: 887016

  起因是这样的,程序需要访问网络文件,我就用资源管理器映射了网络驱动器。程序还需要访问数据库等操作,而操作系统是Windows 7,所以以管理员身份运行此程序,否则无法访问数据库。然而,程序竟然报系统找不到指定的路径,CreateFile失败,GetLastError返回3,但是资源管理器和其他程序却能访问这个文件。后来我不知什么时候把UAC给禁用了,程序竟然能访问那个文件了,我也不知道什么原因,反正能访问就行,也就没管了。

  后来新电脑装了Win10,也遇到相同问题,资源管理器明明能访问到网络文件的,可程序死活报系统找不到指定的路径。后来想到关UAC这事儿就把UAC给关了,程序果然能访问到网络文件。我以为事情就这样顺利的解决了,然而事实却并不是这样,当我浏览图片时,却打不开Photos,见下图:

  

  后面还发现edge浏览器也打不开。网上一查,原来Win10禁用UAC后,系统内置的程序就打不开了。

  真是一波平了,一波又起,一个问题引出另一个问题,微软越来越给人添堵。为了解决禁用UAC后能打开系统内置程序,我经历千辛万苦,不断的在网上搜索,终于在我不懈的努力下……证明此法是不可行的,没有办法在禁用UAC的情况下运行系统内置程序。

  没有办法,就只有打开UAC,然后想其他方法解决程序无法访问网络文件的问题。这次终于不付有心人,在我不懈的努力下,终于找到了原因,在Programs may be unable to access some network locations after you turn on User Account Control in Windows Vista or newer operating systems和Some Programs Cannot Access Network Locations When UAC Is Enabled里有说明,大概意思是映射网络驱动器的程序和访问网络驱动器的程序不是在同一个会话内,导致访问不到指定的文件。

  然后我做了个测试,在这种情况下,开两个CMD窗口,其中一个是以管理员身份运行的,然后分别使用net use命令来映射网络驱动器,并分别访问对方映射的路径,会发现这两个CMD窗口只能访问自己映射的路径,不能访问对方映射的路径。

  找到了原因就好解决了,上面两篇文章中也给出了不同的解决方案。前者可以用以管理员身份运行的CMD窗口映射网络驱动器,这样以管理员身份运行的程序就能访问这个路径,但是资源管理器上是不能看到这个映射的路径。后者修改注册表,不分彼此,不管是否以管理员身份运行,映射的网络驱动器,所有程序都能看到,具体方法为:打开注册表,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System,新建DWORD值,名字为EnableLinkedConnections,值为1,然后重启电脑即可,如下图:

  

  

本文标签: 无法访问 操作系统 位置 网络 Windows