管理者権限でbatバッチを実行させる方法
1. 最初の方法
一部のコンピュータは非管理者ログインであり、プログラムを実行する際に、実行するかしないかのプロンプトを表示する必要があります。解決方法は以下の通りです。
@ echo off
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin",""," runas",1)(window.close)&goto :eof
:Admin
//just add the above command to the beginning of your bat
//The following is the command you need to execute
set path=%~dp0
echo install mysql service...
echo %path%
cd %path%\bin\
mysqld.exe --remove mysql
mysqld.exe --install mysql
echo start mysql Serviceo
"%SystemRoot%"\system32\net start mysql
2.管理者権限を取得するためのbatスクリプト
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","",""," quot;runas",1)(window.close)&&exit
cd /d "%~dp0"
batファイルの先頭に記述することで実現します。
3. batスクリプトで管理者権限でコマンドを実行する
batスクリプトファイルの1行目に、以下のコマンドを追加します。
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c % ~s0 ::","", "runas",1)(window.close)&&exit
4. バッチ(bat)ファイルを管理者として自動的に実行する
日々の運用・保守作業や、Windowsユーザーのシステムインストールや設定を容易にするためなど、Windowsに付属するバッチ(bat)ファイルを使用することは、最も簡単で迅速な方法の一つです。
しかし、バッチスクリプトはデフォルトでは管理者として実行されないので、一般的にはスクリプトの名前を "XXXXXXX (右クリックして管理者として実行してください!) .bat" としますが、このプロンプトを無視して直接実行するユーザーが必ずいて、その場合は権限が不足しているためスクリプトが失敗してしまいます。回避策として、まずvbsスクリプトを呼び出し、vbsスクリプトを通してbatのrunas部分を管理者として呼び出すことでbatを起動させることができます。
私たちのスクリプトはrunasの下に書くことができるので、batスクリプトをクリックすると、管理者として実行することができます。
サンプルコードは以下の通りです。
@ECHO OFF
setlocal EnableDelayedExpansion
color 3e
title Add service configuration
PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas",""," runas",1)(window.close)&goto :eof
:runas
::fill in your own script
echo Execution complete, any key to exit
pause >nul
exit
5. 管理者権限でbatスクリプトを実行する
作成した.batファイルの先頭に以下のスクリプトを追加し、.batファイルをダブルクリックするだけで、管理者権限で実行することができます。
@echo off&color 17
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute(""""%~0""", "::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo The current run path is: %CD%
echo Administrator privileges have been obtained
6. BATやCMDのバッチを管理者として実行させる方法
BATやCMDのバッチを管理者として実行させるには?
バッチによっては、必要な結果を得るために、非常に高い権限で実行する必要があります。
以下のコードをバッチの先頭に記述することで、管理者権限で実行できるようになります。
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
7. コマンドラインCMDバッチを管理者として自動実行する正しい方法
パスにスペースがある場合の問題を修正
でバッチを開始します。
パラメータ無しで適用
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd. exe","/c "^&chr(34)^&& quot;%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exe,&excd%"/c **************************************************************************** 終了
1つのパラメータに適用される
%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd. exe","/c "^&chr(34)^&& quot;%~0"^&chr(34)^&" "^&chr(34)^&"%~1"^&chr(34)^&" : :","%cd%", "runas",1)(window. close)&&終了
その他のパラメータなどについては
もう1つのパラメータ :: を付けてバッチを実行すると、この文は実行されない
8.3 のショートパスとの互換性を保つために
%~0
などを
%~s0
その他
理論的には問題ないのですが、スタートパスが不安定なこともあり、その後に
pushd
または
cd /d
8. 管理者権限でbatファイルを実行するいくつかの方法
1. batのショートカットを作成し、ショートカットを右クリック -->プロパティ -->詳細 -->管理者として実行します。
2、bat to exeツールをダウンロードし、batをexeに変換し、exeを右クリック-->プロパティ-->互換性-->管理者として実行します。
3. 管理者権限でcmdを実行し、dos boxで対応するbatを実行します。
管理者権限でbatバッチを実行する方法についての説明は以上となります。管理者権限でbatを実行する方法については、スクリプトハウスの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。
関連
-
バッチスクリプトによる特定ディレクトリでのGit-Bashウィンドウの立ち上げ
-
一括リネーム方式
-
cmdで現在のシステム時刻を取得するバット
-
DOSリダイレクトコマンドの使い方とセキュリティへの応用
-
Oracle、mysqlのデータベース停止・起動バッチファイル
-
cmdでdドライブまたはdドライブ内のフォルダーを入力する
-
dosコマンドライン選択コマンド使用詳細説明
-
DOSのバッチ処理における%cd%と%~dp0の違いについて説明します。
-
リテラシーのためのDosバッチ処理コマンド
-
script_tool_for_windows.bat Windows 環境のホストのためのワンクリック配備スクリプト
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
バッチバットは、同じ内容のtxtテキストの最初の列の最後の列に数字を追加する
-
BATが空間のある時間を手に入れるための解決策
-
BATの現在の作業パスを変更するWindowsバッチプロセス
-
ワンクリックで jdk 環境変数を設定するバッチコード
-
システム時間抽出のためのBATバッチコード(バグ修正)
-
Windowsでbatスクリプトを使用したFTPの時間指定アップロードとダウンロード
-
cmd.exe 共通スタートアップ・パラメーター入門
-
フォルダバット内の全ファイルの個数と合計サイズの一括統計処理
-
Batはforfilesを使って期限切れのファイルを自動的に一括削除する
-
certutilを使ったHex2BinとBase64の暗号化方式