2

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() で System.DirectoryServices.DirectoryEntry.get_NativeObject() で nanttest.Program.Main(String[] args) で c:\Work\ nanttest\nanttest\Program.cs:20行目

管理者としてログインしているときにこのコードを実行すると、問題なく動作します。

また、DomainAdmin ユーザーとしてログインして実行すると、このコードは失敗します。MYDOMAIN\DomainAdmins と MYDOMAIN\mydomainuser をローカルの Administrators グループのメンバーとして追加しました。

これらのユーザーがこのコードを実行できるようにするには、他にどのようなアクセス許可を追加する必要がありますか?

4

1 に答える 1

6

私自身の質問に答えて、他の人が解決策を見つけることができるようにするには:

問題は、Windows 2008 のデフォルトの UAC 設定にあります。ユーザーが管理者グループに属している場合でも、一部の操作を実行するには昇格された権限が必要です (上記の操作はその中にあるようです)。

したがって、解決策 1 - 「管理者として実行」を使用してアプリケーションを実行するか、そのオプションで起動されたコマンド プロンプトから起動します。

解決策 2: 管理者グループの UAC を無効にする -この記事(グループ ポリシーの変更) の方法 3 を使用しました。これらの変更後、忘れずにサーバーを再起動してください。

于 2008-11-04T22:51:27.240 に答える