none
script powershell con comandos ADSI RRS feed

  • Pregunta

  • Hola.

    Estoy haciendo un script powershell para deshabilitar cuentas Active Directory. Lo que quiero es:

    a) deshabilitar la cuenta

    b) En descripcion poner la fecha en que se deshabilita

    c) Ocultar la cuenta de la libreta de direcciones.

    El script que tengo me realiza los pasos a) y b) si lo ejecuto en un controlador de dominio. Los comandos son:

    $objUser = [ADSI] "LDAP:// " + $distinguishedname

        $objUser.Put("description",$fecha)
        $objUser.psbase.invokeset("AccountDisabled","True")
        $objUser.SetInfo()

    Si esto lo ejecuto desde un servidor de correo, entonces lo deshabilita pero no le cambia la descripción.

    Necesito ejecutarlo desde un servidor de correo puesto que luego ejecuto un comando que solo está en los servidores exchange (set-mailbox) para ocultar la cuenta de la libreta de direcciones.

    ¿Conocéis si hay alguna forma de hacer que powershell ejecute los comandos en otro servidor? De este modo, estando en el servidor de correo podría lanzar el script haciendo que los comandos que deshabilitan la cuenta y le cambian la descripción se ejecutasen realmente en el controlador de dominio.

     

    Muchas gracias.

     

    Miguel

     

    viernes, 30 de septiembre de 2011 15:18

Respuestas

  • Ya lo he conseguido, necesito ejecutar SetInfo() después de cada modificación, es decir, tengo que hacer esto:

    $objUser = [ADSI] "LDAP:// " + $distinguishedname

        $objUser.Put("description",$fecha)

        $objUser.SetInfo()

        $objUser.psbase.invokeset("AccountDisabled","True")
        $objUser.SetInfo()

    Sin embargo, si lo ejecuto directamente desde un controlador de dominio, con poner un solo SetInfo() al final funciona.

    viernes, 30 de septiembre de 2011 16:18