忍者ブログ

◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例

   
カテゴリー「Windows Script」の記事一覧

【BAT】WinSCP実行

@echo off
REM #*************************
REM # 変数定義
REM #*************************
set "TERATERM_DIR=C:\teraterm-5.4.1"
set "WINSCP_DIR=C:\WinSCP-6.5.6-Portable"
 
color 8a
echo *************************
echo TERATERM_DIR
echo *************************
echo WINSCP_DIR
echo *************************
timeout 2
 
REM #*************************
REM # メニュー画面の選択処理
REM #*************************
:MENU
cls
color 02
echo ====================================
echo   メニュー:実行する処理を選んでください
echo ====================================
echo  [1] Tera Term接続
echo  [2] WinSCP接続
echo  [q] 終了
echo ====================================
echo.
 
set /p CHOICE="メニューから選択 : "
if "%CHOICE%"=="1" goto RUN_01
if "%CHOICE%"=="2" goto RUN_02
if "%CHOICE%"=="q" goto TARGET_EXIT
 
REM #*************************
REM # 入力エラー処理
REM #*************************
color 04
echo 不正な入力です。1から3の数字を入力してください。
pause
goto MENU
 
REM #*************************
REM # 処理(1)
REM #*************************
:RUN_01
color 09
echo Tera Term マクロを起動
"%TERATERM_DIR%\ttpmacro.exe" "%USERPROFILE%\Desktop\LOGIN.ttl"
goto TARGET_END
 
REM #*************************
REM # 処理(2)
REM #*************************
:RUN_02
color 09
echo WinSCP を起動
"%WINSCP_DIR%\WinSCP.exe" sftp://<ユーザ>:<パスワード>@192.168.0.xx/ /rawsettings SshHostKeyPolicy=ad-hoc
goto TARGET_END
 
REM #*************************
REM # メニュー画面へ遷移
REM #*************************
:TARGET_END
color 08
echo.
echo メニューに戻ります。
timeout 2
goto MENU
 
REM #*************************
REM # 終了処理
REM #*************************
:TARGET_EXIT
color 07
echo 終了
timeout 2
PR

【TTL】ListBoxログイン②

  ※※※※※※※※※※※※※※
  ※※※ TTL_ログイン.ttl ※※
  ※※※※※※※※※※※※※※
;*****************************
;■ 対象サーバ情報
;*****************************
strdim Server_NAME 4
Server_NAME[0] = '【サーバ名】'
Server_NAME[1] = '【サーバ名】'
Server_NAME[2] = '【サーバ名】'
Server_NAME[3] = '【サーバ名】'
;-----------------------------
strdim Server_IPaddress 4
Server_IPaddress[0] = '192.168.0.xx'
Server_IPaddress[1] = '192.168.0.xx'
Server_IPaddress[2] = '192.168.0.xx'
Server_IPaddress[3] = '192.168.0.xx'
;-----------------------------
strdim Server_USER 4
Server_USER[0] = '【ユーザID】'
Server_USER[1] = '【ユーザID】'
Server_USER[2] = '【ユーザID】'
Server_USER[3] = '【ユーザID】'
;-----------------------------
strdim Server_PASS 4
Server_PASS[0] = '【パスワード】'
Server_PASS[1] = '【パスワード】'
Server_PASS[2] = '【パスワード】'
Server_PASS[3] = '【パスワード】'
 
;*****************************
;■ サーバ選択画面
;*****************************
getdir TTL_Path
strconcat TTL_Path '\TTL_SSH.ttl'
include TTL_Path
 
;*****************************
;■ ログイン後にコマンド実行
;*****************************
pause 1
sendln
sendln
wait '$' '#'
sendln
send 'date ; uname -n ; id'
sendln
sendln
 
  ※※※※※※※※※※※※※※
  ※※※※TTL_SSH.ttl ※※※※
  ※※※※※※※※※※※※※※
 
;*****************************
;■ 選択画面の表示
;-----------------------------
listbox '『対象を選択してください』' '【サーバ名】' Server_NAME
;-----------------------------
;■ 選択したresult値を取得
if result >= 0 then
  paramIP = Server_IPaddress[result] ;; ■ IPアドレス
  paramUSER = Server_USER[result]    ;; ■ ユーザ名
  paramPASS = Server_PASS[result]    ;; ■ パスワード
  LOG_File = Server_NAME[result]     ;; ■ ログファイル名
else
  end
endif
 
;*****************************
;■ SSHログイン情報
;-----------------------------
;■ SSHの認証方式の設定
;-----------------------------
paramAUTH = 'password'               ;; ■ 認証方式の値
;-----------------------------
;■ INIファイルのパス設定
;-----------------------------
getdir macroDIR                      ;; ■ 現在のパス取得
strconcat macroDIR '\TERATERM.INI'   ;; ■ INIファイル名
paramINI = macroDIR                  ;; ■ INIファイルの値
 
