none
Optimizar bat en AD? RRS feed

  • Pregunta

  • Hola a tod@s!

    Me gustaría saber si hay alguna forma de optimizar los .bats que se cargan en cada usuario al iniciar la sesión ya que a veces le cuesta bastante en desaparecer la ventana de cmd cuando inicias sesion, y si hay alguna para evitar que se vea lo que se esta ejecutando en el cmd tambien estaría bien, os copio el .bat de un usuario:

    @echo off
    net use * /delete /yes > nul
    rem
    net use t: \\x.x.x.x\programa  > nul
    net use h: \\x.x.x.x\General   > nul
    net use p: \\x.x.x.x\user     > nul
    net use q: \\x.x.x.x\Escaner   > nul
    net use r: \\x.x.x.x\rutas   > nul
    net use s: \\x.x.x.x\temporal  > nul
    net time \\servidor.dominio.net /set /yes
    powercfg /setactive "escritorio u oficina"
    powercfg /change "escritorio u oficina" /monitor-timeout-ac 45
    powercfg /change "escritorio u oficina" /disk-timeout-ac 0
    powercfg /change "escritorio u oficina" /standby-timeout-ac 0
    powercfg /change "escritorio u oficina" /hibernate-timeout-ac 0
    gpupdate /force

    PD: Estos .bats funcionan correctamente pero me gustaría saber si se podría optimizar mediante algunos otros comandos.


    Gracias de antemano



    Un saludo
    miércoles, 30 de diciembre de 2009 9:25

Respuestas

  • danonedecoco, si a los scripts de inicio de sesión de usuarios, los asignas por GPO, y no por usuario, además de ahorrarte el trabajo de hacerlo usuario por usuario, por omisión corren en forma oculta, por lo que el usuaro no va a ver la ventana de CMD

    Por otro lado algunos comentarios sobre el bat en cuestión
    Si el usuario es usuario solamente, par el NET TIME no tiene permisos, y además si la máquina pertence a un dominio, pues durante el arranque ya se sincronizó con el Emulador PDC del dominio.

    Los otros de POWERCFG tengo dudas si un usuario normal tiene privilegios para hacerlo

    Para lo que entiendo quieres hacer con el GPUPDATE /FORCE creo que hay una mejor opción :-)
    Tú quieres forzar la apliación de las GPOs en el arranque, pero resulta que desde XP en adelante, el sistema utilza siempre que pueda "cached credentials" lo cual implica que el usuario llega al escritorio cuando todavía muchas veces no levantó la red.
    Por GPO tienes una configuración al respecto: configuración de equipo / Plantillas Administrativas / Sistema / Inicio de sesión / Esperar siempre la detección de red al inicio del equipo y sesión
    Demorará un poco más en arrancar pero te aseguras que se apliquen inmediatamente los cambios en las GPOs

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    • Marcado como respuesta danonedecoco lunes, 4 de enero de 2010 10:37
    miércoles, 30 de diciembre de 2009 15:15
    Moderador

