2010-02-12 21:46:32 +0000 2010-02-12 21:46:32 +0000
63
63

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 lance un service). Je veux cliquer sur ce script et l'exécuter avec des privilèges d'administrateur.

Quelle est la façon la plus simple d'y parvenir ?

Réponses (7)

53
53
53
2010-02-13 12:58:54 +0000

Voici une façon de le faire, à l'aide d'une icône supplémentaire sur votre bureau. Je suppose que vous pourriez déplacer le script quelqu'un d'autre si vous vouliez n'avoir qu'une seule icône sur votre bureau.

  1. Créez un raccourci vers votre script Powershell sur votre bureau
  2. Faites un clic droit sur le raccourci et cliquez sur Propriétés
  3. Cliquez sur l'onglet Shortcut
  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.

20
20
20
2013-01-10 17:29:06 +0000

Sur les systèmes compatibles UAC, pour s'assurer qu'un script s'exécute avec tous les privilèges d'administration, 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'

lorsque vous exécutez votre script avec le commutateur -elevated, il tentera d'élever les privilèges avant de s'exécuter.

13
13
13
2010-11-27 11:48:43 +0000

si vous êtes dans la même situation, vous pourriez faire ceci :

Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
4
4
4
2010-02-12 22:02:27 +0000

Comme il se trouve sur votre bureau, je dirais que la façon la plus simple de le faire est de le faire glisser sur le gadget d'élévation .

Sinon, vous pouvez faire un script séparé en utilisant la commande elevate sur votre script ps1.

Ou vous pouvez appliquer elevate juste au bit de démarrage du service.

1
1
1
2015-07-16 17:57:01 +0000

PowerShell ISE vit à %windir%\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe. Vous pouvez faire un clic droit dessus et sélectionner “Run as administrator” et lancer le script à partir de là.

Vous pouvez également le trouver sous le logo Windows > All Programs > Accessories > Windows PowerShell et faire la même chose avec ces raccourcis.

0
0
0
2019-07-15 04:56:44 +0000

Si vous voulez une option pour lancer un script Powershell en tant qu'administrateur, directement depuis le menu contextuel de l'explorateur, voir la section 2 de ma réponse ici : https://stackoverflow.com/a/57033941/2441655

-1
-1
-1
2017-10-23 20:34:16 +0000

Ajoutez ceci au début du script :

$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$testadmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
if ($testadmin -eq $false) {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}