Interdire le shutdown

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Interdire le shutdown

#1

Message par gaelds »

Bonjour,

Dans le lycée où je travaille, les PC ont 3 sessions : administrateur, eleve et prof, pas de domaine. La session "eleve" est admin local sur certains PC. J'ai choppé un élève en train d'essayer d'éteindre des PC à distance avec "shutdown -i". Afin d'interdire l'utilisation du shutdown.exe à l'utilisateur "eleve", même s'il est admin, j'aimerais utiliser un executable Autoit. J'ai testé la fonction "icacls" mais ça ne fonctionne pas. Y-a-t'il une autre fonction dans Autoit qui puisse retirer les droits à "eleve" ?

Code : Tout sélectionner

>icacls %windir%\system32\shutdown.exe /deny eleve:D
C:\WINDOWS\system32\shutdown.exe: Accès refusé.
0 fichiers correctement traités ; échec du traitement de 1 fichiers
[/b]
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Interdire le shutdown

#2

Message par walkson »

HotKeySet("+!d", "_exit") ; Shift-Alt-d
AdlibRegister("control",1000)

While 1
   Sleep(500)
WEnd

Func control()
   If ProcessExists("shutdown.exe") Then
      ProcessClose("shutdown.exe")
      MsgBox(48,"Abus","Veuillez quitter immédiatement cet ordinateur" & @CRLF& _
      "Présentez vous à votre responsable"& @CRLF &" FIN DE SESSION",3)
      Shutdown(1)
   EndIf
EndFunc
Func _exit()
   Exit
EndFunc
Ce code est une boutade, remarquez, la tête de l’élève dans ce cas :mrgreen:
[Edit] un poil plus sérieux https://www.autoitscript.com/forum/topi ... ent=992181
Modifié en dernier par walkson le dim. 05 févr. 2017 19:52, modifié 1 fois.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Interdire le shutdown

#3

Message par jguinch »

Il est possible d'empêcher l'utilisateur d'exécuter un programme en appliquant une modification dans la base de registre (ou une GPO ou stratégie locale).
Voir cet article sur DisallowRun
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#4

Message par gaelds »

Merci ! :D je connaissais pas cette clé de registre, ça devrait faire l'affaire. Je teste ça rapidement.
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#5

Message par gaelds »

walkson a écrit : Ce code est une boutade, remarquez, la tête de l’élève dans ce cas :mrgreen:
[Edit] un poil plus sérieux https://www.autoitscript.com/forum/topi ... ent=992181
ça pourrait être drôle effectivement :lol:
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#6

Message par gaelds »

Bon j'ai testé mais ça ne fonctionne pas, même après reboot des PC (win7). J'ai sans doute fait une boulette mais je ne vois pas où... Voici les clés ajoutées :

Image
Image
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#7

Message par gaelds »

Apparemment le disallowRun ne fonctionne pas si l'utilisateur est admin local, donc j'en reviens à la fonction icalcs. Je viens de découvrir qu'il fallait d'abord que l'eleve s'approprie le fichier shutdown.exe avec "takeown" avant de lancer icacls. Je vais réessayer comme ça...
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Interdire le shutdown

#8

Message par jguinch »

Ca fonctionne très bien, même avec un compte administrateur.
Je viens de m'apercevoir qu'il manque une info dans la doc sur Technet : il faut également créer la valeur DisallowRun = 1 (type REG_DWORD).
Donc tu dois avoir un truc comme ça :

Code : Tout sélectionner

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"DisallowRun"=dword:00000001

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]
"1"="shutdown.exe"
Par contre, étant donné que la valeur doit être écrite dans HKEY_CURRENT_USER, il faudra inscrire ces valeurs dans la session de chaque utilisateur.
L'idéal est d'utiliser une stratégie locale (gpedit.msc) - voir une GPO si tu as des postes membres d'un contrôleur Active Directory (tout cela nécessite que tu aies des postes en Windows version Pro ou supérieur)
Configuration utilisateur\Modèles d'administration\Système => Ne pas exécuter les application Windows spécifiées

Si tu ne peux pas utiliser de stratégie local ou GPO, tu peux lancer un programme AutoIt au démarrage du poste qui écrira ces valeurs dans la base de registre dans chaque session utilisateur.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#9

Message par gaelds »

Oui merci, j'avais aussi trouvé cette info sur un autre site, on voit cette clé sur ma 1ere capture : http://www.hostingpics.net/viewer.php?id=794398disallow2.jpg
Mais j'ai testé sur 2 PC win7, ça n'a aucun effet... je suis bien dans HKEYCURRENTUSER:
http://www.hostingpics.net/viewer.php?id=213267disallow.jpg

PS : pas de domaine sur le réseau, donc pas de GPO, mais j'utiliserai WAPT pour ajouter ces clés dans les sessions eleves.
Modifié en dernier par gaelds le mar. 07 févr. 2017 07:02, modifié 2 fois.
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#10

