Windows Vista: Como executar um programa .exe no cmd "Como administrador"

12

Sim é isso. Eu preciso executar um programa .exe na linha dos cmd e ele precisa ser executado como quando você clica com o botão direito e selecione "executar como administrador"

BinaryMisfit
fonte
Eu me perguntei sobre aquilo também. Minha solução foi criar um arquivo em lotes com o comando e deixá-lo sempre ser executado como administrador ou abrir o cmd como administrador. Mas parece que deve haver alguma solução elegante.
OregonGhost 29/09/08

Respostas:

15

O Windows possui um comando "runas" que funciona um pouco como o sudo nos sistemas Unix-y. Tente digitar "runas /?" no seu prompt de comando.

Neall
fonte
Esta não é uma resposta correta, a menos que você tenha o usuário Administrador ativado com uma senha não vazia.
Jiggunjer #
7

Se você executar o próprio cmd como administrador, tudo o que você executar a partir daí também será. Acabei de configurar um atalho para o prompt de comando que é aberto como administrador. Tudo a partir daí é bom para ir.

Kilhoffer
fonte
5

Eu usei uma dupla de scripts .cmd & .vbs chamada elevate, que funciona bem para minhas necessidades. Tudo que você precisa é digitar

elevar [comando]
em Iniciar> Executar ou na linha de comando, e ele executará o comando com privilégios de administrador. Espero que ajude!

Aqui 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" %*

e 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
fonte
Apenas curioso, qual é a vantagem disso sobre as runas?
tfinniga 29/09/08
Duh! Você me pegou! :) Eu não saberia a vantagem sobre runas, mas quando você não conhece runas, essa é a única alternativa. Estou definitivamente envergonhado :)
Eu acho que ajudaria se lemos o que estamos usando como script!
1
Esta dupla está descrita em technet.microsoft.com/en-us/magazine/…
2
A clara vantagem do script elevate é que eles permitem elevar seu usuário a administrador no UAC sem a necessidade de fornecer usuário e senha de administrador (desde que você esteja logado como usuário administrador). Runas.exe pode fazer isso?
2

Você também pode pressionar a tecla Windows, digite CMD, isso listará o cmd nos programas, clique com o botão direito do mouse -> Propriedades -> Compatibilidade -> Executar este programa como administrador

Isso sempre será executado como administrador.

Carteiro
fonte
Você também pode usar Ctrl + Shift + Enter.
Joey
1

Como alguém postou o equivalente em VBS, aqui está uma função 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();
}

}

JaredPar
fonte
0

Em resumo:

  • Clique / pressione Iniciar, CTRL + SHIFT e ENTER. Confirme.

Em detalhe:

  1. Pressione o botão Iniciar. Digite "cmd" (sem aspas) imediatamente (1)
  2. Mantenha CTRL e SHIFT
  3. Pressione Enter
  4. Confirme a caixa de diálogo UAC do Windows Vista

(1) Imediatamente significa digitá-lo na caixa Pesquisar, não na caixa Executar.

Mackaaij
fonte
0

Você pode usar um VBScript assim. Crie um .vbsarquivo, por exemplo 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
fonte