Avertir l'utilisateur s'il tente de se déconnecter

10

Je veux qu'un certain utilisateur local ne se déconnecte pas. déjà. Cela ressemble beaucoup à cette question stupide , mais je ne me soucie pas nécessairement si les boutons sont là, je veux faire apparaître une boîte de message qui dit "Veuillez ne pas vous déconnecter de la console" avec un bouton "OK" qui annule ensuite la déconnexion tentative. Cela peut-il être fait dans un script de déconnexion?

il existe des stratégies de groupe pour désactiver le bouton de déconnexion dans le menu de démarrage et dans la boîte de dialogue CTRL-ALT-DEL. Cependant, ce que je voudrais ressemble plus à http://msdn.microsoft.com/en-us/library/ms811998.aspx , qui ne semble pas être dans le serveur 2008 R2? Ou est-ce que je le manque?

J'ai même essayé de désactiver le bouton de déconnexion au démarrage , mais cela ne fonctionne pas, comme l'a souligné Matt sur cette question similaire

Est-il possible de créer un script de déconnexion qui affiche une boîte de dialogue avertissant l'utilisateur de ne pas se déconnecter, puis annule la déconnexion?

Je comprends que c'est un besoin stupide - malheureusement, il n'est pas en mon pouvoir de changer ou de repousser. J'ai épuisé ces options. N'hésitez pas à obtenir une tonne de votes positifs sur un commentaire expliquant qu'il s'agit vraiment d'un plan stupide qui atténue manifestement un symptôme de nombreux problèmes systémiques plutôt que de résoudre quoi que ce soit. Je comprends parfaitement que cette ligne de conduite crée en fait des problèmes. Je veux que cela soit fait pour que je puisse en finir avec ce contrat et ne plus jamais travailler avec eux.

dfstandish
la source
18
Il s'agit vraiment d'un plan stupide qui atténue évidemment un symptôme de nombreux problèmes systémiques plutôt que de résoudre quoi que ce soit. Cette ligne de conduite crée en fait des problèmes. Terminez ce contrat et ne travaillez plus jamais avec eux.
Michael Hampton
1
En plus d'être une chose idiote à essayer, c'est aussi quelque chose que les autres ne gagneraient pas à savoir comment faire. Cela ne fera que créer des problèmes, alors votez pour fermer.
HostBits
3
Bien que je convienne que c'est un plan stupide et que je ne connais pas le motif, je peux dire que je pourrais bénéficier d'une solution similaire. Nous devons tous faire face à un logiciel hérité stupide comme un "démon" qui a une fenêtre @ # $ @ # $ @ faite dans VB6 et ne fonctionne pas comme un service car il a toutes sortes de messages contextuels et vous vous retrouvez avec un script AuthoHotKey en cliquant sur OK chaque fois qu'ils apparaissent ... il serait donc utile d'empêcher la déconnexion ...
ETL
1
@MichaelHampton, Monsieur, vous avez absolument raison. J'aurais dû ajouter: «Je veux le faire pour pouvoir être payé, puis ne plus jamais travailler pour eux.» comme l'a souligné ETL, il y a toutes sortes de méchancetés héritées ... et comme Cheekaleak l'a souligné, toute réponse à cette question va contribuer à la méchanceté dans le monde. Cela dit, je veux toujours pirater cela et terminer.
dfstandish
Où est le besoin racine? Si c'était comme moi et que vous aviez besoin d'un processus / d'une application pour s'exécuter en tant qu'utilisateur avec une session de bureau interactive, alors vous pourriez envisager d'obtenir Firedaemon et configurer un service qui s'exécute en tant qu'utilisateur pour cette application avec la session 0.
TheCleaner

Réponses:

14