;*****************************
;■ SSH接続コマンド編集
;-----------------------------
LoginSSH = paramIP                      ;; ■ IPアドレス
strconcat LoginSSH ':22 /ssh /2 /auth=' ;; ■ 認証方式オプション
strconcat LoginSSH paramAUTH            ;; ■ 認証方式の値
strconcat LoginSSH ' /user='            ;; ■ ユーザ名オプション
strconcat LoginSSH paramUSER            ;; ■ ユーザ名の値
strconcat LoginSSH ' /passwd='          ;; ■ パスワードオプション
strconcat LoginSSH paramPASS            ;; ■ パスワードの値
strconcat LoginSSH ' /F='               ;; ■ INIファイルオプション
strconcat LoginSSH paramINI             ;; ■ INIファイルの値
 
;*****************************
;■ LOGファイルの設定
;-----------------------------
getdir LOG_Path
strconcat LOG_Path '\LOG\'
getdate LogDate '_%Y%m%d-%H%M%S.log'
strconcat LOG_File LogDate
strconcat LOG_Path LOG_File
 
;*****************************
;■ SSH接続ログイン
;-----------------------------
;; messagebox LOG_Path 'デバッグ用メッセージ'
connect LoginSSH
logopen LOG_Path 0 0
 
;*****************************
;■ タイトル設定
;-----------------------------
settitle LOG_Path

【TTL】ListBoxログイン①

;*****************************
;■ SSHログイン情報
;*****************************
paramUSER = '<ユーザ名>     ;; ■ ユーザ名の値
paramPASS = '<パスワード>   ;; ■ パスワードの値
;*****************************
;■ SSHの認証方式の設定
;*****************************
paramAUTH = 'password'        ;; ■ 認証方式の値
;*****************************
;■ INIファイルのパス設定
;*****************************
getdir macroDIR                      ;; ■ 現在のパス取得
strconcat macroDIR '\TERATERM.INI' ;; ■ INIファイル名
paramINI = macroDIR                  ;; ■ INIファイルの値
;*****************************
;■ 表示するサーバ名の設定
;*****************************
strdim Server_NAME 5
Server_NAME[0] = '【サーバ名】'
Server_NAME[1] = '【サーバ名】'
Server_NAME[2] = '【サーバ名】'
Server_NAME[3] = '【サーバ名】'
Server_NAME[4] = '【サーバ名】'
;*****************************
;■ 対象IPアドレスの設定
;*****************************
strdim Server_IPaddress 5
Server_IPaddress[0] = '192.168.0.xx'
Server_IPaddress[1] = '192.168.0.xx'
Server_IPaddress[2] = '192.168.0.xx'
Server_IPaddress[3] = '192.168.0.xx'
Server_IPaddress[4] = '192.168.0.xx'
;*****************************
;■ 選択画面の表示
;*****************************
listbox '『対象を選択してください』' '【サーバ名】' Server_NAME
;*****************************
;■ 選択したresult値を取得
;*****************************
if result >= 0 then
    paramIP = Server_IPaddress[result]
    LOG_File = Server_NAME[result]
else
    end
endif
;*****************************
;■ SSH接続コマンド編集
;*****************************
LoginSSH = paramIP                      ;; ■ IPアドレス
strconcat LoginSSH ':22 /ssh /2 /auth=' ;; ■ 認証方式オプション
strconcat LoginSSH paramAUTH            ;; ■ 認証方式の値
strconcat LoginSSH ' /user='            ;; ■ ユーザ名オプション
strconcat LoginSSH paramUSER            ;; ■ ユーザ名の値
strconcat LoginSSH ' /passwd='          ;; ■ パスワードオプション
strconcat LoginSSH paramPASS            ;; ■ パスワードの値
strconcat LoginSSH ' /F='               ;; ■ INIファイルオプション
strconcat LoginSSH paramINI             ;; ■ INIファイルの値
;*****************************
;■ SSH接続ログイン
;*****************************
connect LoginSSH
;*****************************
;■ LOGファイルの設定
;*****************************
getdir LOG_Path
strconcat LOG_Path '\LOG\'
getdate LogDate '_%Y%m%d-%H%M%S.log'
strconcat LOG_File LogDate
strconcat LOG_Path LOG_File
logopen LOG_Path 1 1
;; messagebox LOG_Path 'デバッグ用メッセージ'
;*****************************
;■ タイトル設定
;-----------------------------
settitle LOG_Path

;*****************************
;■ プロンプト待ち&コマンド
;*****************************
wait '$' '#'
sendln
sendln
send 'date ; uname -n ; id'
sendln
sendln
wait '$' '#'
sendln

【BAT】tar.gzファイルの圧縮/展開

==============================
圧縮バッチ(文字コード SJIS)
 cd %CD%
 echo 対象ファイル名
 echo %~nx1
 echo 出力先
 echo %CD%
 tar -cvzf %~nx1_%date:/=%.tar.gz %~nx1
==============================
展開バッチ(文字コード SJIS)
 cd %CD%
 echo 対象ファイル名
 echo %~nx1
 echo 出力先
 echo %CD%
 tar -xvzf %1

【BAT】RDPバッチ【例】

