2 juanita Juanita 于 2016.02.26 16:59 提问

Win7文件夹访问权限问题

1.系统中建立dell用户,并将该用户添加到"Administrators"用户组下。如下图
图片说明
2.然后建立文件夹d:\local\9999,并且仅仅设置"Administrators"用户组能够完全控制该目录。如下图
图片说明
3.以dell用户登录Windows,自己编写程序访问d:\local\9999目录的话,会出现权限不足的错误。
3.只有在资源管理器中访问d:\local\9999目录时,出现如下图对话框。
图片说明
4.然后系统自动给d:\local\9999目录中添加了用户"dell"的完全控制权限。如下图
图片说明
5.这样程序访问d:\local\9999目录才正常。
为什么"dell"用户属于"Administrators"用户组,却不能正常的访问d:\local\9999目录呢?

4个回答

zuishikonghuan
zuishikonghuan   2016.02.26 18:38

这是因为微软为给Vista及后续版本Windows更换UAC而增加的一项机制叫“管理员以标准用户身份运行时”,简单说就是进程即使以管理员用户运行,那么他依旧可以是“标准用户权限”令牌,UAC开启时(这里的UAC开启和控制面板里的UAC滑块并无决定关系,可以通过组策略调整),Windows的Shell进程explorer.exe就是“管理员以标准用户身份运行时”,所以explorer不能访问这个文件夹,当你按下“继续”时,explorer创建一个COM对象要求这个COM提权,由于这个COM对象在系统的白名单里,AppInfo服务不创建UI交互进程直接允许提权,之后这个COM修改ACL(访问控制列表),并允许dell用户访问,这样“管理员以标准用户身份运行时”的explorer才有权限访问。

zuishikonghuan
zuishikonghuan 对了,你可以再创建这样的一个文件夹,分别直接运行和以管理员身份运行cmd,这两个cmd都是dell用户的,看看分别能不能访问
接近 2 年之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.02.26 17:07

直接点继续不就行了吗,,

Juanita
Juanita   2016.02.26 17:12

如果不在资源管理器中点击继续的话,我的程序访问该目录就会出错。

Juanita
Juanita   2016.02.26 17:15

我需要问的是为什么用户"dell"属于"Administrators"用户组,且该用户组对D:\local\9999目录有完全控制权限,为甚么不能直接访问该目录

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!