Comment exécuter un script PowerShell en tant qu’administrateur ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à exécuter un script PowerShell en tant qu'administrateur, que ce soit en mode interactif, en ligne de commande ou avec une tâche planifiée ! Parfois, il n'y a pas d'autres solutions que d'exécuter un script avec les droits admin sur un serveur afin de réaliser certaines actions, mais comment faire ?

II. Exécuter PowerShell en tant qu'admin

A. À partir de l'interface graphique

Commençons par évoquer l'ouverture de la console PowerShell en tant qu'administrateur, via l'interface graphique de Windows. Que ce soit sur Windows Server, Windows 10 ou Windows 11, d'ailleurs. Tout d'abord, avec un clic droit sur l'icône dans la barre des tâches ou dans le menu Démarrer, on a l'option "Exécuter en tant qu'administrateur" qui permet d'ouvrir la console avec les droits admins pour cette fois-ci.

Exécuter en tant qu'admin - PowerShell

Si l'on souhaite l'ouvrir tout le temps avec les droits admins sur un raccourci, on peut épingler PowerShell à la barre des tâches, faire un clic droit sur l'icône, puis un clic droit sur "Windows PowerShell" afin de cliquer sur "Propriétés".

PowerShell - Raccourci admin

Ici, via l'onglet "Raccourci", vous pouvez cliquer sur le bouton "Avancé" afin de cocher l'option "Exécuter en tant qu'administrateur".

Raccourci PowerShell - Exécutant en tant qu'admin

Désormais, lorsque vous allez utiliser ce raccourci pour lancer PowerShell, la console s'exécutera avec les droits admin directement.

Vous pouvez aussi utiliser le raccourci clavier "Win + X" ou faire un clic droit sur le bouton du menu Démarrer puisqu'il contient une entrée "Windows PowerShell (admin)". Sur un poste Windows 11, le principe reste le même sauf que c'est Windows Terminal qui est utilisé par défaut, donc l'option se nomme "Terminal (administrateur)".

PowerShell dans le menu Win X

De manière générale, retenez que, lorsque la console PowerShell est exécutée avec les droits admins, le titre de la console contient le préfixe "Administrateur :" ou "Administrator :".

PowerShell - Titre Administrator

B. À partir de la ligne de commande

Pour lancer une console PowerShell en tant qu'admin sans utiliser l'interface graphique, mais en utilisant l'Invite de commande, PowerShell, Windows PowerShell ou Windows Terminal, c'est également possible. Voici quelques commandes utilisables grâce au paramètre "runAs" qui va générer une élévation de privilèges.

Exécuter Windows PowerShell en tant qu'admin :

powershell.exe Start-Process powershell -Verb runAs

Exécuter PowerShell en tant qu'admin :

pwsh.exe -Command Start-Process pwsh -Verb runAs

Une fois la console ouverte avec les droits admins, vous pouvez exécuter un script : il bénéficiera des autorisations de la console en cours d'exécution ! Il est à noter que si vous êtes déjà dans PowerShell, vous pouvez utiliser cette syntaxe :

Start-Process powershell -Verb runAs

III. Exécuter un script PowerShell avec les droits admins

Si l'on reprend le principe de la commande précédente, on peut la compléter avec le paramètre -ArgumentList pour exécuter directement un script PowerShell. Ainsi, l'exemple ci-dessous permet d'exécuter le script "C:\TEMP\ScriptAdmin.ps1" avec les droits admin, via Windows PowerShell.

Start-Process powershell -Verb runAs -ArgumentList "-file C:\TEMP\ScriptAdmin.ps1"

Ceci fonctionne également avec PowerShell :

Start-Process pwsh -Verb runAs -ArgumentList "-file C:\TEMP\ScriptAdmin.ps1"

Même s'il faut valider l'UAC (fenêtre de sécurité Windows), le script sera exécuté avec les droits administrateur sur la machine !

En parlant d'UAC, il existe plusieurs façons de la contourner, notamment en exécutant le script à partir d'une tâche planifiée. Pour cela, il faut créer une tâche via le planificateur de tâches Windows, et cocher l'option "Exécuter avec les autorisations maximales" dans l'onglet "Général" comme sur l'image ci-dessous.

PowerShell - Tâche planifiée admin

Au sein de l'onglet "Actions" de la tâche planifiée, il suffira d'appeler "powershell.exe" ou "pwsh.exe" afin d'exécuter le script de votre choix. Pour plus de détails à ce sujet, consultez cet article : Tâche planifiée - Script PowerShell.

IV. Conclusion

En appliquant l'une des méthodes ci-dessus, vous êtes en mesure d'exécuter un script PowerShell en tant qu'administrateur sur une machine, que ce soit sur un serveur ou un poste de travail. Sur une machine Linux, il suffira d'ajouter le préfixe "sudo" pour bénéficier d'une élévation de privilèges au sein de PowerShell.

Si vous avez des questions ou que vous souhaitez apporter des précisions supplémentaires, n'hésitez pas à poster un commentaire sur cet article ou à rejoindre notre serveur Discord.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 4370 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.