Windows Vista: Ausführen eines .exe-Programms im cmd "Als Administrator"

12

Ja das ist es. Ich muss ein Programm .exe in der Zeile dos cmd ausführen und es muss so ausgeführt werden, wie wenn Sie die rechte Maustaste drücken und "Als Administrator ausführen" auswählen.

BinaryMisfit
quelle
Darüber habe ich mich auch gewundert. Meine Lösung bestand entweder darin, mit dem Befehl eine Batch-Datei zu erstellen, die immer als admin ausgeführt wird, oder die cmd als admin zu öffnen. Aber es scheint, dass es eine elegante Lösung geben sollte.
OregonGhost

Antworten:

15

Windows hat einen "runas" -Befehl, der sich ein wenig wie sudo in Unix-y-Systemen verhält. Versuche "runas /?" in Ihrer Eingabeaufforderung.

Neall
quelle
Oder sehen Sie es hier: technet.microsoft.com/en-us/library/cc771525.aspx
Asaf R
Dies ist keine korrekte Antwort, es sei denn, Sie haben den Administrator mit einem nicht leeren Kennwort aktiviert.
Jiggunjer
7

Wenn Sie cmd selbst als Administrator ausführen, wird auch alles andere, was Sie von dort ausführen, ausgeführt. Ich habe gerade eine Verknüpfung zur Eingabeaufforderung eingerichtet, die als Administrator geöffnet wird. Alles von dort ist gut zu gehen.

Kilhoffer
quelle
5

Ich habe ein Duo von .cmd & .vbs-Skripten mit dem Namen elevate verwendet, es funktioniert einwandfrei für meine Anforderungen. Alles was Sie brauchen, ist zu tippen

erhöhen [befehl]
Über Start> Ausführen oder über die Befehlszeile wird der Befehl mit Administratorrechten ausgeführt. Ich hoffe es hilft!

Hier ist 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" %*

und 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
quelle
Nur neugierig, was ist der Vorteil gegenüber Runas?
Tfinniga
Duh! Du hast mich! :) Ich würde den Vorteil gegenüber Runas nicht kennen, aber wenn Sie Runas nicht kennen, ist das die einzige Alternative. Ich bin auf jeden Fall verlegen :)
Ich denke, es würde helfen, wenn wir einmal lesen, was wir als Skript verwenden!
1
Dieses Duo ist beschrieben unter technet.microsoft.com/en-us/magazine/…
2
Der klare Vorteil des Elevate-Skripts besteht darin, dass Sie Ihren Benutzer unter der Benutzerkontensteuerung zum Administrator erheben können, ohne Administratorbenutzer und Kennwort angeben zu müssen (vorausgesetzt, Sie sind als Administratorbenutzer angemeldet). Kann runas.exe es tun?
2

Sie können auch die Windows-Taste drücken, CMD eingeben. Daraufhin wird cmd in den Programmen aufgelistet. Klicken Sie mit der rechten Maustaste darauf. -> Eigenschaften -> Kompatibilität -> Führen Sie dieses Programm als Administrator aus

Dies wird immer als Admin ausgeführt.

Postbote
quelle
Sie können auch STRG + UMSCHALT + EINGABETASTE verwenden.
Joey
1

Da jemand das VBS-Äquivalent gepostet hat, gibt es hier eine Invoke-Admin-Funktion für 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
quelle
0

Zusamenfassend:

  • Klicken / drücken Sie Start, dann STRG + UMSCHALT und EINGABE. Bestätigen.

Im Detail:

  1. Drücken Sie den Startknopf Typ "cmd" (ohne Anführungszeichen) sofort (1)
  2. Halten Sie STRG und UMSCHALT gedrückt
  3. Drücken Sie Enter
  4. Bestätigen Sie das Dialogfeld Windows Vista UAC

(1) Sofort bedeutet, dass Sie es in das Suchfeld eingeben und nicht in das Feld Ausführen.

Mackaaij
quelle
0

Sie können ein VBScript als solches verwenden. Erstellen Sie eine .vbsDatei, zB 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
quelle