Tengo un dominio de Microsoft (principalmente 2008r2\7).
Estoy buscando una manera de ejecutar un script inmediatamente después (del reinicio después) de unirme a un dominio (sin requerir el inicio de sesión del usuario), y hasta ahora he fallado.
Además, quiero que se ejecute sólo una vez, por lo que programar una tarea repetida no es una opción.
Me parece un desperdicio dejarlo funcionar una y otra vez.
Probé un GPO con script de inicio, pero cuando la computadora recibe el GPO, es mucho después del inicio.
También probé un GPO con una tarea programada (con diferentes activadores), pero tampoco funcionaron:
el activador "Al inicio" falla al igual que el script de inicio.
"En la creación de la tarea" falla, supongo, porque no se crea de la forma habitual.
"Según lo programado" es irrelevante, porque necesito que se ejecute inmediatamente después de unirme (y establecer una fecha que ya había pasado no funcionó).
No pude encontrar ninguna clave de registro relevante, pero supongo que tendrían el mismo problema que el script de inicio de GPO.
La única idea que podría hacer lo que necesito es adjuntar una tarea al evento relevante en los DC y ejecutar el script de forma remota.
¿Alguna sugerencia mejor?
--Editar--
Por las respuestas (que son geniales, pero no son suficientes), tengo algunos puntos que agregar:
1. La pregunta se aplica a ambos servidores (2008r2\2012\2012r2), aunque he Probado solo en 2012r2.
2. Estoy buscando una solución más parecida a una ejecución única, lo que significa que no quiero que se ejecute interminablemente hasta que se cumpla alguna condición.
3. Usamos imágenes para implementar servidores y estaciones de trabajo, pero no puedo usar una solución que implique editarlas porque a) Eso requeriría que las actualice cada vez que necesito cambiar algo en mi script b) BYOD.
4. No utilizamos un script de unión (simplemente no lo necesitamos...), por lo que empezar a utilizar uno me parece un desperdicio. Además, hay algunos problemas con él (por ejemplo, ¿dónde debería colocarlo? ¿En la imagen? ¿En una ubicación compartida? ¿Qué pasa con los BYOD? Eso anularía el punto 3).
Gracias.
Respuesta1
Agregue una clave de registro personalizada a su imagen de compilación, solo un simple valor '1' en alguna parte.
Agregue una tarea programada que verifique el valor de la clave de registro a la imagen de compilación, agregue verificaciones para su nombre de dominio en esta clave de registro
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters
Si encuentra ambos, ejecute su script, luego cambie la clave de registro personalizada a 0 al finalizar. Haga que esta tarea se ejecute al inicio.
Luego puede dejar esta tarea tal como está o tener un gpo que elimine la tarea programada. Sin embargo, si lo deja en su lugar y alguna vez necesita volver a ejecutar el script, puede cambiar la clave de registro nuevamente a 1 y reiniciar.
Un pequeño problema de seguridad es que la tarea programada deberá ejecutarse como una cuenta de administrador local.
Respuesta2
¿No es necesario reiniciar después de unirse al dominio de todos modos? Si creó una secuencia de comandos de inicio, se aplicaría inmediatamente después del reinicio, cuando cargue los otros objetos de política de grupo.
¿Cómo te unes al dominio ahora? También puedes integrar la unión al dominio en tu script. Con Powershell esto se hace con Add-Computer, desde la línea de comandos puedes usar netdom.
Por lo general, integraría esto en su secuencia de tareas, si está utilizando una herramienta de administración de configuración.
Respuesta3
¿Cómo se realiza la unión? ¿Interacción GUI manual o mediante un script? Si es un script, agregue una línea al script de unión para que el segundo script se ejecute a través de la clave de registro RunOnce.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce https://msdn.microsoft.com/en-us/library/windows/desktop/aa376977%28v=vs.85%29.aspx
---COMENZAR EDITAR---
¡Doh! Bien
Pensando en el retraso de su comentario sobre la aplicación de GPO... Trabajo principalmente en sistemas operativos de servidor que realizan procesamiento de GPO sincrónico. Las estaciones de trabajo funcionan asíncronamente. Pruebe esto para obtener asincronía:
En su proceso/imagen de compilación, intente deshabilitar la "Optimización de inicio de sesión rápido"
https://technet.microsoft.com/en-us/magazine/gg486839.aspx
Configuración del equipo\Plantillas administrativas\Sistema\Inicio de sesión
Espere siempre a que la red se inicie e inicie sesión en el equipo = Habilitado
Crear un GPO de secuencia de comandos de inicio de GPO:
Configuración de la computadora/Políticas/Configuración de Windows/Scripts/Inicio
Dentro del script que definas allí, usa este código:
$built = gwmi Win32_OperatingSystem | foreach {[System.Management.ManagementDateTimeconverter]::ToDateTime($_.InstallDate)}
if ($built -gt (get-date).addHours(-4)) {
"do something"
}
Respuesta4
Solía trabajar en las escuelas.
Y automatizamos el proceso de unión y secuencias de comandos (tener una imagen perfecta para implementar que dure años puede ser una utopía). Entonces usamos WDS/MDT para implementar.
Completamos el archivo de respuesta .xml, por lo que nuestras imágenes de multidifusión implementadas se unen en una instalación de OU (unidad organizativa) y aplicamos GPO para la secuencia de comandos final y salimos de la instalación de OU.
De esa manera solo tenemos que cambiar el nombre de la estación de trabajo con el nombre correcto y colocarla en la unidad organizativa correcta.