Todas las respuestas

  • Buenas Danonecoco,

    Para mapear unidades puedes seguir utilizando un bat parra inicio se sesion.
    COn Windows 2008 tienes la posibilidad de hacer dicha accion mediante GPO.

    Luego la configuracion de opciones de energia que tienes prueba de hacerla mediante GPO, o bien la pasas una vez y dicha configuracion se mantendra permanente en el perfil.
    MCSE Formador y Consultor Microsoft.
    miércoles, 30 de diciembre de 2009 9:43
  • danonedecoco, si a los scripts de inicio de sesión de usuarios, los asignas por GPO, y no por usuario, además de ahorrarte el trabajo de hacerlo usuario por usuario, por omisión corren en forma oculta, por lo que el usuaro no va a ver la ventana de CMD

    Por otro lado algunos comentarios sobre el bat en cuestión
    Si el usuario es usuario solamente, par el NET TIME no tiene permisos, y además si la máquina pertence a un dominio, pues durante el arranque ya se sincronizó con el Emulador PDC del dominio.

    Los otros de POWERCFG tengo dudas si un usuario normal tiene privilegios para hacerlo

    Para lo que entiendo quieres hacer con el GPUPDATE /FORCE creo que hay una mejor opción :-)
    Tú quieres forzar la apliación de las GPOs en el arranque, pero resulta que desde XP en adelante, el sistema utilza siempre que pueda "cached credentials" lo cual implica que el usuario llega al escritorio cuando todavía muchas veces no levantó la red.
    Por GPO tienes una configuración al respecto: configuración de equipo / Plantillas Administrativas / Sistema / Inicio de sesión / Esperar siempre la detección de red al inicio del equipo y sesión
    Demorará un poco más en arrancar pero te aseguras que se apliquen inmediatamente los cambios en las GPOs

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    • Marcado como respuesta danonedecoco lunes, 4 de enero de 2010 10:37
    miércoles, 30 de diciembre de 2009 15:15
    Moderador
  • Hola de nuevo,

    Raul:
    Perdona, no habia dicho que tenia windows 2003 server, respecto a lo de las opciones de energia no encuentro la GPO en el AD.

    Guillermo:
    El usuario es administrador de la propia máquina pero no del dominio, de ahi quede modificar en el Net Time y POWERCFG, tengo lo del Net Time porque hubo una temporada que cada reloj iva a una hora diferente y al final decidi meter este comando para que cogiera siempre la hora del servidor.
    Lo del GPUPDATE /FORCE es para que me actualiza las GPO al inicio de sesion por si ha habido algun cambio, creo que no hace falta ponerlo porque ya se va actualizando cada cierto tiempo pero como parece que me vaya mejor asi, lo he dejado tal cual.
    Te explico lo que tengo a ver si coincidimos en lo que estamos diciendo :). En el AD tengo separado por secciones distintas a los usuarios, ej: RRHH, Administración, Taller, Administradores... en cada una de ellas hay diferentes usuarios a los que les digo uno por uno que cargen un bat que he creado en: C:\WINDOWS\SYSVOL\sysvol\dominio.net\scripts. Luego, acabo de encontrar por GPO en configuracion de usuario/Plantillas Administrativas/sistema/Scripts he encontrado la opción de que se sincronicen el inicio de sesion con los scripts y de que no aparezca la ventana de cmd.
    Esa GPO que me dices que hace hace que carga el bat tambien mientras inicias la sesion?

    Gracias.

    miércoles, 30 de diciembre de 2009 17:00
  • Es mucho más fácil que lo que haces :-)

    En la GPO (lo paso en inglés que es lo que tengo adelante, pero lo encontrarás fácilmnte si tienes Spanish)
    User Configuration / Windows Settings / Scripts Logon/Logoff)
    Le das un doble click a Logon, luego al botón Show Files, *copias el BAT a esa ventana, la cierras, y luego con el botón Add agregas el BAT.

    Ya se replica automaticamente en todos los DCs del dominio, y se ejecuta automáticamente cada vez que se inicia sesión con un usuario afectado por dicha GPO.
    Y no hace falta hacer nada más, corren en forma asincrónica y oculta.
    Cuidado que para MSFT en este caso sincrónico o asincrónico no significa lo que todos entendemos.
    Sincrónico significa que si asignas más de un script (se puede por GPO) se ejecuta el primero, y recién cuando este finaliza comienza el segundo, así sucesivamente.
    Asincrónicamente es que ejecuta todos simultáneamente.

    Si a las máquinas se les iba el reloj, hay dos +1 posibilidad:
     - Posibilidad uno: hay problemas con la pila de los equipos
     - Posibilidad dos: no está disponible el controlador de dominio con el rol Emulador PDC
     - Posibilidad tres: la que es más difícil de soluionar. Cuando se lo empieza a tocar sin conocer mucho :-)

    El /FORCE del GUPDATE en realida es más para resolución de problemas. Implica que reaplique la GPO aunque no detecte cambios

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    miércoles, 30 de diciembre de 2009 20:08
    Moderador
  • No sabía que existia esa forma para cargar bats, supongo que de esta forma se hará mas rápidamente, el "año que viene" los pasare a todos como me dices Guillermo, supongo que esto lo tendre que poner en la carpeta general del AD que abarcará a todos los departamentos y cada vez que uno unicie sesion ya sea en el ordenador que sea, seguira teniendo sus permisos que tenia hasta ahora.
    La opción de logoff a que se refiere para que lo puedo utilizar? para que cuando apaguen algun pc que ejecuten algun comando que le pueda poner yo por ejemplo? no le encuentro mucha utilidad si es para eso...

    Gracias por la ayuda Guillermo.


    Un saludo
    jueves, 31 de diciembre de 2009 10:43
  • De esa forma se pueden cargar no sólo BATs, sino también VBSs, y cualquier otra forma de script que el sistema pueda ejecutar.

    No hayque ponerlo en una carpeta general de AD, sino que en cada OU donde tengas diferentes mapeos de discos le pones un GPO diferentes.
    Salvo que sea lo mismo para todos los usuarios del AD, en cuyo caso directamente vinculas la GPO al dominio, y no a cada OU.

    Hay cuatro niveles de script por GPO, dos por máquina (Startup y Shutdown) y dos por usuario (Logon y Logoff). Puedes utilizarlo para diferentes fines, por ejemplo, que cuando un usuario cierre sesión copie algunos archivos a una carpeta central del servidor, etc.
    Lo que hay que tener en cuenta es que, por omisión, hay un timeout de 10 minutos sobre cada uno.

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    jueves, 31 de diciembre de 2009 11:42
    Moderador
  • No se si lo he comprendido correctamente, voy a explicarme lo que he entendido:

    - Active directory Users and Computers
        - Saved Queries
        - Dominio.net
            - Builtin
            - ...
            - Dominio
                - Administracion
                - RRHH
                - Portatiles
                - ...

    Me estas diciendo que en las propiedades de Administracion, RRHH y las que continuan abajo, que vaya agregando los bats de los usuarios para que carguen todo lo que esta puesto en el bat?. Cada usuario carga unas unidades de red comunes y tambien carga una unidad propia por usuario.
    Si agrego a todos los usuarios su bat adecuado en la carpeta de Dominio, no funcionaria igual?

    Disculpa si no te he comprendido bien pero no se que significa OU, creo que es lo que yo tengo por nombre de Administracion, RRHH, Portatiles...

    Respecto a la utilidad del Logoff es una buena idea por si quieres guardar alguna copia de seguridad del correo por ejemplo, o de cualquier cosa antes de que se apaga el PC.


    Gracias
    jueves, 31 de diciembre de 2009 12:35
  • No, no me has comprendido bien :-)

    Para darte los pasos exactos debería saber si tienes instalado GPMC o no. Si la tuvieras instalada los pasos son parecidos aclaro abajo.

    El sistema es vincular una directiva (GPO) a la unidad organizativa (OU) donde están las cuentas de usuario. Si fuera a todos todos los usuarios del domininio entonces la directiva (GPO) la puedes vincular directamente al dominio.

    Suponiendo que tuvieras todos los usuarios en un Unidad Organiztiva (OU de acá en más). En Active Directory Users and Computers, expandes el dominio, y click en la OU (por ejemplo la que has puesto RRHH). Ahora con botón derecho Propiedades, una de las fichas que aparecerá es para crear y vincular automáticamente la GPO donde pondrás el script.

    Si en esta ficha sólo aparece el botón "Open" es porque tienes instalado GPMC (Group Policy Management Console), le das al botón Open, y haces exactamente el mismo procedimiento anterior pero dentro del GPMC

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    jueves, 31 de diciembre de 2009 15:33
    Moderador
  • Hola de nuevo y feliz año ;D

    Perdona por no contestarte antes Guillermo,

    Si que te he entendido, pero no me explique yo bien. Cuando le pulsas propiedades en la OU en la pestaña de Group Polyce añado una nueva o modifico la que tengo creada añadiendo el script en el logon.

    Gracias
    lunes, 4 de enero de 2010 9:31
  • El resultado final será el mismo con cualquiera de las dos opciones :-)

    Si siempre que se aplique lo que tienes en esa GPO, se aplicará también el script, lo puedes hacer en la misma
    Si a veces necesitas aplicar las configuraciones de esa GPO, pero no el script, se puede hacer en nueva GPO

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    lunes, 4 de enero de 2010 10:22
    Moderador
  • En tema de rapidez en aplicarse las GPOs será el mismo teniendolo todo en una misma GPO que en varias verdad?, el tema de aplicar varias GPOs supongo que será por tenerlo mas organizado, teniendo en cuenta que las de arriba prevalecen con las de abajo y así sucesivamente.

    Gracias por la ayuda.


    Un saludo.

    lunes, 4 de enero de 2010 10:37
  • Una GPO con "100 configuraciones" es más rápida que "100 GPOs" con una configuración cada una :-)

    Hay que usar "buen criterior", sin ir a extremos. Exagerando: una configuración por cada GPO da el máximo de flexibilidad, pero la peor velocidad. Todas las configuraciones en una única GPO, da velocidad, pero no flexibilidad.

    Guillermo Delprato - MVP-MCT-MCITP-MCTS-MCSE MCITP: Server Administration MCTS:Active Directory/Network Infrastructure Buenos Aires, Argentina
    lunes, 4 de enero de 2010 10:51
    Moderador
  • Ha quedado claro, Gracias Guillermo.
    lunes, 4 de enero de 2010 16:03