@echo off
mode con: cols=80 lines=30
REM ## カラーを設定
REM ## color e1
color 0a
set Kankyo="環境"
set Server="サーバ名"
set Name="ホスト名"
set Username="ユーザ名"
set Password="パスワード"
echo .
echo ***************
echo 【以下の接続先情報を確認してください。】
echo 環境名 : %Kankyo%
echo サーバ名: %Server%
echo ホスト名: %Name%
echo ユーザ名: %Username%
echo ***************
pause
REM ## カラーを設定
REM ## color 3f
color 9e
cmdkey /generic:TERMSRV/%Server% /user:%Username% /pass:%Password%
start mstsc /v:%Server%
timeout 3
cmdkey /delete:TERMSRV/%Server%

【BAT】WinMerge比較

※WinMergeでフォルダ単位で比較する際の自動化スクリプト
 ①の引数部分は必要に応じて複数行コピーして適宜書き換える
 ②のbatファイルのWinMergeU.exeの格納場所を適宜書き換える
 【使い方】①、②のbatファイルを同じ場所に置き、①のバッチをダブルクリックで実行する
 ━━━━━━━━━━━━━━━
 ① WinMerge比較.bat
 ━━━━━━━━━━━━━━━
@echo off
REM ==========================
REM ■プロンプト画面サイズ
REM --------------------------
mode com: cols=250 lines=100
REM ==========================
REM ■文字コード
REM --------------------------
echo .
chcp 932
echo .
REM ==========================
REM ■日付と時刻の取得
REM --------------------------
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set hhmmss=%time::=%
set hhmmss=%hhmmss:~0,6%
echo *************************
echo 【作業日時】
echo -------------------------
echo %YYYYMMDD%_%hhmmss%
echo *************************
echo .
timeout 5
REM ==========================
REM ■start_EXE.batを呼び出し実行
REM --------------------------
echo *************************
echo 【比較処理 ⇒ 開始】
echo *************************
echo .
REM --------------------------
REM ## 引数部分は必要に応じて複数行コピーして適宜書き換える
REM ## Arg_0=<start_EXE.bat>
REM ## Arg_1=<比較左側フォルダ>
REM ## Arg_2=<比較右側フォルダ>
REM ## Arg_3=<比較対象の格納先>
REM ## Arg_4=<比較結果の出力先>
set Arg_0=%~dp0start_EXE.bat
set Arg_1=ORIGINAL
set Arg_2=DIFF
set Arg_3=%~dp0\比較データ
set Arg_4=%~dp0\比較結果_%YYYYMMDD%_%hhmmss%
set Arg_a=TEST
set Arg_b=01
set Arg_c=02
REM --------------------------
echo *************************
echo 【引数の表示】
echo -------------------------
echo 引数0:%Arg_0%
echo 引数1:%Arg_1%
echo 引数2:%Arg_2%
echo 引数3:%Arg_3%
echo 引数4:%Arg_4%
echo 引数A+引数B:%Arg_a%%Arg_b%
echo 引数A+引数C:%Arg_a%%Arg_c%
echo *************************
echo .
timeout 5
REM ==========================
REM ■比較対象のフォルダ作成
REM --------------------------
cd /d %USERPROFILE%\Desktop
mkdir %Arg_3%\%Arg_1%
mkdir %Arg_3%\%Arg_2%
echo *************************
echo 比較対象データを以下に格納してください
echo -------------------------
echo 比較元データ:%Arg_1%
echo 比較先データ:%Arg_2%
echo *************************
echo .
echo 実行する場合⇒「Enter」/キャンセルする場合⇒「Ctrl」+「C」
pause
start %Arg_0% %Arg_1%\%Arg_a%%Arg_b% %Arg_2%\%Arg_a%%Arg_b% %Arg_3% %Arg_4%
start %Arg_0% %Arg_1%\%Arg_a%%Arg_b% %Arg_2%\%Arg_a%%Arg_c% %Arg_3% %Arg_4%
start %Arg_0% %Arg_1%\%Arg_a%%Arg_b% %Arg_1%\%Arg_a%%Arg_c% %Arg_3% %Arg_4%
echo .
echo *************************
echo 【比較処理 ⇒ 終了】
echo *************************
timeout 5
exit
 ━━━━━━━━━━━━━━━
 ② start_EXE.bat
 ━━━━━━━━━━━━━━━
