Obtention de privilèges d'administrateur dans PowerShell

27

Je n'ai qu'un seul compte sur ma machine Windows Vista et cet utilisateur dispose de privilèges administratifs. Cependant, lorsque j'essaie d'exécuter une commande dans PowerShell pour tuer un certain processus, je suis accueilli avec un message "Accès refusé". Comment devenir administrateur?

Brian
la source

Réponses:

14

La façon la plus simple de procéder consiste à lancer Powershell avec des jetons d'administration. Pour ce faire, faites un clic droit sur Powershell (ou un raccourci vers celui-ci) et cliquez sur "Exécuter en tant qu'administrateur". Vous pouvez également utiliser elevate.cmd .

Knox
la source
25

Selon Microsoft , la méthode Powershell v2 consiste à cliquer avec le bouton droit sur le raccourci et à choisir Exécuter en tant qu'administrateur .

Et pour élever dans une fenêtre Powershell:

start-process powershell verb runAs

Lequel, à partir d'un fichier de commandes cmd.exe, d'un raccourci ou d'une ligne d'exécution, ressemblerait (à plusieurs reprises) à ceci:

powershell "start-process powershell -verb runas"
Nathan Hartley
la source
10

Cela ouvre une nouvelle instance PowerShell:

function Run-Elevated ($scriptblock)
{
  # TODO: make -NoExit a parameter
  # TODO: just open PS (no -Command parameter) if $scriptblock -eq ''
  $sh = new-object -com 'Shell.Application'
  $sh.ShellExecute('powershell', "-NoExit -Command $scriptblock", '', 'runas')
}

Je m'attends à ce qu'il y ait des problèmes avec cela - en particulier, vous n'obtiendrez pas la sortie de votre bloc de script dans le script appelant. D'un autre côté, il sera là dans la nouvelle instance PS afin que vous puissiez y pirater.

user2278
la source
5

Si vous souhaitez toujours exécuter PowerShell avec des privilèges d'administrateur, vous pouvez cliquer avec le bouton droit sur le raccourci PowerShell, puis cliquer sur le bouton "Avancé ..." sous l'onglet "Raccourci", puis sélectionner "Exécuter en tant qu'administrateur".

Ryan Fisher
la source
0

La manière la plus simple ...

Voici comment configurer une commande simple pour obtenir des privilèges d'administrateur à tout moment, à partir de n'importe quelle session PowerShell!

Étape 1: ouvrez votre profil PowerShell. (Autorisez le bloc-notes à créer le fichier s'il est manquant.)

notepad "$profile"

Étape 2: collez le code suivant n'importe où dans ce fichier.

function GoAdmin { start-process powershell verb runAs }

Étape 3: redémarrez PowerShell. La commande est désormais disponible en permanence.

Étape 4: Chaque fois que vous souhaitez passer en mode administrateur, tapez simplement GoAdmin(et ne vous inquiétez pas de taper la casse correcte; les fonctions PS sont en fait insensibles à la casse). Vous pouvez bien sûr nommer la fonction quelque chose d'autre Elevateou quelque chose comme ça , mais je ne voulais aucun risque de conflits, donc je l'ai nommée une phrase de deux mots sans tirets, pour m'assurer qu'elle ne sera jamais en conflit avec les propres fonctionnalités de PowerShell.

Notez que la fenêtre administrateur s'ouvre dans un shell séparé. Vous pouvez fermer le shell d'origine ou le garder ouvert. Si votre travail d'administrateur fait quelque chose de "gros", comme l'ajout / la modification de variables d'environnement, votre shell utilisateur (non administrateur) peut simplement taper refreshenvpour recharger son environnement et obtenir les changements.

Donc, fondamentalement, GoAdminfaites les trucs d'administration tels que l'installation de packages (avec https://chocolatey.org/ bien sûr!), Puis fermez la fenêtre d'administration et exécutez refreshenvdans votre shell utilisateur! Voila.

Mitch McMabers
la source