Question

J'ai quelques scripts que je voudrais courir chaque fois utilisateur se déconnecte. Je voudrais créer quelque chose qui définit les scripts programatically de fermeture de session. Par exemple, un exe ou un fichier cmd qui peut être exécuté pour ajouter le script à la liste logoff des scripts de fermeture de session que Windows exécute. À cause de cela, une fonction API Windows ou une commande shell Windows serait préférable, mais je ne trouve pas ces fonctions ou commandes à aider.

J'ai vérifié sur les modifications de registre que l'éditeur de stratégie de groupe local fait quand vous l'utilisez pour ajouter un script de fermeture de session à la politique du groupe, mais il fait beaucoup de choses que je ne suis pas sûr que je peux imiter. Par exemple, il fait beaucoup de modifications de registre et utilise des codes numériques dans certaines des clés de registre et les données binaires dans certaines des valeurs. Je ne sais pas ce que les valeurs représentent.

J'ai essayé des sous-ensembles des changements qui GPEdit fait dans l'espoir que le faire serait encore travailler. Par exemple, j'ai exporté les modifications qu'elle a apportées à HKCU \ Software \ Policies \ Microsoft \ Windows \ System \ Scripts \ Logoff et les importaient sur un autre PC, mais cela ne fonctionne pas, et la console MMC GPEdit ne savais pas que je l'avais même fait la changement.

Comme je l'ai dit, un ensemble de fonctions API Windows ou une commande shell Windows serait préférable si quelqu'un sait quelque qui pourrait aider, mais si quelqu'un connaît un moyen de décoder le tas d'informations qui GPEdit fait d'une manière qui Je pourrais en moquer alors je ne suis pas contre des changements de registre aussi longtemps qu'ils sont stables.

Quelle que soit la solution que je trouve et à l'utilisation, il doit pouvoir être automatique et fiable, car il sera exécuté à distance sur de nombreux ordinateurs avec psexec, et il sera également inclus dans les processus de configuration automatique pour les futurs PC qui sont ensemble vers le haut.

Malheureusement, cela semble être un sujet difficile à Google pour, comme beaucoup d'autres choses que les gens essaient de faire ont beaucoup des mêmes mots clés que je recherche pour, mais ne sont pas vraiment le même sujet. Par exemple, des crochets d'arrêt / fermeture de session pour les applications en cours d'exécution, ou à distance la connexion des utilisateurs au large.

Si quelqu'un est un assistant de registre ou MMC Windows et pense que voir une décharge du registre change que la console MMC GPEdit fait quand faire la même chose serait utile alors dire tellement, et je ferai que disponible depuis I » avez déjà capturé. Je doute que ce soit la voie à suivre, mais j'ai commencé à examiner la façon de créer composant logiciel enfichable MMC outils; ma pensée est que peut-être le GPEdit se composant logiciel enfichable peut être inversée Engineered pour que je puisse voir exactement ce qu'il fait de manière simple. Cela ne va nulle part rapide mais, comme aucun des fichiers .adm que je vois semblent avoir les paramètres pour cela, et le fichier gpedit.msc ne semble pas avoir quoi que ce soit qui le donner dans la partie texte clair, bien qu'il y ait est une section dans ce qui apparaît comme charabia, alors peut-être il y a une sorte de magie se passe là-bas.

Était-ce utile?

La solution

Le planificateur de tâches peut le faire à partir de Windows Vista. Pour Windows XP et précédent, il ne semble pas être une bonne réponse. XP n'a pas le déclencheur « à la déconnexion d'une session utilisateur » ci-dessous.

Il y a deux principales utilités de ligne de commande pour la planification des tâches dans Windows: at.exe et schtasks.exe. En eux-mêmes, ne semblent fournir toutes les options que vous pouvez obtenir à partir de l'interface graphique (bien que très proche schtasks vient). Cependant, le Planificateur de tâches a un format XML qui décrit les tâches planifiées et schtasks.exe a une option pour les tâches d'importation à partir d'un fichier XML.

Pour créer un script de fermeture de session, créez un fichier XML qui décrit la tâche que vous voulez créer. Assurez-vous d'utiliser un déclencheur de « la déconnexion d'une session utilisateur » et sélectionnez le journal hors de « tout utilisateur » (qui requiert des privilèges élevés) et « la connexion de l'ordinateur local. » Mettre en place toutes les actions souhaitées (déconnexions telles que vos scripts) que les actions déconnexions de travail.

Microsoft a une liste d'exemples pour le développement de tâches pour le planificateur de tâches, y compris des exemples de XML. Vous trouverez cette liste .

Vous pouvez configurer votre tâche une fois à l'aide de l'outil GUI, vous pouvez cliquer droit sur la tâche où il apparaît dans la liste des tâches et sélectionnez « Exporter ». Vous obtiendrez une sauvegarde de dialogue qui vous permettra d'enregistrer la tâche au format XML.

Je puis le script de la configuration de la tâche avec la commande suivante:

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

Note: crédit partiel devrait aller à user606602 pour la suggestion d'utiliser le planificateur de tâches, mais il suggère l'utilisation de l'application GUI qui, selon ma question, ne fonctionnerait pas pour cela. J'ai essayé de modifier sa réponse avec la version scénarisée de sa suggestion puis accepter, mais un examen par les pairs déclinai l'édition.

Autres conseils

Pouvez-vous pas simplement utiliser le planificateur de tâches de Windows pour lancer les scripts?

Les versions plus récentes du planificateur de tâches (par exemple Windows Server 2008, Windows Vista / 7) devrait vous permettre la possibilité d'exécuter des scripts qui sont déclenchés lorsque l'utilisateur se déconnecte.

Voir ici

Tout ce que vous devez faire est de créer une nouvelle tâche, puis créer un nouveau déclencheur. Dans cette fenêtre, sélectionnez « la déconnexion d'une session utilisateur » dans le menu déroulant, puis sélectionnez les scripts que vous souhaitez exécuter à partir de l'onglet « Actions » dans la fenêtre de configuration des tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top