Ajout d'un script de fermeture de session
J'ai quelques scripts que j'aimerais exécuter à chaque fois qu'un utilisateur se déconnecte. Je voudrais créer quelque chose qui par programmation met en place les scripts de fermeture de session. Par exemple, un exe ou un fichier cmd qui peuvent être exécutées pour ajouter le script de fermeture de session à la liste des scripts de fermeture de session Windows s'exécute. De ce fait, une fonction API Windows ou Windows shell de commande serait préférable, mais je ne trouve pas de telles fonctions ou commandes pour vous aider avec ceci.
J'ai vérifié sur le registre des modifications que l'éditeur de stratégie de groupe fait quand vous l'utiliser pour ajouter un script de fermeture de session de stratégie de 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 du registre, et il utilise des codes numériques dans certaines des clés de registre et les données binaires dans certaines valeurs. Je ne sais pas ce que les valeurs représentent.
J'ai essayé des sous-ensembles de modifications que GPEdit n', dans l'espoir que cela fonctionne encore. Par exemple, j'ai exporté les modifications qu'il HKCU\Software\Policies\Microsoft\Windows\System\Scripts\Fermeture de session et les a importés sur un autre PC, mais cela ne fonctionne pas, et le GPEdit MMC était pas au courant que j'avais même fait le changement.
Comme je l'ai dit, un ensemble de fonctions de l'API Windows ou Windows shell de commande serait préférable si quelqu'un sait de certains qui pourraient aider, mais si quelqu'un connaît un moyen pour décoder le tas d'informations que GPEdit rend dans une manière que je pourrais en moquer ensuite, je ne suis pas contre faire des changements de registre tant qu'ils sont stables.
Quelle que soit la solution que j'ai trouver et à utiliser, il doit être capable d'être automatique et fiable, car il sera exécuté à distance par rapport à de nombreux ordinateurs avec psexec, et il sera également inclus dans le programme d'installation automatisée des processus pour les futurs Ordinateurs qui sont mis en place.
Malheureusement, cela semble être un sujet difficile à Google, comme beaucoup d'autres choses que les gens essaient de faire les mêmes mots clés que j'ai une requête, mais ne sont pas réellement des le même sujet. Par exemple, l'arrêt/fermeture crochets pour les applications en cours d'exécution, ou à distance de la déconnexion des utilisateurs.
Si quelqu'un est un registre de Windows ou MMC assistant et pense que le fait de voir un dump de la base de registre changements que le GPEdit MMC fait lorsque l'on fait la même chose serait utile, puis juste dire, et je vais faire ce qui est disponible depuis je l'ai déjà capturé. Je doute que c'est le chemin à parcourir, mais j'ai commencé à chercher dans la façon de créer le composant logiciel enfichable MMC-outils; ma pensée est que peut-être le GPEdit composant logiciel enfichable lui-même peut être à l'ingénierie inverse, de sorte que je peux voir exactement ce qu'il fait d'une manière simple. Ce n'est pas aller n'importe où rapidement cependant, comme aucun des .fichiers adm je vois semblent avoir les paramètres pour cela, et le gpedit.msc fichier n'apparaît pas à tout ce qui pourrait donner dans le texte clair de la partie, mais il ya une section dans ce qui apparaît comme du charabia, alors peut-être il y a une sorte de magie là-dedans.
Que voulez-vous dire? Tu veux dire faire un script d'ouverture de session qui se trouve juste ralenti pour toujours, qui s'exécute sous le contexte de l'utilisateur actuellement connecté, de sorte qu'il sera mis fin à la fermeture de session, et ont une fonction de sortie qui se passe après le main()? C'est une idée intéressante si c'est ce que tu veux dire. Serait-force de fermeture de session (comme l'arrêt -l-f) tout de même attendre la fin du processus (et ne normal de Windows script de fermeture de session, d'ailleurs, maintenant que j'y pense, mais je suppose que oui)? Je vais peut-être faire quelques essais.
Eh bien, pas impérativement un script d'ouverture de session, puisque ce n'est pas exactement léger 🙂 et aurait besoin d'être caché depuis le bureau...je pensais à un GUI-moins app qui fait partie du groupe de démarrage automatique (ou qui a commencé après ouverture de session utilisateur à l'aide de l'un de l'autre autostart crochets de Windows). Que l'on pouvait dormir pour toujours, et de déclencher tout ce que vous voulez lors de la résiliation. Puisque c'est une "application", sans interface graphique, il serait gérée comme n'importe quelle autre application lors de l'arrêt, y compris l'obtention tué lors de l'arrêt forcé etc.).
OriginalL'auteur Loduwijk | 2010-09-19
Vous devez vous connecter pour publier un commentaire.
Le planificateur de tâches peut le faire à partir de Windows Vista. Pour Windows XP et précédents, il ne semble pas être une bonne réponse. XP n'ont pas le "lors de la déconnexion d'une session utilisateur" déclencheur énumérés ci-dessous.
Il existe deux principaux utilitaires de ligne de commande pour l'ordonnancement des tâches dans Windows: at.exe et schtasks.exe. Par eux-mêmes, ne semblent fournir toutes les options que vous pouvez obtenir à partir de l'interface graphique (si schtasks est très proche). Cependant, le Planificateur de Tâches est un format XML qui décrit les tâches planifiées, et schtasks.exe a une option pour importer des tâches à partir d'un fichier XML.
Pour créer un script de fermeture de session, de créer un fichier XML qui décrit la tâche que vous souhaitez créer. Assurez-vous d'utiliser un déclencheur de "lors de la déconnexion d'une session d'utilisateur" et sélectionnez fermer la session "utilisateur" (qui nécessite des privilèges élevés) et "connexion à partir de l'ordinateur local." Mis en place tous souhaité la fermeture de session actions (telles que vos scripts de fermeture de session) et que la tâche des actions.
Microsoft a une liste d'exemples pour le développement de tâches pour le Planificateur de Tâches, y compris des exemples XML. Vous pouvez trouver cette liste ici.
Alternativement, vous pouvez configurer votre tâche une fois à l'aide de l'interface graphique de l'outil, vous pouvez droit-cliquez sur la tâche où il apparaît dans la liste des tâches et sélectionnez "Exporter". Vous obtiendrez une boîte de dialogue d'enregistrement qui vous permettra d'enregistrer la tâche au format XML.
Je puis le script de configuration de la tâche avec la commande suivante:
Note: partiellement le crédit doit aller à user606602 pour la suggestion d'utiliser le planificateur de tâches, qu'il était, ce qui suggère l'utilisation de l'interface graphique de l'application qui, comme par ma question, ne serait pas travailler pour cela. J'ai essayé de modifier sa réponse avec le script de la version de sa proposition de les accepter, mais un examen par les pairs a baissé le modifier.
OriginalL'auteur Loduwijk
Ne pourriez-vous 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 se déclenchent 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. À partir de cette fenêtre, sélectionnez "lors de la déconnexion d'une session de l'utilisateur' à partir du menu déroulant, puis sélectionnez les scripts que vous souhaitez exécuter à partir de la "Actions" sur l'onglet configuration de la fenêtre.
Aussi, au moment où j'ai posé la question, nous avons été en utilisant presque exclusivement XP qui ne permet pas de cela avec sa version du Planificateur de Tâches. Nous sommes enfin en utilisant que la moitié de Windows 7 et de convertir l'autre moitié de nos ordinateurs pour 7 plus tard cette année, donc cela ne s'applique désormais depuis le planificateur est beaucoup plus robuste, et j'ai commencé à l'utiliser, plus dans le dernier mois ou deux. Ce serait sympa si quelqu'un pouvait encore fournir un moyen de le faire dans XP.
C'est bizarre, le modifier (mentionné ci-dessus) est parti. Je suppose que cela signifie que l'examen par les pairs a échoué? Ne fait pas de sens, que cette réponse a été de 1/2 à 3/4 du chemin, il n'a tout simplement pas l'adresse de la partie de script, que j'ai ensuite édité. Désolé, je suppose que je ne peux pas accepter la réponse. Je vais devoir faire une nouvelle réponse avec les corrections.
Désolé j'ai mal compris.
OriginalL'auteur Ciaran Gallagher