Pregunta

Tengo un usuario local, que es miembro del grupo local Administradores.

Cuando ejecuto este código:

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);
        }
    }
}

Recibo:

  

Excepción no controlada:   System.Runtime.InteropServices.COMException   (0x80070005): acceso denegado.

     

en   System.DirectoryServices.DirectoryEntry.Bind (Boolean   throwIfFail) en   System.DirectoryServices.DirectoryEntry.Bind ()   a   System.DirectoryServices.DirectoryEntry.get_NativeObject ()   en nanttest.Program.Main (String []   args) en   c: \ Work \ nanttest \ nanttest \ Program.cs: line   20

Si ejecuto este código mientras estoy conectado como Administrador, funciona bien.

Además, este código falla si lo ejecuto conectado como usuario de DomainAdmin. He agregado MYDOMAIN \ DomainAdmins y MYDOMAIN \ mydomainuser como miembros del grupo de Administradores locales.

¿Qué otros permisos debo agregar para estos usuarios, para que puedan ejecutar este código?

¿Fue útil?

Solución

Para responder mi propia pregunta, para que otros puedan encontrar una solución:

El problema es con la configuración predeterminada de UAC en Windows 2008. Incluso si un usuario está en el grupo Administradores, todavía necesita privilegios elevados para ejecutar algunas operaciones (la que aparece arriba parece estar entre ellas).

Entonces, solución 1: ejecute la aplicación usando " Ejecutar como administrador " ;, o iníciela desde un símbolo del sistema, que se inició con esa opción.

Solución 2: Deshabilite UAC para el grupo de administradores: he usado el método # 3 de este artículo (cambios de política de grupo). Recuerde reiniciar el servidor después de estos cambios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top