@echo off
REM ==========================
REM ■プロンプト画面サイズ
REM --------------------------
mode com: cols=150 lines=50
REM ==========================
REM ■ローカル変数開始(遅延展開変数)
REM --------------------------
setlocal ENABLEDELAYEDEXPANSION
REM ==========================
REM ■画面カラー設定
REM --------------------------
color 17
cls
REM ==========================
REM ■引数表示
REM --------------------------
echo -------------------------
echo 【WinMerge格納場所】%0
echo 【比較左側フォルダ】%1
echo 【比較右側フォルダ】%2
echo 【比較対象の格納先】%3
echo 【比較結果の出力先】%4
echo -------------------------
echo .
timeout 3
echo .
echo ##########################
REM ==========================
REM ■変数設定(引数の格納)
REM --------------------------
REM set XxX_EXE="C:\Program Files (x86)\WinMerge\WinMergeU.exe"
set XxX_EXE="C:\Program Files\WinMerge\WinMergeU.exe"
set XxX_Left=%1
set XxX_Right=%2
set XxX_Folder=%3
set XxX_WMrg=%4
REM ==========================
REM ■比較対象の格納先へ移動
REM --------------------------
cd /d %XxX_Folder%
echo .
echo -------------------------
echo 【作業場所】%CD%
echo -------------------------
echo .
timeout 3
echo .
echo ##########################
echo .
REM ==========================
REM ■変数設定(比較結果の出力先)
REM --------------------------
mkdir %XxX_WMrg%
REM ==========================
REM ■変数設定(レポート出力ファイル:HTML)
REM --------------------------
set XxX_OUT=%XxX_WMrg%\%XxX_Right%.html
REM ==========================
REM ■WinMerge比較実行⇒結果レポート出力
REM --------------------------
start " " %XxX_EXE% /r /wl /wr %XxX_Left% %XxX_Right% /ignorews /ignoreblanklines /ignoreeol /noninteractive /noprefs /cfg Settings/DirViewExpandSubdirs=1 /cfg ReportFiles/ReportType=2 /cfg ReportFiles/IncludeFileCmpReport=1 /r /u /or %XxX_OUT%
REM ==========================
REM ■出力結果の表示
REM --------------------------
color 0a
echo .
echo -------------------------
echo 【比較結果のレポートファイル】
echo %XxX_OUT%
echo -------------------------
echo .
echo ##########################
echo .
timeout 5
REM ==========================
REM ■ローカル変数終了
REM --------------------------
endlocal
exit

【BAT】NetWork設定

