Exécuter une commande en tant qu'administrateur avec PowerShell ?

Vous savez que si vous êtes l'utilisateur administratif d'un système, vous pouvez cliquer avec le bouton droit de la souris sur un script de traitement par lots et l'exécuter en tant qu'administrateur sans entrer le mot de passe de l'administrateur ?

Je me demande comment faire cela avec un script PowerShell. Je ne veux pas avoir à saisir mon mot de passe ; je veux simplement imiter la méthode du clic droit Exécuter en tant qu'administrateur.

Tout ce que j'ai lu jusqu'à présent vous oblige à fournir le mot de passe de l'administrateur.

Solution

Si la console actuelle n'est pas élevée et que l'opération que vous essayez d'effectuer nécessite des privilèges élevés, vous pouvez lancer powershell avec l'option "Run as administrator&quot ;.

PS> Start-Process powershell -Verb runAs
Commentaires (6)

Vous pouvez facilement ajouter quelques entrées de registre pour obtenir un menu contextuel "Exécuter en tant qu'administrateur" pour les fichiers .ps1 :

New-Item -Path "Registry::HKEY_CLASSES_ROOT\Microsoft.PowershellScript.1\Shell\runas\command" `
-Force -Name '' -Value '"c:\windows\system32\windowspowershell\v1.0\powershell.exe" -noexit "%1"'

(mise à jour d'un script plus simple par @Shay)

En gros, dans HKCR:\Microsoft.PowershellScript.1\Shell\runas\command, définissez la valeur par défaut pour invoquer le script en utilisant Powershell.

Commentaires (6)

Ce comportement est voulu. Il y a plusieurs couches de sécurité, car Microsoft ne voulait vraiment pas que les fichiers .ps1 soient le dernier virus de messagerie. Certaines personnes trouvent que cela va à l'encontre de la notion même d'automatisation des tâches, ce qui est juste. Le modèle de sécurité de Vista+ consiste à "désautomatiser" les choses, ce qui oblige l'utilisateur à les accepter.

Cependant, je pense que si vous lancez powershell lui-même en tant qu'instance élevée, il devrait être capable d'exécuter des fichiers batch sans demander à nouveau le mot de passe jusqu'à ce que vous fermiez powershell.

Commentaires (0)