web-dev-qa-db-fra.com

comment exécuter un script PowerShell en tant qu'administrateur

Sur mon bureau Windows 7, j'ai script.ps1, qui nécessite des privilèges d'administrateur (il démarre un service). Je veux cliquer sur ce script et l'exécuter avec les privilèges d'administrateur.

Quel est le moyen le plus simple d'y parvenir?

54
Sajee

Voici une façon de le faire, à l’aide d’une icône supplémentaire sur votre bureau. J'imagine que vous pouvez déplacer le script de quelqu'un d'autre si vous ne souhaitez afficher qu'une seule icône sur votre bureau.

  1. Créez un raccourci vers votre script Powershell sur votre bureau.
  2. Cliquez avec le bouton droit sur le raccourci, puis cliquez sur Propriétés
  3. Cliquez sur l'onglet raccourci
  4. Cliquez sur Avancé
  5. Sélectionnez Exécuter en tant qu'administrateur

Vous pouvez maintenant exécuter le script élevé en double-cliquant simplement sur le nouveau raccourci sur votre bureau.

45
Kez

Sur les systèmes compatibles UAC, pour vous assurer qu'un script s'exécute avec des privilèges d'administrateur complets, ajoutez ce code au début de votre script:

param([switch]$Elevated)

function Test-Admin {
  $currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
  $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}

if ((Test-Admin) -eq $false)  {
    if ($elevated) 
    {
        # tried to elevate, did not work, aborting
    } 
    else {
        Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}

exit
}

'running with full privileges'

lors de l'exécution de votre script avec le commutateur -elevated, il tentera d'élever les privilèges avant l'exécution.

16
MDMoore313

si vous êtes dans le même environnement, vous pouvez le faire:

Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
13
mjsr

Comme il est assis sur votre bureau, je dirais que le moyen le plus simple de le faire est de le faire glisser sur le gadget elevation .

Sinon, vous pourriez créer un script séparé en utilisant la commande elevate sur votre script ps1.

Ou, vous pouvez appliquer elevate uniquement au bit de démarrage de service.

4
badp

PowerShell ISE est présent à l'emplacement% windir%\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe. Vous pouvez cliquer dessus avec le bouton droit de la souris et sélectionner "Exécuter en tant qu'administrateur", puis exécuter le script à partir de là.

Vous pouvez également le trouver sous Logo Windows> Tous les programmes> Accessoires> Windows PowerShell et faire la même chose avec ces raccourcis.

1
vapcguy