Bir BAT dosyasını her zaman yönetici modu olarak çalışacak şekilde kodlamak nasıl?


149

BAT dosyamın içinde bu satır var:

"Example1Server.exe"

Bunu Yönetici modunda yürütmek istiyorum. Bunu yönetici olarak çalıştırmak için yarasa kodunu nasıl değiştirebilirim?

Bu doğru mu? Alıntıları koymam gerekir mi?

runas /user:Administrator invis.vbs Example1Server.exe


Yanıtlar:


71

runasBir programı belirli bir kullanıcı olarak başlatmak için kullanılır :

runas /user:Administrator Example1Server.exe

6
@karikari: Bunun gibi bir adın ( Example1Server.exe) tırnak içine alınması gerekmez, ancak diğer bazı durumlarda (adındaki boşluklar gibi Example1 Server.exe) onlara gerçekten ihtiyacınız olacaktır. Sen olabilir gerçi bunlar gerekli olmasa bile tırnak kullanabilirsiniz.
Andriy M

18
Yönetici hesabı Yönetici olarak adlandırılmamış olabilir
Anders

9
@Anders: Hayır, olmayabilir; Ben OP "desen tespit" olduğunu varsayalım. Bu bir plz-vermek-me-teh-codez cevap değildi: -S Bu arada, ben OP eklemek gibi daha ayrıntılı komut isteyebilir runas /User:abc "csript myscript.vbs", veya runas /User:abc "cmd /c start ...".
Kerrek SB

16
Bu yanıtın ziyaretçilerin% 90'ının istediği şey olmadığından korkuyorum, çünkü teknik olarak doğru olsa bile sağ tıklamadan> yönetici olarak çalıştırın. Diğer cevabı tekrar kontrol edin. Tam olarak en çok istediği şey.
j riv

13
Hayır, bu cevap teknik olarak yanlış. Yönetici olarak çalıştırmak, adı Yönetici olan bir kullanıcının altında çalışmakla aynı değildir ve ayrıcalıklar farklıdır. Diğer cevaba bakınız.
Alexander Gelbukh

370

Diğer yanıt için Yönetici hesabı parolasını girmeniz gerekir. Ayrıca Yönetici Grubunda bir hesap altında çalışan aynı değildir yönetici olarak çalıştırmak bkz: UAC Wikipedia'da

Windows 7 Talimatları

Yönetici olarak çalıştırmak için, toplu iş dosyası için bir kısayol oluşturun.

  1. Toplu iş dosyasını sağ tıklayın ve kopyala'yı tıklayın
  2. Kısayolu istediğiniz yere gidin
  3. Dizinin arka planını sağ tıklayın
  4. Kısayolu Yapıştır'ı seçin

Ardından kısayolu yönetici olarak çalışacak şekilde ayarlayabilirsiniz:

  1. Kısayola sağ tıklayın
  2. Özellikler seçin
  3. Kısayol sekmesinde Gelişmiş'i tıklatın.
  4. "Yönetici olarak çalıştır" onay kutusunu seçin
  5. Tamam'ı, Tamam'ı tıklayın

Şimdi kısayolu çift tıklattığınızda, sizden UAC onayı istenecek ve ardından Yönetici olarak çalıştır (yukarıda söylediğim gibi Yönetici Grubundaki bir hesap altında çalışmaktan farklıdır)

Aşağıdaki ekran görüntüsünü kontrol edin

Ekran görüntüsü

Not: Yönetici Olarak Çalıştır için bunu yaptığınızda, geçerli dizin (yol) yarasa dosyasıyla aynı olmaz. Bu, yarasa dosyasının yanındaki göreli dosyalara başvurmasıyla ilgili bazı sorunlara neden olabilir. Örneğin, benim Windows 7'de cur dir bat dosyası konumu yerine SYSTEM32 olacak! Bu sorunu çözmek için şunu kullanmalısınız:

cd "%~dp0"

ya da daha iyisi

pushd "%~dp0"

cur dir komutunun yarasa dosyasının bulunduğu yolla aynı olduğundan emin olun.


8
Ah, bu gerçekten gizlenmişti (çoğumuz bu gelişmiş düğmenin içinde bir seçenek olduğunu düşünmemiştik). Diğer karmaşık cevabı kimin düşündüğünü neredeyse bilmiyordum. Bu, ziyaretçilerin% 90'ı + 'nın isteyeceği cevaptır.
j riv

1
Katılıyorum. cevap bu olmalı. Ayrıca, ilerletme düğmesini bulmayı kolaylaştırmak için bir ekran görüntüsü ekledim
fedmich

1
Bu, Windows Server 2012 R2 için de geçerlidir.
garec

3
Windows 10 veya Windows 7'de bu benim için çalışmıyor. Yönetici olarak çalıştırmayı denediğimde, BAT dosyasına ve "Yönetici olarak çalıştır" a tıklayarak veya burada açıklanan tekniği kullanarak toplu iş dosyası bir saniye boyunca yanıp söner ardından toplu iş dosyası yürütülürken komut veya program olmadan hemen kapanır. Ben sadece bir "Merhaba Dünya" yankı çok basit toplu dosyaları çalıştırmayı denedim ve onlar da bu şekilde başarısız. Bu çok sinir bozucu. Şimdiye kadar bir çözüm bulamadım.
Jonathan Elkins

