@echo off

:: クライアント管理ツール Windows10対応 【改訂】Windows OSバージョンに関わらず対応する。Ver_4.1.2.2 
:: OSバージョンを判定し、Windows10以上の場合は、管理者権限で起動する 【改訂】Ver_4.1.2.2 
:: 通信サービスの起動／終了に、管理者として実行する必要があるため

:: 本体バッチ名 (自バッチ名_main.bat とする）
set MAIN_BAT=%~dp0%~n0_main%~x0
:: echo MAIN_BAT=%MAIN_BAT%

:: Windows OSバージョンを判定する
:: Get Major Number Of Windows OS Version (with 'Ver' Command)
:: Windows OSバージョン に関わらず、管理者として実行するようにする。【改訂】Ver_4.1.2.2
:: for /f "tokens=2 delims=[]" %%S in ('ver') Do set _verstr=%%S
:: for /f "tokens=2 delims=. " %%V in ('echo %_verstr%') Do set _majorno=%%V
:: 上の行で、ダブルクォートで囲んだ文字列最後の空白文字は重要
:: echo Major Number Of Windows OS Version = %_majorno%

:: メジャー番号が、Windows 10 未満なら、そのまま実行（以前と同じ）。
:: Windows OSバージョン に関わらず、管理者として実行するようにする。【改訂】Ver_4.1.2.2
:: if %_majorno% LSS 10 goto Main_Proc

:: 管理者権限を判定する
:: 管理者権限を必要とするプログラムを実行してみて、結果が0なら管理者権限を持つと判定
net session > nul 2>&1
:: echo 結果コード = %errorlevel%
:: 既に管理者権限を持っている場合は、そのまま実行
if %errorlevel% EQU 0 goto Main_Proc

:: 管理者として実行する
@echo ”管理者として実行”を設定中
powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process %MAIN_BAT% -Verb runas"
exit

:Main_Proc
:: バッチ本体を実行する
%MAIN_BAT%

