Windows Vista: Cómo ejecutar un programa .exe en el cmd "Como administrador"


11

Si eso es. Necesito ejecutar un programa .exe en la línea dos cmd y debe ejecutarse como cuando haces clic con el botón derecho y seleccionas "ejecutar como administrador"


Me preguntaba sobre eso también. Mi solución fue hacer un archivo por lotes con el comando y dejar que siempre se ejecute como administrador, o abrir el cmd como administrador. Pero parece que debería haber una solución elegante.
OregonGhost

Respuestas:



7

Si ejecuta cmd como administrador, todo lo demás desde allí también lo hará. Acabo de configurar un acceso directo al símbolo del sistema que se abre como administrador. Todo desde allí es bueno para ir.


5

He usado un dúo de script .cmd & .vbs llamado elevate, funciona bien para mis necesidades. Todo lo que necesitas es escribir

elevar [comando]
desde Inicio> Ejecutar o desde la línea de comandos, y ejecutará el comando con privilegios de administrador. ¡Espero eso ayude!

Aquí está 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" %*

y 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

Por curiosidad, ¿cuál es la ventaja de esto sobre las runas?
tfinniga

Duh! ¡Me tienes! :) No sabría la ventaja sobre las runas, pero cuando no las conoces, esa es la única alternativa. Definitivamente estoy avergonzado :)

¡Creo que ayudaría si una vez leímos lo que estamos usando como script!

1
Este dúo se describe en technet.microsoft.com/en-us/magazine/…

2
La clara ventaja de elevar script es que le permiten elevar su usuario a administrador bajo UAC sin la necesidad de proporcionar un usuario administrador y una contraseña (siempre que haya iniciado sesión como usuario administrador). ¿Puede runas.exe hacerlo?


2

También puede presionar la tecla de Windows, escriba CMD, esto mostrará una lista de cmd en los programas, haga clic derecho -> Propiedades -> Compatibilidad -> Ejecute este programa como administrador

Esto siempre se ejecutará como administrador.


También puede usar Ctrl + Shift + Enter.
Joey

1

Como alguien publicó el equivalente de VBS, aquí hay una función Invoke-Admin para 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();
}

}


0

En breve:

  • Haga clic / presione Inicio, luego CTRL + MAYÚS y ENTRAR. Confirmar.

En detalle:

  1. Presione el botón Inicio Escriba "cmd" (sin comillas) inmediatamente (1)
  2. Mantenga presionadas las teclas CTRL y MAYÚS
  3. Presione ENTRAR
  4. Confirme el cuadro de diálogo de Windows Vista UAC

(1) Inmediatamente significa escribirlo en el cuadro Buscar, no en el cuadro Ejecutar.


0

Puede usar un VBScript como tal. Crear un .vbsarchivo, por ejemplo 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”
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.