Lorsque j'ai eu l'occasion de le faire, la façon dont j'ai effectivement désactivé la déconnexion (et l'arrêt / le redémarrage) consiste à faire trois choses.

  1. Utilisez des objets de stratégie de groupe ou des politiques de sécurité locales (ou un paramètre de registre) pour supprimer l'option de déconnexion disponible via le menu Ctrl+ Alt+ Del.

    • Pour supprimer l'option du menu Ctrl+ Alt+ Del, vous devez accéder à User Configuration-> Administrative Templates-> System-> Ctrl+Alt+Del Optionset activer la Remove Logoffstratégie.

  2. Utilisez des objets de stratégie de groupe ou des politiques de sécurité locales (ou un paramètre de registre) pour configurer les options de fermeture de session, de redémarrage et d'arrêt disponibles via le menu Démarrer.

    • Pour modifier le comportement par défaut du "bouton d'alimentation", accédez à User Configuration-> Administrative Templates-> Start Menu and Taskbaret activez la Change Start Menu power buttonstratégie.
      • Le régler Lockest probablement ce que vous recherchez.
    • Pour supprimer les boutons d'arrêt / redémarrage / veille / veille prolongée du menu Démarrer, vous devez accéder à User Configuration-> Administrative Templates-> Start Menu and Taskbaret activerRemove and prevent access to the Shut Down, Restart, Sleep and Hibernate command
    • Pour supprimer l'option de déconnexion, accédez à User Configuration-> Administrative Templates-> Start Menu and Taskbaret activez la Remove Logoff on the Start Menustratégie

  3. Modifiez les autorisations sur shutdown.exeet logoff.exe(merci Ryan!) Afin qu'aucun compte utilisateur ne puisse l'exécuter. (Si vous n'avez pas à vous soucier des utilisateurs qui s'exécutent à shutdown.exepartir d'une ligne de commande, vous pouvez ignorer cela.)

    • (Je laisse généralement un compte de service ou mon compte administrateur de sauvegarde avec des autorisations afin que je puisse le modifier si nécessaire, avec un minimum d'effort).
    • Par défaut, il est dans C:\Windows\systm32\et les autorisations permettent aux utilisateurs et aux administrateurs de lire et d'exécuter, mais réservent un contrôle total pour SYSTEMet Trusted Installer.
    • Trusted Installer est également le propriétaire, donc pour modifier les autorisations, vous devez vous approprier un compte administratif.

Une fois que vous avez terminé avec tout cela, il n'y a aucun moyen de vous déconnecter, redémarrer, éteindre, mettre en veille prolongée ou mettre l'ordinateur en veille sans passer par un effort considérable ... ou sans débrancher le câble d'alimentation.

Le menu de démarrage de mon serveur ressemble maintenant à l'image ci-dessous (et le changement d'utilisateur permet simplement à un autre utilisateur de se connecter):

entrez la description de l'image ici

Et le menu Ctrl+ Alt+ Delressemble à:

entrez la description de l'image ici

HopelessN00b
la source
3
La sauce secrète ici est que vous devez changer le comportement du "bouton d'alimentation" - si vous ne désactivez pas la déconnexion, cela n'aura aucun effet.
thekbb
1
logoff.exe .....
Ryan Ries
4

J'aurais préféré ajouter ceci en commentaire, mais grâce aux politiques du site, je ne dois pas commenter ...

Concernant les scripts de déconnexion, je ne sais pas ce qui peut être fait. Mais dans une application Windows Forms C #, vous pouvez vous inscrire à SystemEvents comme SessionSwitch et SessionEnding. Le dernier fournit même une propriété Cancel dans les EventArgs. Une telle application .Net peut vous aider dans votre cas, mais bien sûr, l'utilisateur peut d'abord fermer cette application (ou la supprimer du TaskManager) puis se déconnecter.

Soit dit en passant: oui, je sais que des choses aussi stupides doivent parfois être faites: il existe des sociétés de logiciels qui écrivent des programmes qui devraient être des services Windows, mais qui s'exécutent avec une interface graphique dans une session interactive ...

Bernhard Hiller
la source
2
Un programme court qui affiche une boîte de dialogue puis annule l'arrêt fonctionnerait, mais il pourrait également être supprimé du Gestionnaire des tâches, ce qui pourrait aller à l'encontre de l'objectif.
Michael Hampton