常に管理者モードで実行するようにBATファイルをコーディングする方法は?


149

私のBATファイル内に次の行があります。

"Example1Server.exe"

管理者モードで実行したい。これを管理者として実行するようにバットコードを変更するには?

これは正しいです?引用符を付ける必要がありますか?

runas /user:Administrator invis.vbs Example1Server.exe


回答:


71

runas特定のユーザーとしてプログラムを起動するために使用します。

runas /user:Administrator Example1Server.exe

6
@karikari:このような名前(Example1Server.exe)は引用符で囲む必要はありませんが、他の場合(名前のスペースなど)では、Example1 Server.exe実際にそれらが必要になります。あなたはできるものの、それらは、必要とされていない場合でも、引用符を使用しています。
Andriy M

18
管理者アカウントは、Administrator
Anders

9
@アンダース:いいえ、そうではないかもしれません。OPが「パターンを見つける」ことができると思います。これはplz-give-me-teh-codezの答えではありませんでした:-Sところで、OPを追加するrunas /User:abc "csript myscript.vbs"必要がありrunas /User:abc "cmd /c start ..."ます。
Kerrek SB、2011

16
たとえ技術的には正しいとしても、この回答は90%のビジターが望んでいるものではないのではないかと心配しています。右クリックする->管理者として実行するよりも難しいからです。他の答えをもう一度確認してください。それはまさに、ほとんどの人が望んでいることです。
j riv 2013

13
いいえ、この答えは技術的に正しくありません。管理者として実行することは、たまたま名前がAdministratorであるユーザーの下で実行することと同じではなく、権限が異なります。他の答えを見てください。
Alexander Gelbukh

370

もう1つの回答では、管理者アカウントのパスワードを入力する必要があります。また、管理者グループのアカウントで実行することは、管理者として実行することと同じではありません。WikipediaのUACを参照してください。

Windows 7の手順

管理者として実行するには、バッチファイルのショートカットを作成します。

  1. バッチファイルを右クリックし、[コピー]をクリックします。
  2. ショートカットが必要な場所に移動します
  3. ディレクトリの背景を右クリック
  4. ショートカットの貼り付けを選択

次に、管理者として実行するようにショートカットを設定できます。

  1. ショートカットを右クリック
  2. プロパティを選択
  3. [ショートカット]タブで、[詳細]をクリックします
  4. 「管理者として実行」チェックボックスを選択します
  5. OK、OKをクリック

これで、ショートカットをダブルクリックすると、UACの確認と[ 管理者として実行](上記で述べたように、管理者グループのアカウントで実行する場合とは異なります)を求めるプロンプトが表示されます。

下のスクリーンショットを確認してください

スクリーンショット

注: 管理者として実行する場合、現在のディレクトリ(パス)はbatファイルと同じにはなりません。これは、多くの場合、batファイルがその横にある相対ファイルを参照するという問題を引き起こす可能性があります。たとえば、私のWindows 7では、cur dirはbatファイルの場所ではなくSYSTEM32になります。 それを回避するには、使用する必要があります

cd "%~dp0"

以上

pushd "%~dp0"

cur dirがbatファイルと同じパスにあることを確認します。


8
ああ、それは確かに隠されていました(ほとんどの場合、その高度なボタンにそのオプションがあるとは思っていませんでした)。他の複雑な答えを考えた人は誰もそれを知らなかったと確信しています。これは、90%以上の訪問者が望む答えです。
j riv 2013

1
同意する。これが答えになるはずです。さらに、進むボタンを見つけやすくするためにスクリーンショットを追加しました
fedmich

1
これは、Windows Server 2012 R2にも適用されます。
garec 2015年

3
これは、Windows 10またはWindows 7では機能しません。BATファイルを右クリックして「管理者として実行」するか、ここで説明する手法を使用して、管理者として実行しようとすると、バッチファイルが一瞬点滅しますその後、バッチファイル内のコマンドやプログラムを実行せずにすぐに閉じます。「Hello World」をエコーするだけの非常に単純なバッチファイルを実行してみましたが、この方法でも失敗します。これは非常にイライラします。これまでのところ、解決策を見つけることができませんでした。
ジョナサンエルキンズ