1
@JonathanElkins Toplu iş dosyasının sonuna bir duraklama eklemeyi denediniz mi?
Ed Greaves

32

Bunu bat dosyanızın en üstüne ekleyin:

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

Yöneticiye yükselecek ve doğru dizinde kalacaktır. Windows 10'da test edildi.


1
Windows 7'de test edildi ve harika çalışıyor. Ama ne yaptığını açıklayabilir misiniz? Yarasa dosyalarına aşina değilim.
Sunfloro

1
Sizi admin'e yükselten (zaten değilseniz) bir VBScript dosyası oluşturur ve yarasa dosyasını bu kez yönetici olarak tekrar çalıştırır.
Efendim

1
Tam olarak ne arıyorum! ekstra değişiklik veya ekstra dosya gerekmez!
MSS

1
getadmin.vbs dosyası nedir?
Kiquenet

4
İki kod satırınızı mevcut toplu iş dosyama eklemek benim için iyi bir çözüm. Ayrıca exittoplu iş dosyamın sonuna eklemek zorunda kaldı ya da istemi kalırdı. Bunun nedeni büyük olasılıkla .vbs komutunun ikinci bir komut istemi başlatmasıdır.
Ben

10

Üçüncü taraf bir yardımcı program kullanabiliyorsanız, burada bir elevatekomut satırı yardımcı programı bulunmaktadır .

Bu kullanım açıklamasıdır:

Usage: Elevate [-?|-wait|-k] prog [args]
-?    - Shows this help
-wait - Waits until prog terminates
-k    - Starts the the %COMSPEC% environment variable value and
                executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog  - The program to execute
args  - Optional command line arguments to prog

elevate.exekayalar!
Sangbok Lee

8

Sen kullanabilirsiniz nircmd.exe 's yüceltiliyorlar komutunu

NirCmd Komut Başvurusu - yükselt

elevate [Program] {Command-Line Parameters}

Yalnızca Windows Vista / 7/2008 için: Yönetici haklarına sahip bir program çalıştırın. [Program] bir veya daha fazla boşluk karakteri içerdiğinde, onu tırnak içine almalısınız.

Örnekler:

elevate notepad.exe 
elevate notepad.exe C:\Windows\System32\Drivers\etc\HOSTS 
elevate "c:\program files\my software\abc.exe"

Not: 10 kazanmak için kullanıyorum ve işe yarıyor


6

toplu iş dosyanızı bu araçla .exe'ye dönüştürün: http://www.battoexeconverter.com/ sonra yönetici olarak çalıştırabilirsiniz


2
Bu şekilde oluşturulan exe dosyalarında çok sayıda anti virüsün süper duyarlı olduğunu unutmayın. toplu dosyaları bu şekilde "dönüştürme / şifreleme", kötü amaçlı programlar tarafından kullanılan eski bir yoldur.
Hamy

Bu etki alanını Symantec - Tehdit Türü'nü kullanarak analiz ediyorsanız: othermalware Tehdit Nedeni: Etki alanı kötü amaçlı yazılım olarak bildirildi ve doğrulandı. Kötü amaçlı alan adı veya URL olarak tanımlandı.
Sunil

Kötü öneri!
Vlad

6
go get github.com/mattn/sudo

Sonra

sudo Example1Server.exe

6

Şifre sorununa bir çözüm bulduğumu düşünüyorum. Bu tek argüman gerçekten şaşırtıcı. Parolayı bir kez ister ve bir daha asla sormaz. Başka bir programa koysanız bile, şifre sormaz. İşte burada:

runas /user:Administrator /savecred Example1Server.exe


4
  1. Denemem , runas komutunun yönetici kullanıcının etki alanını içermesi gerektiğini gösteriyor (en azından kuruluşumun çevre kurulumunda var):

    runas /user:AdminDomain\AdminUserName ExampleScript.bat
    

    Yönetici kullanıcısının etki alanını henüz bilmiyorsanız, yönetici kullanıcı olarak bir Komut İstemi örneği çalıştırın ve aşağıdaki komutu girin:

    echo %userdomain%
    
  2. Kerrek SB ve Ed Greaves tarafından sağlanan yanıtlar hedef dosyayı yönetici kullanıcı altında yürütür, ancak dosya bir Komut komut dosyası (.bat dosyası) veya VB komut dosyası (.vbs dosyası) ise normal girişte çalışmaya çalışır. kullanıcı ortamını (kayıt defteri girdilerini değiştirme gibi), komut dosyasının gerçekte çalıştığı ortam normal kullanıcı değil, yönetici kullanıcısı olacağından istediğiniz sonuçları alamayabilirsiniz! Örneğin, dosya, kayıt defterinin HKEY_CURRENT_USER kovanında çalışan bir komut dosyasıysa, etkilenen “geçerli kullanıcı” normal oturum açma kullanıcısı değil, yönetici kullanıcı olur.


0

Özellikler kısayolunda Hedef toplu iş dosyanızın tam fiziksel sürücüsünü \ yolunu kullanın.

İlk başta yapmaya çalıştığım gibi alt sürücüler kullanıyorsanız, bu Windows 10'da çalışmaz ...

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.