管理者権限で別のバッチ ファイルからバッチ ファイルを実行するにはどうすればよいですか?
RUNASコマンドを試しましたが、管理者パスワードが必要です。
バッチファイルを右クリックして管理者として実行することで、バッチファイルを実行するための代替手段を探しています。別のバッチファイルから自動化したい。
管理者権限で別のバッチ ファイルからバッチ ファイルを実行するにはどうすればよいですか?
RUNASコマンドを試しましたが、管理者パスワードが必要です。
バッチファイルを右クリックして管理者として実行することで、バッチファイルを実行するための代替手段を探しています。別のバッチファイルから自動化したい。
Windows 7 の場合:
そのバッチファイルへのショートカットを作成します
そのショートカット ファイルを右クリックし、[プロパティ] を選択します。
ボタンをクリックしAdvanced
て、管理者として実行するためのチェックボックスを見つけます
下のスクリーンショットを確認してください
PowerShellを使用して、次の場所から b.bat を管理者として実行できa.bat
ます。
set mydir=%~dp0
Powershell -Command "& { Start-Process \"%mydir%b.bat\" -verb RunAs}"
ユーザーに確認ダイアログを表示します。ユーザーが を選択するYES
とb.bat
、管理者として実行されます。
使用する
runas /savecred /profile /user:Administrator whateveryouwanttorun.cmd
初回のみパスワードを要求されます。パスワードが変更されない限り、パスワードを再度要求することはありません。
Windows UACプロンプト (画面全体を黒くし、次のタスクに管理者権限を付与するかどうかを尋ねるプロンプト)を呼び出そうとしている場合、RUNAS はそれを実行するための最もスムーズな方法ではありません。
代わりに、次のコードをコピーして貼り付けて、バッチ ファイルが管理者権限で実行されるようにしてください。
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Requesting Admin access...
goto goUAC )
else goto goADMIN
:goUAC
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:goADMIN
pushd "%CD%"
CD /D "%~dp0"
rem --- FROM HERE PASTE YOUR ADMIN-ENABLED BATCH SCRIPT ---
echo Stopping some Microsoft Service...
net stop sqlserveragent
rem --- END OF BATCH ----
このソリューションは、UAC が有効になっている Windows 7、8.1、および 10 のセットアップで 100% 機能します。
Runas.exe はここでは機能しません。VBScript を使用して、「管理者として実行」シェル動詞を呼び出すことができます。Elevation Powertoys には、昇格されたコマンドを呼び出すことができるバッチファイルが含まれています。
elevate
cmd.exe