Message par gaelds »

Je viens de réessayer sur mon PC Windows 10 et ça ne fonctionne pas non plus :( je ne vois pas ce que j'ai loupé...
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"DisallowRun"=dword:00000001

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]
"1"="shutdown.exe"
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: Interdire le shutdown

#11

Message par jguinch »

La restriction fonctionne bien pour moi (Windows 10), mais ce qui pose problème c'est que ça ne bloque pas l'exécution de la commande depuis une fenêtre DOS.
Si tu exécutes la commande shutdown depuis Démarrer > Exécuter, c'est bien bloqué, non ?
En fait, il faut aussi interdire l'exécution de cmd.exe
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#12

Message par gaelds »

Ah ok effectivement je n'avais pas pensé à ça... Je pourrais bloquer cmd sur les postes élèves mais j'ai peur que ce soit contraignant pour certains utilisateurs, à voir...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Interdire le shutdown

#13

Message par Tlem »

Bonsoir.
Je ne sais pas si c'est facilement faisable, mais pourquoi ne pas remplacer shutdown.exe par votre propre utilitaire.
Après, il ne faut pas que ça interfère sur Windows, mais c'est une idée à creuser. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Interdire le shutdown

#14

Message par orax »

J'ai essayé d'éteindre un ordinateur à distance avec psshutdown. L'ordinateur est sous Windows 10 et il n'est pas dans un domaine.
Et bien ça ne marchait pas ! Il affichait Accès refusé.
C'est une restriction quand l'UAC est activé et quand les ordinateurs ne sont pas dans un domaine.
Pour contourner cette restriction j'ai ajouté LocalAccountTokenFilterPolicy avec la valeur "1" dans la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System.
https://support.microsoft.com/fr-fr/hel ... dows-vista
support.microsoft.com a écrit :Lorsqu’un utilisateur qui est membre du groupe Administrateurs local sur l’ordinateur distant cible établit une connexion d’administration à distance à l’aide de la commande net * \\remotecomputer\Share$, par exemple, il ne se connecte pas en tant qu’administrateur intégral. L’utilisateur n’a aucun potentiel d’élévation sur l’ordinateur distant et l’utilisateur ne peut pas effectuer des tâches administratives.
En résumé, pour désactiver l'arrêt à distance, il faudra faire l'inverse : activer l'UAC et vérifier que l'entrée LocalAccountTokenFilterPolicy n'existe pas (ou que sa valeur est "0")... et croiser les doigts pour que ça marche.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
gaelds
Niveau 2
Niveau 2
Messages : 27
Enregistré le : sam. 18 avr. 2015 06:59
Status : Hors ligne

Re: Interdire le shutdown

#15

Message par gaelds »

Ok merci pour toutes ces pistes mais je ne préfère pas réactiver l'UAC. Pour l'instant j'ai créé un paquet wapt qui bloque via le registre "cmd" et "shutdown" sur la session eleve, sauf pour une liste de salles où je ne souhaite pas bloquer "cmd". Ça devrait suffire pour le moment.
VLX
Niveau 1
Niveau 1
Messages : 1
Enregistré le : mer. 07 déc. 2022 16:36
Status : Hors ligne

Re: Interdire le shutdown

#16

Message par VLX »

Bonjour,
J'aimerai implanter un script un peu basé sur ce que tu as fait et mettre un message aux élèves mais j'ai une question bête : Ou et comment j'implante ce script? Je suppose que c'est sous Windows et non dans les scripts de connexion kwartz car ce n'est pas au démarrage mais lors de l'utilisation. Mais là j'avoue ne pas savoir comment faire. Je me fais vieux je pense.
Est-ce que tu (ou quelqu'un) peux m'aider?
D'avance merci

walkson a écrit : sam. 04 févr. 2017 21:01
HotKeySet("+!d", "_exit") ; Shift-Alt-d
AdlibRegister("control",1000)

While 1
   Sleep(500)
WEnd

Func control()
   If ProcessExists("shutdown.exe") Then
      ProcessClose("shutdown.exe")
      MsgBox(48,"Abus","Veuillez quitter immédiatement cet ordinateur" & @CRLF& _
      "Présentez vous à votre responsable"& @CRLF &" FIN DE SESSION",3)
      Shutdown(1)
   EndIf
EndFunc
Func _exit()
   Exit
EndFunc
Ce code est une boutade, remarquez, la tête de l’élève dans ce cas :mrgreen:
[Edit] un poil plus sérieux https://www.autoitscript.com/forum/topi ... ent=992181
jpascal
Niveau 6
Niveau 6
Messages : 226
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

Re: Interdire le shutdown

#17

Message par jpascal »

Ce script doit être compilé et le programme lancé au démarrage de la session utilisateur.
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Répondre