バッチファイルを自動昇格して管理者として実行する方法
おすすめされた: Windowsの問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてください
昇格された権限を必要とするコマンドを含むバッチファイルを作成する必要がある場合があります。 Windows Vista以降のWindowsに含まれているUAC機能により、バッチファイルを起動すると、 右クリックしてコンテキストから[管理者として実行]を選択しない限り、必要なアクセス権 メニュー。 自動昇格するバッチファイルを作成する方法は次のとおりです。
広告
続行する前に、を参照してください バッチファイル(* .bat)をファイルエクスプローラーの新しいメニューに追加する方法. バッチファイルの先頭に次のコンテンツを配置します。
::管理者権限V2を自動的に確認して取得します。 @エコーオフ。 CLS。 エコー。 ECHOECHO実行中の管理シェル。 ECHO:init。 setlocalDisableDelayedExpansion。 「batchPath =%〜0」を設定します (%0)の%% kの場合、batchName = %% 〜nkを設定します。 「vbsGetPrivileges =%temp%\ OEgetPriv_%batchName%.vbs」を設定します setlocal EnableDelayedExpansion:checkPrivileges。 ネットファイル1> NUL 2> NUL。 if '%errorlevel%' == '0'(goto gotPrivileges)else(goto getPrivileges):getPrivileges。 if '%1' == 'ELEV'(echo ELEV&shift / 1&goto gotPrivileges) エコー。 エコー ************************************** 特権昇格のためにUACを呼び出すECHO。 ECHO ************************************** ECHO Set UAC = CreateObject ^( "Shell。 アプリケーション "^)>"%vbsGetPrivileges% " ECHO args = "ELEV" >> "%vbsGetPrivileges%" WScriptの各strArgのECHO。 引数>> "%vbsGetPrivileges%" ECHO args = args ^&strArg ^& "" >> "%vbsGetPrivileges%" ECHO Next >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!"、args、 ""、 "runas"、1 >> "%vbsGetPrivileges%" "%SystemRoot%\ System32 \ WScript.exe" "%vbsGetPrivileges%"%* / B:gotPrivilegesを終了します。 setlocal&pushd。 cd / d%〜dp0。 if '%1' == 'ELEV'(del "%vbsGetPrivileges%" 1> nul 2> nul&shift / 1):: START。 REMシェルを管理者として実行します(例)-必要に応じてここにコードを配置します。 ECHO%batchName%引数:%1%2%3%4%5%6%7%8%9。
最後の行より下に標高が必要な独自のバッチコマンドを配置します。
提供されたコードは、管理者として実行されていない場合に再起動する特別なVBSファイルを作成します。 したがって、制限されたアクセス許可で起動すると、コマンドを実行する前に特権を昇格するように要求するUACプロンプトが表示されます。
Windows10での外観は次のとおりです。
このコードのクレジットは マット.
おすすめされた: Windowsの問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてください