SQLの窓

2018年03月07日


バッチファイル内で、コマンドプロンプトが管理者権限で実行されているかのチェック

Windows10用WinHlp32.exeインストールバッチファイル というものを見つけて、Windows10 で実行してうまく行ったので、バッチファイルを読んでみたら面白い処理があったので、環境変数を使わないパターンで整理してみました。

@echo off

:check1
for /f "tokens=1 delims=," %%i in ('whoami /groups /FO CSV /NH') do (
	if "%%~i"=="BUILTIN\Administrators" goto :check2
)

echo 管理者グループではありません
goto :end

:check2
for /f "tokens=1 delims=," %%i in ('whoami /groups /FO CSV /NH') do (
	if "%%~i"=="Mandatory Label\High Mandatory Level" goto :admin
)
echo 管理者権限で実行してください
goto :end

:admin

echo 管理者権限で実行しています

:end

/f はファイルを読み込んだりするスイッチですが、コマンドの実行結果も使えるので、ここでのコマンドは whoami です。

引数の /groups /FO CSV /NH は、実行中のユーザが属するグループの一覧を CSV 形式で タイトルヘッダー無しで表示という意味です。

"tokens=1 delims=," は、CSV 形式なので、カンマで分解して先頭の文字列を使うという意味で、結果が %%~i に入るので文字列としてチェックする為に " で挟んで右辺と比較しています。

二つの条件を両方満たしたら、管理者グルーブのユーザが管理者権限で実行している事になります。 

管理者権限のチェックはそれほど重要ではありませんが、バッチファイルでどうしてもいろいろ分岐したい場合に使われるテクニックで、コマンドの結果で判断できるので、レジストリの内容を REG QUERY で取り出して利用も可能です。


※ 管理者権限でないと、High Mandatory Level では無く、Medium Mandatory Level でした。


【コマンド : バッチファイルの最新記事】
posted by lightbox at 2018-03-07 17:27 | コマンド : バッチファイル | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり