Pregunta

Tengo algunos scripts que me gustaría que se ejecute cada vez que un usuario cierra la sesión. Me gustaría crear algo que programáticamente pone en marcha los scripts de cierre de sesión. Por ejemplo, un archivo cmd que se puede ejecutar para agregar la secuencia de comandos de cierre de sesión a la lista de secuencias de comandos de cierre de sesión de Windows que se ejecuta exe o. Debido a esto, una función API de Windows o un comando shell de Windows sería preferible, pero no puedo encontrar dichas funciones o comandos para ayudar con esto.

he comprobado en las ediciones del Registro que el editor de directivas de grupo local hace que cuando lo utiliza para agregar una secuencia de comandos de cierre de sesión a la política del grupo, pero hace un montón de cosas que no estoy seguro de que pueda imitar. Por ejemplo, tiene una gran cantidad de cambios de registro, y utiliza los códigos numéricos que aparecen en algunas de las claves de registro y los datos binarios en algunos de los valores. No sabría lo que los valores representan.

He tratado subconjuntos de los cambios que GPEdit hace con la esperanza de que al hacerlo puede funcionar. Por ejemplo, he exportado los cambios incorporados al HKCU \ Software \ Policies \ Microsoft \ Windows \ System \ Scripts \ cierre de sesión y los importó en otro PC, pero eso no funcionó, y el MMC GPEdit no estaba al tanto de que incluso me había hecho la cambio.

Como ya he dicho, un conjunto de funciones de la API de Windows o un comando shell de Windows sería preferible si alguien sabe de alguna que pudiera ayudar, pero si alguien sabe de una manera de decodificar el montón de información que GPEdit hace de una manera que podía burlarse de él entonces no estoy en contra de hacer cambios en el registro, siempre y cuando sean estables.

Cualquiera que sea la solución que encuentro y uso, tiene que ser capaz de ser automática y fiable, ya que será ejecutado de forma remota en muchos ordenadores con psexec, y también será incluido en los procesos de instalación automatizada para futuros PCs que se establecen arriba.

Desafortunadamente, esto parece ser un tema difícil para Google, como muchas otras cosas que la gente está tratando de hacer que muchas de las mismas palabras clave que me consulta para, pero no son en realidad el mismo tema. Por ejemplo, ganchos de cierre / cierre de sesión para ejecutar aplicaciones, o de forma remota a los usuarios cerrar la sesión.

Si alguien es un asistente de registro o MMC de Windows y piensa que al ver un volcado del registro de cambios que el MMC GPEdit hace cuando se hace lo mismo sería de gran ayuda a continuación, sólo dilo, y voy a hacer que la disposición ya que' ve ya capturado. Dudo que ese es el camino a seguir, sin embargo he empezado a buscar en la forma de crear MMC de herramientas; mi pensamiento es que tal vez el GPEdit complemento en sí mismo puede ser ingeniería inversa de modo que pueda ver exactamente lo que está haciendo de una manera sencilla. Esto no va a ninguna parte rápido, sin embargo, ya que ninguno de los archivos .adm que veo parecen tener la configuración de este, y el archivo gpedit.msc no parecen tener nada que pudiera dar a la basura en la parte de texto plano, aunque hay es una sección en el mismo que aparece como un galimatías, por lo que tal vez hay algún tipo de magia pasando ahí.

¿Fue útil?

Solución

El programador de tareas puede hacer esto como de Windows Vista. Para Windows XP y anterior, no parece ser una buena respuesta. XP no tiene el "En desconectarse de una sesión de usuario" gatillo se enumeran a continuación.

Hay dos principales utilidades de línea de comandos para la programación de tareas de Windows: at.exe y schtasks.exe. Por sí mismos, ni parecen proporcionar todas las opciones que se pueden obtener de la interfaz gráfica de usuario (aunque schtasks está muy cerca). Sin embargo, el programador de tareas tiene un formato XML que describe las tareas programadas, y schtasks.exe tiene una opción para tareas de importación de un archivo XML.

Para crear un script de cierre de sesión, crear un archivo XML que describe la tarea que desea crear. Asegúrese de utilizar un disparador de "En desconectarse de una sesión de usuario" y seleccione el registro fuera de "cualquier usuario" (que requiere privilegios elevados) y "la conexión desde el ordenador local." Configurar todas las acciones de cierre de sesión deseados (tales como las secuencias de comandos de cierre de sesión) como acciones de las tareas.

Microsoft tiene una lista de ejemplos de tareas de desarrollo para el programador de tareas, incluyendo ejemplos XML. Puede encontrar esta lista aquí .

Como alternativa, puede configurar su tarea una vez utilizando la herramienta de interfaz gráfica de usuario, entonces usted puede hacer clic en la tarea donde aparece en la lista de tareas y seleccione "Exportar". Obtendrá un ahorro de diálogo que le permitirá guardar la tarea en formato XML.

Entonces la escritura de la configuración de la tarea con el comando siguiente:

schtasks /create /tn "Task Name Here" /XML "path to xml file here" /ru domain\username /rp "password"

Nota: parcial de crédito debe ir a user606602 por la sugerencia de utilizar el programador de tareas, aunque se sugiere el uso de la aplicación GUI, que, según mi pregunta, ¿no trabajo para esto. Traté de editar su respuesta con la versión con guión de su sugerencia de aceptar, pero una revisión de pares declinó la edición.

Otros consejos

¿No podrías utilizar el programador de tareas de Windows para iniciar los guiones?

Las versiones más recientes del programador de tareas (por ejemplo, Windows Server 2008, Windows Vista / 7) en caso de que permitir la opción de ejecutar secuencias de comandos que se activan cuando el usuario cierra la sesión.

Consulte aquí

Todo lo que necesita hacer es crear una nueva tarea, a continuación, crear un nuevo disparo. Desde esta ventana, seleccione 'On desconectarse de una sesión de usuario en el menú desplegable, a continuación, seleccione las secuencias de comandos que desea ejecutar desde la pestaña 'Acciones' en la ventana de configuración de la tarea.

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