goo blog サービス終了のお知らせ 

B級好きですが何か?

世の中にある様々なB級があります。そんな愛すべきB級たちを紹介するブログです。

管理者権限でバッチファイルを実行

2022-09-18 21:21:35 | Weblog
■管理者権限でなければ管理者実効(バッチ)
echo off
rem 文字化け対策
chcp 65001
rem 管理者権限でしか開けないopenfilesを実行する
openfiles > nul 2>&1
rem openfilesの結果が1つまり管理者権限がない場合は・・・
if %errorlevel% == 1 (
rem 管理者権限で開きなおす。
Powershell Start-Process -FilePath "%0" -Verb RunAs
pause
exit
)
rem 以降に管理者権限の実行させたいコマンドを記載していく。
pause

別解
@echo off
cd /d %~dp0
for /f "tokens=3 delims=\ " %%i in ('whoami /groups^|find "Mandatory"') do set LEVEL=%%i
if NOT "%LEVEL%"=="High" (
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -Command "Start-Process %~f0 -Verb runas"
exit
)

rem これ以降に、実行したい処理を記述します

別解2
whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
 @powershell start-process ”%~0" -verb runas
 echo 管理者権限がありません。管理者権限で実行します
 exit
)
echo 管理者権限に自動で昇格できました。
pause
exit

※%~0は自分自身のファイルパスを返す変数です

Powershellの場合
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators"))
{
Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs
exit
}

rem これ以降に、実行したい処理を記述します

■管理者権限でコマンドプロンプトを起動
powershell start-process cmd -verb runas


コメントを投稿