Windows Vista: comment exécuter un programme .exe dans le cmd «En tant qu'administrateur»

11

Oui c'est ça. J'ai besoin d'exécuter un programme .exe dans la ligne dos cmd et il doit fonctionner comme lorsque vous faites un clic droit et sélectionnez "exécuter en tant qu'administrateur"

BinaryMisfit
la source
Je me suis aussi demandé cela. Ma solution était soit de créer un fichier batch avec la commande et de le laisser toujours s'exécuter en tant qu'administrateur, soit d'ouvrir le cmd en tant qu'administrateur. Mais il semble qu'il devrait y avoir une solution élégante.
OregonGhost

Réponses:

15

Windows a une commande "runas" qui agit un peu comme sudo dans les systèmes Unix-y. Essayez de taper "runas /?" dans votre invite de commande.

Neall
la source
Ce n'est pas une réponse correcte, sauf si l'utilisateur administrateur est activé avec un mot de passe non vide.
jiggunjer
7

Si vous exécutez cmd lui-même en tant qu'administrateur, tout ce que vous exécutez à partir de là le sera également. Je viens de configurer un raccourci vers l'invite de commande qui s'ouvre en tant qu'administrateur. Tout est bon à partir de là.

Kilhoffer
la source
5

J'ai utilisé un duo de script .cmd & .vbs appelé elevate, cela fonctionne bien pour mes besoins. Il vous suffit de taper

elevate [commande]
à partir de Démarrer> Exécuter ou à partir de la ligne de commande, et il exécutera la commande avec des privilèges d'administrateur. J'espère que cela aide!

Voici elevate.cmd:

:: //***************************************************************************
:: // ***** Script Header *****
:: //
:: // File:      Elevate.cmd
:: //
:: // Additional files required:  Elevate.vbs
:: //
:: // Purpose:   To provide a command line method of launching applications that
:: //            prompt for elevation (Run as Administrator) on Windows Vista.
:: //
:: // Usage:     elevate.cmd application <application arguments>
:: //
:: // Version:   1.0.0
:: // Date :     01/02/2007
:: //
:: // History:
:: // 1.0.0   01/02/2007  Created initial version.
:: //
:: // ***** End Header *****
:: //***************************************************************************


@echo off

:: Pass raw command line agruments and first argument to Elevate.vbs
:: through environment variables.
set ELEVATE_CMDLINE=%*
set ELEVATE_APP=%1

start wscript //nologo "%~dpn0.vbs" %*

et elevate.vbs:

' //***************************************************************************
' // ***** Script Header *****
' //
' // File:      Elevate.vbs
' //
' // Additional files required:  Elevate.cmd
' //
' // Purpose:   To provide a command line method of launching applications that
' //            prompt for elevation (Run as Administrator) on Windows Vista.
' //
' // Usage:     (Not used directly.  Launched from Elevate.cmd.)
' //
' // Version:   1.0.1
' // Date :     01/03/2007
' //
' // History:
' // 1.0.0   01/02/2007  Created initial version.
' // 1.0.1   01/03/2007  Added detailed usage output.
' //
' // ***** End Header *****
' //***************************************************************************


Set objShell = CreateObject("Shell.Application")
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objWshProcessEnv = objWshShell.Environment("PROCESS")

' Get raw command line agruments and first argument from Elevate.cmd passed
' in through environment variables.
strCommandLine = objWshProcessEnv("ELEVATE_CMDLINE")
strApplication = objWshProcessEnv("ELEVATE_APP")
strArguments = Right(strCommandLine, (Len(strCommandLine) - Len(strApplication)))

If (WScript.Arguments.Count >= 1) Then
    strFlag = WScript.Arguments(0)
    If (strFlag = "") OR (strFlag="help") OR (strFlag="/h") OR (strFlag="\h") OR (strFlag="-h") _
        OR (strFlag = "\?") OR (strFlag = "/?") OR (strFlag = "-?") OR (strFlag="h") _
        OR (strFlag = "?") Then
        DisplayUsage
        WScript.Quit
    Else
        objShell.ShellExecute strApplication, strArguments, "", "runas"
    End If
Else
    DisplayUsage
    WScript.Quit
End If


Sub DisplayUsage

    WScript.Echo "Elevate - Elevation Command Line Tool for Windows Vista" & vbCrLf & _
                 "" & vbCrLf & _
                 "Purpose:" & vbCrLf & _
                 "--------" & vbCrLf & _
                 "To launch applications that prompt for elevation (i.e. Run as Administrator)" & vbCrLf & _
                 "from the command line, a script, or the Run box." & vbCrLf & _
                 "" & vbCrLf & _
                 "Usage:   " & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate application <arguments>" & vbCrLf & _
                 "" & vbCrLf & _
                 "" & vbCrLf & _
                 "Sample usage:" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate notepad ""C:\Windows\win.ini""" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate cmd /k cd ""C:\Program Files""" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate powershell -NoExit -Command Set-Location 'C:\Windows'" & vbCrLf & _
                 "" & vbCrLf & _
                 "" & vbCrLf & _
                 "Usage with scripts: When using the elevate command with scripts such as" & vbCrLf & _
                 "Windows Script Host or Windows PowerShell scripts, you should specify" & vbCrLf & _
                 "the script host executable (i.e., wscript, cscript, powershell) as the " & vbCrLf & _
                 "application." & vbCrLf & _
                 "" & vbCrLf & _
                 "Sample usage with scripts:" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate wscript ""C:\windows\system32\slmgr.vbs"" –dli" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate powershell -NoExit -Command & 'C:\Temp\Test.ps1'" & vbCrLf & _
                 "" & vbCrLf & _
                 "" & vbCrLf & _
                 "The elevate command consists of the following files:" & vbCrLf & _
                 "" & vbCrLf & _
                 "    elevate.cmd" & vbCrLf & _
                 "    elevate.vbs" & vbCrLf

End Sub
kolrie
la source
Juste curieux, quel est l'avantage de cela sur les runas?
tfinniga
Duh! Tu m'as eu! :) Je ne connais pas l'avantage sur les runas, mais quand vous ne connaissez pas les runas, c'est la seule alternative. Je suis vraiment gêné :)
Je pense que cela aiderait si nous lisons une fois ce que nous utilisons comme script!
1
Ce duo est décrit sur technet.microsoft.com/en-us/magazine/…
2
L'avantage évident du script elevate est qu'il vous permet d'élever votre utilisateur en tant qu'administrateur sous UAC sans avoir à fournir d'administrateur et de mot de passe (à condition que vous soyez connecté en tant qu'administrateur). Peut runas.exe le faire?
2

Vous pouvez également appuyer sur la touche Windows, tapez CMD, cela répertoriera cmd dans les programmes, cliquez dessus avec le bouton droit -> Propriétés -> Compatibilité -> Exécutez ce programme en tant qu'administrateur

Cela s'exécutera toujours en tant qu'administrateur.

Facteur
la source
Vous pouvez également utiliser Ctrl + Maj + Entrée.
Joey
1

Depuis que quelqu'un a publié l'équivalent VBS, voici une fonction Invoke-Admin pour PowerShell

function Invoke-Admin() {
param ( [string]$program = $(throw "Please specify a program" ),
        [string]$argumentString = "",
        [switch]$waitForExit )

$psi = new-object "Diagnostics.ProcessStartInfo"
$psi.FileName = $program 
$psi.Arguments = $argumentString
$psi.Verb = "runas"
$proc = [Diagnostics.Process]::Start($psi)
if ( $waitForExit ) {
    $proc.WaitForExit();
}

}

JaredPar
la source
0

En bref:

  • Cliquez / appuyez sur Démarrer, puis sur CTRL + MAJ et ENTRÉE. Confirmer.

En détail:

  1. Appuyez sur le bouton Démarrer Tapez "cmd" (sans guillemets) immédiatement (1)
  2. Maintenez CTRL et SHIFT
  3. Appuyez sur Entrée
  4. Confirmez la boîte de dialogue Windows Vista UAC

(1) Immédiatement signifie le taper dans la zone Rechercher, pas dans la zone Exécuter.

Mackaaij
la source
0

Vous pouvez utiliser un VBScript comme tel. Créez un .vbsfichier, par exemple ambika.vbs:

Set objShell = CreateObject(“Shell.Application”)
Set objWshShell = WScript.CreateObject(“WScript.Shell”)
Set objWshProcessEnv = objWshShell.Environment(“PROCESS”)

objShell.ShellExecute “C:\Windows\system32\cmd.exe”, “/k”, “”, “runas”
Ambika Singh
la source