当前位置:  开发笔记 > 编程语言 > 正文

DirectoryEntry.NativeObject为Windows 2008中的Administrators组中的用户抛出拒绝访问

如何解决《DirectoryEntry.NativeObject为Windows2008中的Administrators组中的用户抛出拒绝访问》经验,为你挑选了1个好方法。

我有一个本地用户,它是Administrators本地组的成员.

当我运行此代码时:

using System;
using System.DirectoryServices;

namespace nanttest
{
    class Program
    {
        public static void Main(string[] args)
        {
            using(DirectoryEntry entry = new DirectoryEntry("IIS://localhost/W3SVC"))
            {
                object absobject = entry.NativeObject;
                Console.WriteLine("Name: {0}", entry.Name);
            }

            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

我收到:

未处理的异常:System.Runtime.InteropServices.COMException(0x80070005):访问被拒绝.

在System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)中的System.DirectoryServices.DirectoryEntry.Bind()at System.DirectoryServices.DirectoryEntry.get_NativeObject()at nanttest.Program.Main(String [] args)in c:\ Work \nanttest \nanttest\Program.cs:第20行

如果我以管理员身份登录时运行此代码,则可以正常工作.

此外,如果我以DomainAdmin用户身份登录,则此代码将失败.我已将MYDOMAIN\DomainAdmins和MYDOMAIN\mydomainuser添加为本地Administrators组的成员.

我应该为这些用户添加哪些其他权限,以便他们可以运行此代码.



1> Sunny Mileno..:

要回答我自己的问题,其他人可以找到解决方案:

问题出在Windows 2008中的默认UAC设置.即使用户在Administrators组中,他/她仍然需要提升权限才能运行某些操作(上面的一个似乎是其中之一).

因此,解决方案1 ​​ - 使用"以管理员身份运行"运行应用程序,或者从使用该选项启动的命令提示符启动它.

方案2:禁用UAC的管理员组-我已经使用方法#3,从这篇文章(组策略更改).请记住在这些更改后重新启动服务器.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有