Comment autoriser des non-administrateurs à utiliser shutdown.exe?

6

Selon les commentaires dans la réponse acceptée à ce question, j'ai des problèmes en cours d'exécution d'une tâche planifiée qui appelle shutdown.exe, même lorsque l'utilisateur est un administrateur. J'administre la machine de quelqu'un d'autre à l'aide de son compte principal. Je ne peux donc pas trop changer car ils aiment les choses comme elles sont.

Ce qui est vraiment étrange, c'est que je ne peux exécuter la tâche que si:

  1. L'utilisateur est un administrateur.
  2. Ils ont défini un mot de passe.

Pour une raison étrange qui m'est inconnue, non seulement un utilisateur doit être un administrateur, mais également doit avoir un mot de passe sur le compte pour que la tâche planifiée soit exécutée. Sinon, j'obtiens des erreurs d'accès refusé et l'exécution de la tâche échoue.

Comment faire pour que cela fonctionne sans avoir à forcer l'utilisateur à définir un mot de passe pour son compte?

L'objectif restant consiste essentiellement à éteindre l'ordinateur (qu'il soit connecté ou non) à 23 heures tous les soirs.

Je rencontre les erreurs suivantes ci-dessous lorsque je tente de définir la tâche dans le Scheduled Tasks programme:

enter image description here

Une erreur s'est produite lors de la tentative de définition des informations du compte de tâche.
L'erreur spécifique est:
0x8007005: l'accès est refusé.
Vous n'êtes pas autorisé à effectuer l'opération demandée.

Pour mémoire, voici ma politique de sécurité, vous pouvez voir que mon utilisateur a l'autorisation de forcer l'arrêt et l'arrêt manuel de l'ordinateur:

enter image description here

Naftuli Kay
la source
La tâche planifiée est-elle en cours d'exécution sur la machine que vous souhaitez arrêter ou à distance? Avez-vous essayé d'utiliser psshutdown au lieu de shutdown?
Harry Johnston
Localement, je n'ai pas essayé psshutdown.
Naftuli Kay
1
Windows requiert un mot de passe pour les postes de travail distants et les autres opérations d’administration réseau, car il serait tout simplement trop encombrant pour la sécurité. En plus de cela, beaucoup de gens blâmeraient d'abord la sécurité médiocre de Microsoft plutôt que leur propre négligence s'ils étaient piratés.
Hand-E-Food
Hmm. Eh bien, Linux est normalement assez sécurisé, et je peux simplement sudo crontab -e et ajouter 0 23 * * * shutdown -P now. Qu'est-ce qui pourrait être si difficile pour un compte administrateur sur Windows d'arrêter l'ordinateur à une heure donnée chaque jour?
Naftuli Kay
1
@grawity: Je ne pense pas que SYSTEM puisse détenir des droits sur le domaine réseau. Cela ne fait que renforcer votre conclusion: le modèle de sécurité Windows NT est plus sûr (plus robuste) précisément parce qu'il est plus difficile d'obtenir tous les droits. Unix racine est beaucoup trop pratique, d'où sudo
MSalters

Réponses:

5

La solution la plus simple serait de configurer ladite tâche planifiée pour s'exécuter sous un compte administrateur. Tu fais ne pas besoin d'utiliser le même compte que l'utilisateur habituellement connecté - fournissez simplement des informations d'identification différentes lors de la création de la tâche.

Si vous ne voulez pas que "Administrateur" ait un mot de passe, vous pouvez simplement créer un compte dédié uniquement pour la tâche planifiée. (Un compte utilisateur limité fonctionnera également si vous appliquez le correctif ci-dessous.)


le shutdown.exe besoins du programme SeRemoteShutdownPrivilege courir, au lieu de l'habitude SeShutdownPrivilege - J'imagine qu'il utilise le même RPC pour éteindre les ordinateurs locaux et distants. (Cela expliquerait également la nécessité d'un mot de passe - par défaut, seules les connexions à la console sont exemptées, ce qui n'inclut évidemment pas RPC.)

Vous pouvez accorder SeRemoteShutdownPrivilege à travers secpol.msc Politiques locales Attribution des droits de l'utilisateur , en modifiant l’entrée "Forcer l’arrêt du système distant".

  • Vous pouvez créer un compte dédié à la tâche et l'ajouter ici (meilleur choix).
  • Pour l’utilisation interactive de la ligne de commande par n’importe quel utilisateur, vous pouvez ajouter INTERACTIVE.
  • Pour les tâches planifiées par n'importe quel utilisateur, ajoutez BATCH.
grawity
la source
1
+1: compte dédié pour la tâche planifiée. Très bonne réponse.
surfasb
J'ai essayé de permettre à mon utilisateur de le faire en activant INTERACTIVE, BATCH, et mon utilisateur pour ce privilège, et maintenant Windows ne dépassera pas l’écran de bienvenue, il se bloque:
Naftuli Kay
@TK: Étrange, comme l'écran de bienvenue ne le fait pas utilisation ce privilège pour n'importe quoi. Essayez de vous connecter en tant qu'utilisateur différent ou en mode sans échec. Si vous parvenez à entrer, vérifiez le journal des événements ( eventvwr.msc ).
grawity
Je ne peux entrer dans aucun compte. L'écran de bienvenue est affiché et rien d'autre. Je n'ai pas d'options visibles.
Naftuli Kay
@TK: Même en mode sans échec? Essayez également d'appuyer deux fois sur Ctrl + Alt + Suppr sur l'écran d'accueil.
grawity
1

Je vois que vous essayez toujours de planifier une tâche sur un compte administrateur sans mot de passe.

Je parie sur le fait que le seul autre paramètre lié aux mots de passe vierges est "Limiter l'utilisation de mots de passe vierges à un compte local pour la connexion à la console uniquement".

Essayez ce réglage. Il se trouve sous Options de sécurité, juste en dessous des attributions de droits d'utilisateur.

surfasb
la source
1

C'est une solution plus facile:

Si vous souhaitez autoriser uniquement les utilisateurs locaux à s'exécuter %windir%\system32\shutdown.exe -s -t 0, accorde le SeRemoteShutdownPrivilege au groupe INTERACTIVE. Seuls les utilisateurs locaux sont membres de ce groupe.

Comment le faire: Run secpol.msc. Ouvrir Security Settings \ Local Policies \ User Rights Assignment. Double-cliquez Force shutdown from a remote system dans le volet de droite. Cliquez sur Add User or Group. Entrez le nom INTERACTIVE dans la zone de texte et cliquez sur Check names, puis clique OK, et OK encore.

La source: http://blogs.msdn.com/aaron_margosis/archive/2006/01/27/518214.aspx

Klaus Hartnegg
la source
0

Certaines restrictions s'appliquent à la création de tâches pour les comptes avec des mots de passe vierges.

Vous pouvez créer une tâche qui exécutera shutdown.exe, mais vous devrez définir l'option "Ne pas stocker le mot de passe". Ceci est sur Windows 7 SP1, si vous utilisez un autre système d’exploitation, veuillez nous le faire savoir.

Create Task Window

Pour Windows XP, utilisez l'outil de ligne de commande AT:

at 23:00 /every:monday,tuesday,wednesday,thursday,friday,saturday,sunday shutdown /s
Harry Johnston
la source
Sur Windows XP, désolé. Je viens de mettre à jour les étiquettes de questions pour refléter cela.
Naftuli Kay
Réponse mise à jour en conséquence.
Harry Johnston