Windows Vista: “Yönetici olarak” cmd'de bir .exe programı nasıl yürütülür


12

Evet, bu o. Bir program .exe dos cmd satırında çalıştırmam gerekiyor ve sağ tuşa basıp "yönetici olarak çalıştır" seçeneğini seçmeniz gerekiyor.


Bunu da merak ettim. Benim çözümüm ya komutla bir toplu iş dosyası oluşturmak ve her zaman yönetici olarak çalışmasına izin vermek ya da cmd'yi yönetici olarak açmaktı. Ancak bazı zarif bir çözüm olması gerektiğini düşünüyor.
OregonGhost

Yanıtlar:



7

Cmd'nin kendisini yönetici olarak çalıştırırsanız, oradan başka çalıştırdığınız her şey de olacaktır. Sadece yönetici olarak açılan komut istemine bir kısayol hazırlıyorum. Oradan her şey gitmek iyidir.


5

.Cmd & .vbs betiğinin ikilisini kullandım, yükseltmek adında, benim ihtiyaçlarım için gayet iyi çalışıyor. Tek ihtiyacınız olan yazmak

yükselt [komut]
Başlat> Çalıştır'dan veya komut satırından, komutu yönetici ayrıcalıklarıyla çalıştıracaktır. Umarım yardımcı olur!

İşte elev.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" %*

ve elev.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

Sadece merak ediyorum, bunun runnalar üzerindeki avantajı nedir?
tfinniga

Yaa! Beni yakaladın! :) Runalara göre avantajını bilemem ama runaları bilmediğinde, tek alternatif bu. Kesinlikle utanıyorum :)

Bir keresinde senaryo olarak ne kullandığımızı okursak yardımcı olacağını düşünüyorum!

1
Bu ikili technet.microsoft.com/en-us/magazine/… adresinde soyulur

2
Yükseltme betiğinin en belirgin avantajı, yönetici kullanıcısı ve parola (yönetici kullanıcısı olarak oturum açmış olmanız şartıyla) gerekmeden kullanıcılarınızı UAC altında yöneticiye yükseltmenize olanak sağlamasıdır. Runas.exe yapabilir mi?


2

Ayrıca, Windows Anahtarına basıp CMD yazıp programlarda cmd'yi listeleyebilir, sağ tıkla -> Özellikler -> Uyumluluk -> Bu programı yönetici olarak çalıştır

Bu her zaman Yönetici olarak çalışacaktır.


Ayrıca Ctrl + Shift + Enter tuşlarını da kullanabilirsiniz.
Joey

1

Birisi VBS eşdeğeri yayınladığından, işte PowerShell için bir Invoke-Admin işlevi

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

Kısacası:

  • Başlat / tıklayın, ardından CTRL + ÜST KRKT ve ENTER tuşlarına basın. Onaylamak.

Detayda:

  1. Başlat düğmesine "cmd" yazın (tırnak işaretleri olmadan) hemen (1)
  2. CTRL ve SHIFT tuşlarını basılı tutun
  3. Enter tuşuna basın
  4. Windows Vista UAC iletişim kutusunu onaylayın

(1) Hemen, Çalıştır kutusuna değil, Arama kutusuna yazmak anlamına gelir.


0

VBScript'i bu şekilde kullanabilirsiniz. Bir .vbsdosya oluşturun , örneğin 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”
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.