IPアドレス設定バッチスクリプト(①から②を呼び出して実行する)
★★★ ①「【ネットワーク設定変更】.bat」 ★★★
@echo off
REM ==========================
REM ■ ループ処理で背景カラー変更
for /l %%a in (1,1,9) do (
  color %%aF
)
REM ==========================
REM ■ ネットワーク設定画面の表示
ncpa.cpl
REM ==========================
REM ■ 変数設定
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
REM ==========================
REM ■ バッチ呼出し処理(管理者権限)【引数渡し】
powershell start-process .\IP_set.bat "192.168.x.ZZ" -Verb runas
REM ==========================
REM ■ ファイル初期化
type nul > .\IPCONFIG_%YYYYMMDD%.txt
REM ==========================
REM ■ ネットワーク設定をファイルに書き込む
echo ------------------------- >> .\IPCONFIG_%YYYYMMDD%.txt
REM ## ipconfig /all >> .\IPCONFIG_%YYYYMMDD%.txt
REM ## echo ------------------------- >> .\IPCONFIG_%YYYYMMDD%.txt
netsh interface ipv4 show config >> .\IPCONFIG_%YYYYMMDD%.txt
echo ------------------------- >> .\IPCONFIG_%YYYYMMDD%.txt
exit
★★★ ②「IP_set.bat」 ★★★
@echo off
REM ##########################
REM ■ 開始処理
REM ##########################
REM ==========================
REM ■ DOSプロンプト画面サイズ
mode con: cols=80 lines=50
REM ==========================
REM ■ ローカル変数:開始
setlocal ENABLEDELAYEDEXPANSION
REM ==========================
REM ■ 変数設定
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set IFNAME="イーサネット"
set IPADDRESS=192.168.x.XX
set SUBNETMASK=255.255.255.0
set DEFAULTGW=192.168.x.x
REM ==========================
REM ■ 引数の値を変数にセット
set IPADDRESS=%1
REM ==========================
color a9
echo.
echo *************************
echo 【文字コード】
echo -------------------------
chcp 932
echo *************************
echo.
echo *************************
echo 【日付表示:YYYYMMDD形式】
echo -------------------------
echo %date:~0,4%%date:~5,2%%date:~8,2%
echo *************************
echo.
Timeout 1
cls
color f9
echo.
echo -------------------------
echo 【現在のIPアドレス設定】
echo -------------------------
echo netsh interface ipv4 show config %IFNAME%
netsh interface ipv4 show config %IFNAME%
echo.
echo -------------------------
echo ⇒ネットワーク設定情報を「IPCONFIG_%YYYYMMDD%.txt」へ出力
echo -------------------------
echo.
pause
goto MENU_START
:MENU_Zero
cls
color 17
echo.
echo -------------------------
echo 【現在のIPアドレス設定】
echo -------------------------
echo netsh interface ipv4 show config %IFNAME%
netsh interface ipv4 show config %IFNAME%
echo -------------------------
pause
REM ##########################
REM ■ メニュー表示
REM ##########################
:MENU_START
Timeout 1
cls
color 0f
echo *************************
echo 【メニュー】
echo *************************
echo * MENU
echo *
echo * 【0】: IPアドレス確認
echo * 【1】: DHCP設定
echo * 【2】: IPアドレス設定
echo *
echo * 【99】: 終了
echo *
echo *************************
set USR_INPUT_STR=
set /P USR_INPUT_STR="番号を入力してください: "
if ""%USR_INPUT_STR%""=="""" GOTO MENU_START
if %USR_INPUT_STR%==0 (goto MENU_Zero)
if %USR_INPUT_STR%==1 (goto MENU_START_01)
if %USR_INPUT_STR%==2 (goto MENU_START_02)
if %USR_INPUT_STR%==99 (goto MENU_END)
goto MENU_ERROR
REM ##########################
REM ■ DHCP設定
REM ##########################
:MENU_START_01
cls
color 17
echo.
echo -------------------------
echo 【DHCP設定】
echo.
echo IPアドレス:DHCP
echo サブネット:DHCP
echo ゲートウェイ:DHCP
echo.
echo -------------------------
echo 【y】: 設定
echo 【n】: キャンセル
echo ⇒上記以外はメニューに戻る
echo -------------------------
REM ==========================
REM ■ キー入力判定
set INPUT_KEY=nul
set /p INPUT_KEY=キー入力:
if '%INPUT_KEY%'=='n' goto MENU_END
if '%INPUT_KEY%'=='y' goto MENU_START_DHCP
goto MENU_START
:MENU_START_DHCP
cls
echo DHCP
netsh interface ipv4 set address %IFNAME% dhcp
netsh interface ipv4 set dns %IFNAME% dhcp
echo.
echo -------------------------
echo 【設定後のIPアドレス表示】
echo -------------------------
echo netsh interface ipv4 show config %IFNAME%
netsh interface ipv4 show config %IFNAME%
echo -------------------------
pause
goto MENU_END
REM ##########################
REM ■ STATIC設定
REM ##########################
:MENU_START_02
cls
color 9f
echo.
REM ## echo -------------------------
REM ## echo 【設定値の入力】
REM ## echo -------------------------
REM ## echo.
REM ## REM ==========================
REM ## REM ■ 変数初期化
REM ## set IP_1=
REM ## set IP_2=
REM ## set IP_3=
REM ## set IP_4=
REM ## REM ==========================
REM ## REM ■ 入力した値を変数に格納
REM ## set /p IP_1=第1オクテット:
REM ## set /p IP_2=第2オクテット:
REM ## set /p IP_3=第3オクテット:
REM ## set /p IP_4=第4オクテット:
REM ## REM ==========================
REM ## REM ■ IP_1~IP_4を結合してIPADDRESSに格納する
REM ## set IPADDRESS=%IP_1%.%IP_2%.%IP_3%.%IP_4%
REM ## REM ==========================
echo -------------------------
echo 【IPアドレス設定】
echo.
echo IPアドレス:%IPADDRESS%
echo サブネット:%SUBNETMASK%
echo ゲートウェイ:%DEFAULTGW%
echo.
color 17
echo -------------------------
echo 【y】: 設定
echo 【n】: キャンセル
echo 【m】: メニューに戻る
echo ⇒上記以外は設定値の再入力
echo -------------------------
REM ==========================
REM ■ キー入力判定
set INPUT_KEY=nul
set /p INPUT_KEY=キー入力:
if '%INPUT_KEY%'=='n' goto MENU_END
if '%INPUT_KEY%'=='m' goto MENU_START
if '%INPUT_KEY%'=='y' goto MENU_START_STATIC
goto MENU_START_02
:MENU_START_STATIC
netsh interface ipv4 set address %IFNAME% static %IPADDRESS% %SUBNETMASK% %DEFAULTGW% 1
REM ## netsh interface ipv4 set dns %IFNAME% static %DEFAULTGW% primary validate=no
netsh interface ipv4 set dns %IFNAME% dhcp
echo.
echo -------------------------
echo 【設定後のIPアドレス表示】
echo -------------------------
echo netsh interface ipv4 show config %IFNAME%
netsh interface ipv4 show config %IFNAME%
echo -------------------------
pause
goto MENU_END
REM ##########################
REM ■ エラー処理
REM ##########################
:MENU_ERROR
cls
color 0c
echo *************************
echo 【エラー(メニューに戻る)】
echo *************************
goto MENU_START
REM ##########################
REM ■ 終了処理:MENU_END
REM ##########################
cls
color 0a
echo *************************
echo 【終了】
echo *************************
REM ==========================
REM ■ ローカル変数:終了
endlocal
Timeout 1
exit

【BAT】service表示

@echo off
setlocal
REM ==========================
REM サービス表示名
set DISPLAY_NAME=
REM サービス名
set SERVICE_NAME=
REM サービスの起動状態
set SERVICE_STAT=
REM ==========================
set DISPLAY_NAME="Windows Time"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
set DISPLAY_NAME="Windows Update"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
set DISPLAY_NAME="Themes"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
set DISPLAY_NAME="Windows Search"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
goto END
REM ==========================
::: サービス表示名を元にサービス名を取得
:::
::: 必要な環境変数
:::  DISPLAY_NAME
::: 設定される環境変数
:::  SERVICE_NAME
:::
REM --------------------------
:GET_SERVICE_NAME
set SERVICE_NAME=
if not defined DISPLAY_NAME exit /b 1
set CMD=sc getkeyname %DISPLAY_NAME%
for /f "usebackq tokens=1,2,3" %%a in (`%CMD%`) do (
REM echo DEBUG: a=%%a b=%%b c=%%c
if "名前" == "%%a" (
set SERVICE_NAME=%%c
)
)
if not defined SERVICE_NAME (
REM サービス名が取得できなければエラー
echo ERROR: サービス名の取得に失敗しました(%DISPLAY_NAME%)
exit /b 1
)
exit /b 0
REM ==========================
::: サービス名からサービスの状態を取得
:::
::: 必要な環境変数
:::  SERVICE_NAME
::: 設定される環境変数
:::  SERVICE_STAT
:::
REM --------------------------
:GET_SERVICE_STAT
set SERVICE_STAT=
if not defined SERVICE_NAME exit /b 1
set CMD=sc query %SERVICE_NAME%
for /f "usebackq tokens=1,2,3,4" %%a in (`%CMD%`) do (
REM echo DEBUG: a=%%a b=%%b c=%%c d=%%d
if "STATE" == "%%a" (
set SERVICE_STAT=%%d
)
)
if not defined SERVICE_STAT (
REM 状態が取得できなければエラー
echo ERROR: サービスの状態取得に失敗しました(%SERVICE_NAME%)
exit /b 1
)
exit /b 0
REM ==========================
::: 取得したサービスの状態を表示
:::
::: 必要な環境変数
:::  DISPLAY_NAME
:::  SERVICE_STAT
::: 設定される環境変数
:::  なし
:::
REM --------------------------
:DISPLAY_STATUS
if not defined DISPLAY_NAME (
echo ERROR: サービス表示名が設定されていません
exit /b 1
)
REM カラーのため設定
for /f %%i in ('cmd /k prompt $e^<nul') do set ESC=%%i
if defined SERVICE_STAT (
REM %変数:~1,-1%は最初と最後の1文字を除いて展開する
if %SERVICE_STAT% == RUNNING (
REM 緑字
echo %DISPLAY_NAME:~1,-1% (%SERVICE_NAME%^) [%ESC%[92m%SERVICE_STAT%%ESC%[0m^]
) else (
REM 赤字
echo %DISPLAY_NAME:~1,-1% (%SERVICE_NAME%^) [%ESC%[91m%SERVICE_STAT%%ESC%[0m^]
)
) else (
REM %変数:~1,-1%は最初と最後の1文字を除いて展開する
echo %DISPLAY_NAME:~1,-1% ^(%SERVICE_NAME%^) ^[ UNKNOWN ^]
)
exit /b 0
REM ==========================
::: バッチ終了処理
REM --------------------------
:END
echo.
pause
REM --------------------------
endlocal
exit /b 0

【BAT】Serverログイン用

REM ## ファイル名 ⇒ 「Serverログイン用.bat」
@echo off
REM ==============================
REM ■ DOSプロンプト画面サイズ
mode con: cols=110 lines=60
REM ==============================
echo =================================
echo 【サーバ_LOGIN.bat】を開始します
echo =================================
Timeout 1
REM ## ローカル変数開始 遅延環境変数
setlocal ENABLEDELAYEDEXPANSION
:MENU_Zero
cls
color 17
REM ## 文字コード設定
chcp 932
REM ## chcp 65001
REM ==============================
REM ## 変数定義
REM ==============================
set COUNT=0
set MenuLINE=0
set SkipLINE=0
set Get_IP=
set Get_HOST=
set RDP_User=
set RDP_Password=
set TERATERM_User=
set TERATERM_Password=
REM ## TTLファイル格納,INIファイル格納
set CURRENT_DIR=%CD%
set RDP_File=%CURRENT_DIR%\TTL_LOGIN.ttl
set TTL_File=%CURRENT_DIR%\TTL_LOGIN.ttl
set INI_File=%CURRENT_DIR%\TERATERM_2.INI
REM ## LSTファイル格納
set TargetFILE_01=%CURRENT_DIR%\RemoteDesktop.lst
set TargetFILE_02=%CURRENT_DIR%\SSHconnection.lst
REM ## TeraTermマクロのEXEファイル格納
REM ╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
REM ╋↓ 環境に合わせてパスを設定 ↓╋
cd /d "C:\Program Files (x86)\teraterm"
REM ╋↑ 環境に合わせてパスを設定 ↑╋
REM ╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
set Change_DIR=%CD%
set Macro_EXE=%Change_DIR%\ttpmacro.exe
REM ## カレントに戻る
cd /d %CURRENT_DIR%
REM ## パラメータ表示
echo -----------------------------
echo CURRENT  : %CURRENT_DIR% ⇒ ■ カレントディレクトリ
echo RDP File : %RDP_File% ⇒ ■ RDP用Script
echo TTL File : %TTL_File% ⇒ ■ SSH用Script
echo INI File : %INI_File% ⇒ ■ 設定iniファイル
echo LST File : %TargetFILE_01% ⇒ ■ Windowsサーバ情報
echo LST File : %TargetFILE_02% ⇒ ■ Linuxサーバ情報
echo TeraTerm : %Change_DIR% ⇒ ■ TeraTerm格納先フォルダ
echo EXE File : %Macro_EXE% ⇒ ■ マクロ実行ファイル
echo -----------------------------
REM ## Timeout 2
Timeout 1
REM ## pause
REM ★★★★★★★★★★★★★★★
REM ## メニュー表示
:MENU_START
cls
color 0f
REM ## 変数リセット
set COUNT=0
set SkipLINE=0
REM ╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
REM ╋ メニュー画面スキップ/非表示 ╋
goto MENU_START_02
REM ╋ メニュー画面スキップ/非表示 ╋
REM ╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
echo *****************************
echo 【メニュー】
echo *****************************
echo * MENU
echo *
REM ## echo *  【0】: 読込ファイルの表示
echo *  【1】: リモートデスクトップ 接続
echo *  【2】: Tera Term 接続
echo *
echo * 【99】: 終了
echo *
echo *****************************
set USR_INPUT_STR=
set /P USR_INPUT_STR="番号を入力してください: "
if ""%USR_INPUT_STR%""=="""" GOTO MENU_START
if %USR_INPUT_STR%==0 (goto MENU_Zero)
if %USR_INPUT_STR%==1 (goto MENU_START_01)
if %USR_INPUT_STR%==2 (goto MENU_START_02)
if %USR_INPUT_STR%==99 (goto MENU_END)
goto MENU_ERROR
REM ★★★★★★★★★★★★★★★
REM ## リモートデスクトップ接続
:MENU_START_01
REM ───────────────
REM ## パラメータの設定
set READ_DATA=
set READ_DATA=%TargetFILE_01%
set FUNCTION_NAME=
set FUNCTION_NAME=:RDP
REM ## パラメータを共通処理に引き渡す
goto MENU_COMMON
REM ★★★★★★★★★★★★★★★
REM ## テラターム接続
:MENU_START_02
REM ───────────────
REM ## パラメータの設定
set READ_DATA=
set READ_DATA=%TargetFILE_02%
set FUNCTION_NAME=
set FUNCTION_NAME=:TERATERM
REM ## パラメータを共通処理に引き渡す
goto MENU_COMMON
REM ★★★★★★★★★★★★★★★
REM ## 空ENTERキー無効(メニュー再表示)
:MENU_COMMON_R
cls
color 17
echo *****************************
echo 空ENTERキー無効(メニュー再表示)
echo *****************************
Timeout 1
REM ★★★★★★★★★★★★★★★
REM ## 共通処理
:MENU_COMMON
cls
REM ## 接続メニュー判定
if %FUNCTION_NAME%==:RDP (
  color f0
  echo *****************************
  echo 【リモートデスクトップ接続先】
  echo *****************************
  echo * RDP MENU
  echo *
)
if %FUNCTION_NAME%==:TERATERM (
  color 0e
  echo *****************************
  echo 【TeraTerm接続先】
  echo *****************************
  echo * TERATERM MENU
  echo *
)
REM ## LSTファイル読み込み
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%READ_DATA%) do (
  REM ## 行数
  set /a COUNT=!COUNT!+1
  REM ## メニュー表示
  echo * 【!COUNT!】 : %%a %%c 【ホスト名:%%b】  【ユーザ名:%%h】
)
REM ## メニュー行数セット
set /a MenuLINE=%COUNT%
REM ## 変数リセット
set COUNT=0
REM ───────────────
echo *  【0】 : メニューに戻る
echo * 【99】 : 終了
echo *
echo *****************************
set USR_INPUT_STR=
set /P USR_INPUT_STR="番号を入力してください: "
if ""%USR_INPUT_STR%""=="""" GOTO MENU_COMMON_R
if %USR_INPUT_STR%==0 (goto MENU_START)
if %USR_INPUT_STR%==99 (goto MENU_END)
REM ## メニューに無い数はエラー
if %USR_INPUT_STR% gtr %MenuLINE% (goto MENU_ERROR)
REM ───────────────
REM ## LSTファイル読み込み⇒対象抽出⇒関数処理
REM ## 入力値を変数にセット
set SkipLINE=%USR_INPUT_STR%
if %SkipLINE%==1 (
  for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%READ_DATA%) do (
    set /a COUNT=!COUNT!+1
    set Get_IP=%%a
    set Get_HOST=%%b
    set Get_VALUE=%%d
    set GET_AUTH=%%f
    set GET_User=%%h
    set GET_Password=%%i
    REM ## ループ終了
    goto SkipFOR
  )
) else ( set /a SkipLINE=%SkipLINE%-1 )
)
REM ## echo %SkipLINE% LINE --- SKIP
REM ## 指定行数までスキップして読み込む
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=, skip=%SkipLINE%" %%a in (%READ_DATA%) do (
  set /a COUNT=!COUNT!+1
  set Get_IP=%%a
  set Get_HOST=%%b
  set Get_VALUE=%%d
  set GET_AUTH=%%f
  set GET_User=%%h
  set GET_Password=%%i
  REM ## ループ終了
  goto SkipFOR
)
REM ───────────────
REM ## 関数呼び出し
:SkipFOR
echo ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo ┃ -- ログイン方法 -- %FUNCTION_NAME% 接続 %Get_HOST%
echo ┃────────────────────────────────────
echo ┃ [ %USR_INPUT_STR% ]【 %Get_IP%:%GET_User% 】
echo ┃────────────────────────────────────
echo ┃ 【 引数の値 ( %GET_Password% / %GET_AUTH% / %Get_VALUE% )】
echo ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
pause
if not %COUNT%==0 (call %FUNCTION_NAME% %Get_IP% %GET_User% %GET_Password% %GET_AUTH% %Get_VALUE% %Get_HOST%)
REM ## 戻り値判定
if %errorlevel%==1 (goto MENU_START)
REM ───────────────
goto MENU_ERROR
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 関数 RDP
:RDP
cls
color 8f
set xLOGINxIP=%1
set xLOGINxUSER=%2
set PS_Args=%3
set xLOGINxAUTH=%4
set xLOGINxVALUE=%5
set xLOGIN_HOST=%6
echo 【ログイン先IPアドレス:%xLOGINxIP%】【ユーザ名:%xLOGINxUSER%】【ホスト名:%xLOGIN_HOST%】
echo 【対象ファイル:%PS_Args%】【認証方式:%xLOGINxAUTH%】【値:%xLOGINxVALUE%】
echo -----------------------------
REM pause
REM Timeout 1
REM ───────────────
REM ## リモートデスクトップ接続マクロ実行
cd /d %Change_DIR%
ttpmacro.exe %RDP_File% %xLOGINxIP% %xLOGINxUSER% %PS_Args% %INI_File% %xLOGINxAUTH% %xLOGINxVALUE% %xLOGIN_HOST%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xLOGINxIP=
set xLOGINxUSER=
set PS_Args=
set xLOGINxAUTH=
set xLOGINxVALUE=
exit /b 1
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 関数 TERATERM
:TERATERM
cls
color 0f
set xLOGINxIP=%1
set xLOGINxUSER=%2
set PS_Args=%3
set xLOGINxAUTH=%4
set xLOGINxVALUE=%5
set xLOGIN_HOST=%6
echo 【ログイン先IPアドレス:%xLOGINxIP%】【ユーザ名:%xLOGINxUSER%】【ホスト名:%xLOGIN_HOST%】
echo 【対象ファイル:%PS_Args%】【認証方式:%xLOGINxAUTH%】【値:%xLOGINxVALUE%】
echo -----------------------------
REM pause
REM Timeout 1
REM ───────────────
REM ## TERATERM接続マクロ実行
cd /d %Change_DIR%
ttpmacro.exe %TTL_File% %xLOGINxIP% %xLOGINxUSER% %PS_Args% %INI_File% %xLOGINxAUTH% %xLOGINxVALUE% %xLOGIN_HOST%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xLOGINxIP=
set xLOGINxUSER=
set PS_Args=
set xLOGINxAUTH=
set xLOGINxVALUE=
exit /b 1
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## エラー処理
:MENU_ERROR
cls
color 0c
echo *****************************
echo 入力エラー(メニューに戻ります)
echo *****************************
Timeout 1
goto MENU_START
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 終了処理
:MENU_END
cls
color 0a
echo *****************************
echo 【 終 了 】
echo *****************************
REM ## ローカル変数終了
endlocal
Timeout 1
exit

【TTL】RDP接続用

  timeout=10                           ;; ■ タイムアウト値の設定
 ;; ************************************
 ;; ■ 変数の設定
 ;; ************************************
  paramIP = '192.168.1.xxx'                   ;; ■ 接続先IPアドレス
  paramUSER = 'Administrator'              ;; ■ ユーザー名
  paramPASSWORD = 'PW.dat'             ;; ■ パスワードのdatファイル
  DECRYPT = ''                         ;; ■ 複合化パスワード変数の初期化
 ;; ************************************
 ;; ■ 復号化したパスワード文字列の取得
 ;; ************************************
  getpassword ParamPASSWORD ParamUSER DECRYPT ;; ■ 複合化パスワード取得
 ;; ************************************
 ;; ■ 処理実行前の YES or NO 選択
 ;; ************************************
  yesnobox 'リモートデスクトップ接続しますか?' '【 Yes / No 確認】'
  if result = 0 then
    end
  endif
 ;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
 ;;╋ RDP接続の処理
 ;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
 ;; ************************************
 ;; ■ 資格情報の作成
 ;; ************************************
  sprintf2 KEYINFO "cmdkey /generic:TERMSRV/%s /user:%s /pass:%s" ParamIP ParamUSER DECRYPT
  exec KEYINFO
 ;; ************************************
 ;; ■ 環境変数にMSTSC格納
 ;; ************************************
  RDPPATH = "%windir%\system32\mstsc.exe"
  expandenv RDPPATH
 ;; ************************************
 ;; ■ リモートデスクトップ接続コマンド実行
 ;; ************************************
  sprintf2 EXEPATH "%s /v:%s" RDPPATH ParamIP
  exec EXEPATH
 ;; ************************************
 ;; ■ 待機時間
 ;; ************************************
  statusbox DECRYPT '【パスワード】'
  pause 15
 ;; ************************************
 ;; ■ 資格情報の削除
 ;; ************************************
  sprintf2 KEYINFO "cmdkey /delete:TERMSRV/%s" ParamIP
  exec KEYINFO
  end                                ;; ■ TeraTermマクロ終了

更新日付

07 2026/08 09
S M T W T F S
1
2 3 4 5 6 7 8
9 10 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

RECOMMEND

プロフィール

HN:
Account
HP:
性別:
非公開
職業:
--- NODATA ---
趣味:
--- NODATA ---
自己紹介:
◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

リンク

 | HOME |  次のページ>>
Copyright ©  -- LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例 --  All Rights Reserved
Design by CriCri / Photo by Melonenmann / powered by NINJA TOOLS / 忍者ブログ / [PR]