1 votes

Comment exécuter un script PowerShell avec un accès élevé en utilisant le Planificateur de tâches

J'ai un script PowerShell que je veux utiliser pour fermer les applications en cours d'exécution dans la session d'un autre utilisateur. Le script fonctionne lorsqu'il est exécuté en tant qu'administrateur, cependant je ne veux pas donner les droits d'administrateur aux utilisateurs juste pour fermer l'application en cours d'exécution dans la session d'un autre utilisateur. J'ai créé une tâche dans le Planificateur de tâches qui devrait permettre à la tâche de s'exécuter en tant qu'administrateur en utilisant des informations d'identification stockées. Voir la tâche ci-dessous:

Tâche planifiée

J'ai ensuite créé un raccourci pour lier cette tâche planifiée et je l'ai déposé sur le bureau public. Voici le chemin pour cela:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File C:\SMS_Killer.ps1

J'ai mis en place une Autorisation de Bypass cependant cela ne semble pas fonctionner à moins qu'un administrateur soit connecté.

Voici le code qui est exécuté par l'exécution de la tâche:

Get-Process | Where {$_.ProcessName -eq "firefox"} | Stop-Process

Read-Host -Prompt "Appuyez sur Entrée pour quitter"

Et voici l'erreur que j'obtiens lorsque je l'exécute en tant que non administrateur:

Stop-Process : Impossible d'arrêter le processus "firefox (3328)" en raison de l'erreur suivante: Accès refusé
À C:\SMS_Killer.ps1:5 char:54
+ Get-Process | Where {$_.ProcessName -eq "firefox"} | Stop-Process
+                                                      ~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (System.Diagnostics.Process (firefox):Process) [Stop-Process], ProcessComman
   dException
    + FullyQualifiedErrorId : CouldNotStopProcess,Microsoft.PowerShell.Commands.StopProcessCommand

Toute aide serait grandement appréciée, je ne sais pas où je me trompe.

3voto

Si le processus peut être arrêté en toute sécurité s'il est en cours d'exécution pendant qu'un compte utilisateur se connecte ou se reconnecte à une session déconnectée, laissez SYSTEM exécuter la tâche en déclenchant un peu différemment avec des événements.

De cette manière, aucun compte utilisateur n'aura besoin de l'autorisation pour exécuter la tâche. Cela l'exécute à chaque fois qu'il est déclenché par des événements conditionnels spécifiques.


Configurer la tâche planifiée

  1. Planifiez la tâche pour s'exécuter en tant que SYSTEM

entrez la description de l'image ici

  1. Définissez les trois déclencheurs comme suit :
    • À la connexion de N'importe quel utilisateur
    • Lors de la connexion à une session utilisateur pour N'importe quel utilisateur lorsque la Connexion à partir d'un ordinateur distant
    • Lors de la connexion à une session utilisateur pour N'importe quel utilisateur lorsque la Connexion à partir d'un ordinateur local

Note : Définissez chacun de ces trois déclencheurs avec une valeur de Retarder la tâche de 10 secondes.

entrez la description de l'image ici

1voto

harrymc Points 394411

Dans les dernières versions de Windows 10, l'exécution de schtasks /run nécessite désormais des autorisations administratives. Il n'est plus possible d'utiliser cette astuce pour un utilisateur non-administrateur. Microsoft a fermé la faille dans Windows par laquelle un utilisateur non-administrateur pouvait lancer une tâche administrateur via le Planificateur de tâches.

Vous cherchez probablement un moyen de faire fonctionner à nouveau cette méthode, comme cela a fonctionné pendant de nombreuses années, mais ce n'est plus possible.

Une solution alternative qui fonctionne toujours est l'utilitaire RunAsSpc, gratuit pour un usage privé, décrit comme suit :

Exécuter une application en tant qu'un autre utilisateur ou démarrer un programme en tant qu'administrateur à partir d'un compte limité comme la commande runas, mais sans avoir à saisir les informations de connexion à chaque démarrage.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X