1
@JonathanElkinsバッチファイルの最後に一時停止を追加してみましたか?
Ed Greaves 2017

32

これをbatファイルの先頭に追加するだけです:

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 )

管理者に昇格し、正しいディレクトリにとどまります。Windows 10でテスト済み。


1
Windows 7でテストされ、優れた動作をします。しかし、それが何をするか説明できますか?私はバットファイルに精通していません。
Sunfloro

1
これは、管理者に昇格するコードを使用してVBScriptファイルを作成し(まだ行っていない場合)、今度は管理者としてbatファイルを再度実行します。
種牡馬

1
私が正確に探しているもの!追加の変更や追加のファイルは必要ありません!
MSS

1
getadmin.vbsとは?
Kiquenet

4
2行のコードを既存のバッチファイルに追加することは、私にとって良い解決策です。またexit、バッチファイルの最後に追加する必要がありました。そうしないと、プロンプトが表示されたままになります。これはおそらく、.vbsが2番目のコマンドプロンプトを起動するためです。
ベン・

10

サードパーティのユーティリティを使用できる場合elevateここにコマンドラインユーティリティがあります

これは使用法の説明です:

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.exe岩!
サンボクリー

8

あなたは使用することができますnircmd.exe昇格コマンドを

NirCmdコマンドリファレンス-elevate

elevate [Program] {Command-Line Parameters}

Windows Vista / 7/2008のみ:管理者権限でプログラムを実行します。[プログラム]に1つ以上のスペース文字が含まれている場合は、引用符で囲む必要があります。

例:

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

PS:私は勝利10でそれを使用し、それは動作します


6

このツールを使用してバッチファイルを.exeに変換します。http//www.battoexeconverter.com/その後、管理者として実行できます。


2
多くのアンチウイルスは、この方法で構築されたexeファイルに対して非常に敏感であることを覚えておいてください。このようにバッチファイルを「変換/暗号化」することは、悪意のあるプログラムで使用される古い方法です。
Hamy、2016年

シマンテックを使用してこのドメインを分析した場合-脅威の種類:その他のマルウェア脅威の理由:マルウェアの配信として報告および検証されたドメイン。悪意のあるドメインまたはURLとして識別されます。
スニル2018

悪い提案!
Vlad


6

パスワードの問題に対する解決策があると思います。この単一の議論は本当に驚くべきことです。それは一度パスワードを要求し、二度とそれを要求することはありません。別のプログラムに置いても、パスワードの入力は求められません。ここにあります:

runas /user:Administrator /savecred Example1Server.exe


4
  1. 私の実験では、runasコマンドに管理者ユーザーのドメインを含める必要があることを示しています(少なくとも、私の組織の環境設定には含まれています)。

    runas /user:AdminDomain\AdminUserName ExampleScript.bat
    

    管理ユーザーのドメインがまだわからない場合は、コマンドプロンプトのインスタンスを管理ユーザーとして実行し、次のコマンドを入力します。

    echo %userdomain%
    
  2. Kerrek SBEd Greavesの両方が提供する回答は、管理ユーザーの下でターゲットファイルを実行しますが、ファイルが通常のログインで操作しようとするコマンドスクリプト(.batファイル)またはVBスクリプト(.vbsファイル)である場合ユーザーの環境(レジストリエントリの変更など)では、スクリプトが実際に実行される環境は、通常のログインユーザーではなく、管理ユーザーの環境になるため、期待どおりの結果が得られない場合があります。たとえば、ファイルがレジストリのHKEY_CURRENT_USERハイブで動作するスクリプトの場合、影響を受ける「現在のユーザー」は、通常のログインユーザーではなく、管理ユーザーになります。


0

ショートカットのプロパティで、ターゲットバッチファイルへの完全な物理ドライブ\パスを使用します。

私が最初にしようとしたようなサブドライブを使用している場合、これはWindows 10では機能しません...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.