忍者ブログ

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

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

   

【BAT】TTLログインScript

@echo off
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 ╋↓ 環境に合わせてパスを設定 ↓╋
REM ## cd /d "C:\Program Files (x86)\teraterm"
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
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 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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 -----------------------------
pause
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 -----------------------------
pause
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 2
goto MENU_START
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 終了処理
:MENU_END
cls
color 0a
echo *****************************
echo 【 終 了 】
echo *****************************
REM ## ローカル変数終了
endlocal
Timeout 2
exit
PR

【TTL】PuTTY接続の例

timeout=10
paramIP = params[2] ;; ■接続先IPアドレス
paramUSER = params[3] ;; ■ユーザー名
paramPASSWORD = params[4] ;; ■パスワードのdatファイル
paramINI = params[5] ;; ■INIファイル
paramAUTH = params[6] ;; ■認証方式(password/challenge)
paramVALUE = params[7] ;; ■判別する為の値
DECRYPT = '' ;; ■複合化パスワード変数の初期化
;; ***************************
;; ■ 復号化した文字列の取得
;; ***************************
getpassword ParamPASSWORD ParamUSER DECRYPT ;; ## 複合化パスワード取得
;; ***************************
;; ■ 値の判定(PuTTY)
;; ■ puttyjp.exe -ssh -2 -pw <パスワード> <ユーザ名>@<接続先IPアドレス>
;; ***************************
strscan paramVALUE 'PuTTY' ;; ■ 文字列に「PuTTY」が含まれているか判定
if result <> 0 then ;; ■ リザルト値 0 以外の場合は、PuTTY接続する
;; ╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
;; ╋↓ 環境に合わせてパスを設定 ↓╋
puttyPATH = "C:\Program Files (x86)\PuTTY-ranvis\putty.exe" ;; ■ puttyのパスを格納
;; ╋↑ 環境に合わせてパスを設定 ↑╋
;; ╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
expandenv puttyPATH ;; ■ 環境変数にputtyのパスを設定
LoginPuTTY = '-ssh -2 -pw ' ;; ■ PuTTY組み立て1
strconcat LoginPuTTY DECRYPT ;; ■ PuTTY組み立て(パスワード)
strconcat LoginPuTTY ' ' ;; ■ PuTTY組み立て2
strconcat LoginPuTTY paramUSER ;; ■ PuTTY組み立て(ユーザ名)
strconcat LoginPuTTY '@' ;; ■ PuTTY組み立て3
strconcat LoginPuTTY ParamIP ;; ■ PuTTY組み立て(IPアドレス)
sprintf2 EXEPATH '%s %s' puttyPATH LoginPuTTY ;; ■ コマンド組み立て
exec EXEPATH ;; ■ putty接続コマンド実行
end ;; ■ TeraTermマクロ終了
endif
;; ***************************
;; ■ SSH接続コマンド組み立て
;; ***************************
LoginSSH = paramIP ;; ## IPアドレス or ホスト名
strconcat LoginSSH ':22 /ssh /auth=' ;; ## 認証方式オプション
strconcat LoginSSH paramAUTH ;; ## 認証方式の値
strconcat LoginSSH ' /user=' ;; ## ユーザ名オプション
strconcat LoginSSH paramUSER ;; ## ユーザ名の値
strconcat LoginSSH ' /passwd=' ;; ## パスワードオプション
strconcat LoginSSH DECRYPT ;; ## パスワードの値
strconcat LoginSSH ' /F=' ;; ## INIファイルオプション
strconcat LoginSSH paramINI ;; ## INIファイルの値
;; ***************************
;; ■ SSH接続ログイン
;; ***************************
connect LoginSSH
;; ***************************
;; ■ ログイン判定
;; ***************************
if result <> 2 then
    messagebox '接続エラー' '【connection err】'
    end
endif
wait '$' '#'
sendln 'uname -n'
sendln 'echo ##################### 'paramIP' ##################### '
;; ***************************
;; ■ 値の判定
;; ***************************
strcompare paramVALUE 'Solaris' ;; ## Solaris判定
if result <> 0 then ;; ## Solaris以外なら以下のコマンド実行
sendln 'ip a | grep 'paramIP
sendln 'whoami'
endif
sendln 'date'
statusbox '1秒後にマクロ終了します' '【マクロ終了】'
pause 1
;; messagebox 'マクロを終了します' '【マクロ終了】'
end

【BAT】TTL呼び出しバッチ【改】

@echo off
REM ## ローカル変数開始 遅延環境変数
setlocal ENABLEDELAYEDEXPANSION
REM ==============================
REM ## 変数定義
REM ==============================
set COUNT=0
set MenuLINE=0
set SkipLINE=0
set Get_IP=
set RDP_User=
set RDP_Password=
set TERATERM_User=
set TERATERM_Password=
REM ## TTLファイル格納,INIファイル格納
set CURRENT_DIR=%CD%
set RDP_File=%CURRENT_DIR%\RDP_LOGON.ttl
set TTL_File=%CURRENT_DIR%\ServerLOGIN.ttl
set INI_File=%CURRENT_DIR%\TERATERM_2.INI
REM ## CSVファイル格納
set TargetFILE_01=%CURRENT_DIR%\RemoteDesktop.csv
set TargetFILE_02=%CURRENT_DIR%\SSHconnection.csv
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 ## 一時的に実行ファイルのパス追加
REM ## set path=%path%;%Macro_EXE%
color 17
REM ## パラメータ表示
echo -----------------------------
echo CURRENT  : %CURRENT_DIR% --- CURRENT Path
echo RDP File : %RDP_File% --- RDP File
echo TTL File : %TTL_File% --- TTL File
echo INI File : %INI_File% --- NII File
echo CSV File : %TargetFILE_01% --- RDP csv
echo CSV File : %TargetFILE_02% --- SSH csv
echo TeraTerm : %Change_DIR% --- TeraTerm Path
echo EXE File : %Macro_EXE% --- EXE File
echo -----------------------------
Timeout 1
pause
REM ★★★★★★★★★★★★★★★
REM ## メニュー表示
:MENU_START
cls
color 0f
REM ## 変数リセット
set COUNT=0
set SkipLINE=0
echo *****************************
echo 【メニュー】
echo *****************************
echo * MENU
echo *
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%==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
cls
color f0
echo *****************************
echo 【リモートデスクトップ接続先】
echo *****************************
echo * RDP MENU
echo *
REM ───────────────
REM ## CSVファイル読み込み
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_01%) do (
  REM ## 行数
  set /a COUNT=!COUNT!+1
  REM ## RDP用メニュー表示
  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_START_01
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 ## CSVファイル読み込み⇒対象抽出⇒関数処理
REM ## 入力値を変数にセット
set SkipLINE=%USR_INPUT_STR%
if %SkipLINE%==1 (
  for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_01%) do (
    set /a COUNT=!COUNT!+1
    set Get_IP=%%a
    set RDP_User=%%h
    set RDP_Password=%%i
    REM ## ループ終了
    goto forSkip1
  )
) 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 (%TargetFILE_01%) do (
  set /a COUNT=!COUNT!+1
  set Get_IP=%%a
  set RDP_User=%%h
  set RDP_Password=%%i
  REM ## ループ終了
  goto forSkip1
)
REM ───────────────
REM ## 関数呼び出し
:forSkip1
echo ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo ┃ [ %USR_INPUT_STR% ]【 %Get_IP%:%RDP_User% 】
echo ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
pause
if not %COUNT%==0 (call :RDP %Get_IP% %RDP_User% %RDP_Password%)
REM ## 戻り値判定
if %errorlevel%==1 (goto MENU_START)
REM ───────────────
goto MENU_ERROR
REM ★★★★★★★★★★★★★★★
REM ## テラターム接続
:MENU_START_02
cls
color 0e
echo *****************************
echo 【TeraTerm接続先】
echo *****************************
echo * TERATERM MENU
echo *
REM ───────────────
REM ## CSVファイル読み込み
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_02%) do (
  REM ## 行数
  set /a COUNT=!COUNT!+1
  REM ## TeraTerm用メニュー表示
  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_START_02
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 ## CSVファイル読み込み⇒対象抽出⇒関数処理
REM ## 入力値を変数にセット
set SkipLINE=%USR_INPUT_STR%
if %SkipLINE%==1 (
  for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_02%) do (
    set /a COUNT=!COUNT!+1
    set Get_IP=%%a
    set Get_VALUE=%%d
    set TERATERM_AUTH=%%f
    set TERATERM_User=%%h
    set TERATERM_Password=%%i
    REM ## ループ終了
    goto forSkip2
  )
) 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 (%TargetFILE_02%) do (
  set /a COUNT=!COUNT!+1
  set Get_IP=%%a
  set Get_VALUE=%%d
  set TERATERM_AUTH=%%f
  set TERATERM_User=%%h
  set TERATERM_Password=%%i
  REM ## ループ終了
  goto forSkip2
)
REM ───────────────
REM ## 関数呼び出し
:forSkip2
echo ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo ┃ [ %USR_INPUT_STR% ]【 %Get_IP%:%TERATERM_User% 】
echo ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
pause
if not %COUNT%==0 (call :TERATERM %Get_IP% %TERATERM_User% %TERATERM_Password% %TERATERM_AUTH% %Get_VALUE%)
REM ## 戻り値判定
if %errorlevel%==1 (goto MENU_START)
REM ───────────────
goto MENU_ERROR
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 関数 RDP
:RDP
cls
color 8f
set xRDPxIP=%1
set xRDPxUSER=%2
set PS_Args=%3
echo 【ログイン先IPアドレス:%xRDPxIP%】【ユーザ名:%xRDPxUSER%】
echo 【対象ファイル:%PS_Args%】
REM ───────────────
REM ## リモートデスクトップ接続マクロ実行
cd /d %Change_DIR%
ttpmacro.exe %RDP_File% %xRDPxIP% %xRDPxUSER% %PS_Args%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xRDPxIP=
set xRDPxUSER=
set PS_Args=
set PS_VALUE=
set xRDPxPASSWORD=
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
echo 【ログイン先IPアドレス:%xLOGINxIP%】【ユーザ名:%xLOGINxUSER%】
echo 【対象ファイル:%PS_Args%】【認証方式:%xLOGINxAUTH%】【値:%xLOGINxVALUE%】
REM ───────────────
REM ## TERATERM接続マクロ実行
cd /d %Change_DIR%
ttpmacro.exe %TTL_File% %xLOGINxIP% %xLOGINxUSER% %PS_Args% %INI_File% %xLOGINxAUTH% %xLOGINxVALUE%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xLOGINxIP=
set xLOGINxUSER
set PS_Args=
set PS_VALUE=
set xLOGINxPASSWORD=
exit /b 1
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## エラー処理
:MENU_ERROR
cls
color 0c
echo *****************************
echo 入力エラー(メニューに戻ります)
echo *****************************
Timeout 2
goto MENU_START
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 終了処理
:MENU_END
cls
color 0a
echo *****************************
echo 【 終 了 】
echo *****************************
REM ## ローカル変数終了
endlocal
Timeout 2
exit

【TTL】RDP接続の例

━━━━━━━━━━━━━━━━━━━
① 「パスワード暗号化ファイル作成.ttl」を用意する
 ⇒記載内容は以下参照
        ;; *********************************
        ENCRYPT = 'PW.dat'                    ;; 対象ファイル名を指定
        IDENT_User = 'Administrator'       ;; ユーザ名などを指定
        PASS_WORD = '!P@ssw0rd'       ;; 対象のパスワードを指定
        setpassword ENCRYPT IDENT_User PASS_WORD        ;; 暗号化ファイル出力
        ;; *********************************
━━━━━━━━━━━━━━━━━━━
② 「RDP_LOGON.ttl」でパスワードを復号化してリモートデスクトップ接続する
 ⇒記載内容は以下参照
timeout=10
;; ***************************
;; 接続先IPアドレス、ユーザー名、パスワードの引数を格納する
;; ***************************
ParamIP = Params[2]
ParamUSER = Params[3]
ParamPASSWORD = Params[4]
DECRYPT = ''
;; ***************************
;; 復号化した文字列の取得
;; ***************************
getpassword ParamPASSWORD ParamUSER DECRYPT
;; ***************************
;; 資格情報の作成
;; ***************************
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 20
;; ***************************
;; 資格情報の削除
;; ***************************
sprintf2 KEYINFO "cmdkey /delete:TERMSRV/%s" ParamIP
exec KEYINFO
━━━━━━━━━━━━━━━━━━━
③ バッチから呼び出す ⇒ 以下は記述例として一部抜粋
====================================
 cd /d %Change_DIR%
 ttpmacro.exe %RDP_File% %xRDPxIP% %xRDPxUSER% %PS_Args%
====================================
 ※全体の記述例は以下参照
━━━━━━━━━━━━━━━━━━━

【BAT】TTL呼出しバッチ

@echo off
REM ## ローカル変数開始 遅延環境変数
setlocal ENABLEDELAYEDEXPANSION
REM ==============================
REM ## 変数定義
REM ==============================
set COUNT=0
set MenuLINE=0
set SkipLINE=0
set Get_IP=
set RDP_User=
set RDP_Password=
set TERATERM_User=
set TERATERM_Password=
REM ## TTLファイル格納,INIファイル格納
set CURRENT_DIR=%CD%
set RDP_File=%CURRENT_DIR%\RDP_LOGON.ttl
set TTL_File=%CURRENT_DIR%\ServerLOGIN.ttl
set INI_File=%CURRENT_DIR%\TERATERM_2.INI
REM ## CSVファイル格納
set TargetFILE_01=%CURRENT_DIR%\RemoteDesktop.csv
set TargetFILE_02=%CURRENT_DIR%\SSHconnection.csv
REM ## TeraTermマクロのEXEファイル格納
cd /d C:\Program Files (x86)\teraterm
REM ## cd /d D:\Program Files (x86)\teraterm
REM ## cd /d E:\Program Files (x86)\teraterm
set Change_DIR=%CD%
set Macro_EXE=%Change_DIR%\ttpmacro.exe
REM ## カレントに戻る
cd /d %CURRENT_DIR%
REM ## 一時的に実行ファイルのパス追加
REM ## set path=%path%;%Macro_EXE%
color 17
REM ## パラメータ表示
echo -----------------------------
echo CURRENT  : %CURRENT_DIR% --- CURRENT Path
echo RDP File : %RDP_File% --- RDP File
echo TTL File : %TTL_File% --- TTL File
echo INI File : %INI_File% --- NII File
echo CSV File : %TargetFILE_01% --- RDP csv
echo CSV File : %TargetFILE_02% --- SSH csv
echo TeraTerm : %Change_DIR% --- TeraTerm Path
echo EXE File : %Macro_EXE% --- EXE File
echo -----------------------------
Timeout 1
pause
REM ★★★★★★★★★★★★★★★
REM ## メニュー表示
:MENU_START
cls
color 0f
REM ## 変数リセット
set COUNT=0
set SkipLINE=0
echo *****************************
echo 【メニュー】
echo *****************************
echo * MENU
echo *
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%==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
cls
color f0
echo *****************************
echo 【リモートデスクトップ接続先】
echo *****************************
echo * RDP MENU
echo *
REM ───────────────
REM ## CSVファイル読み込み
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_01%) do (
  REM ## 行数
  set /a COUNT=!COUNT!+1
  REM ## RDP用メニュー表示
  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_START_01
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 ## CSVファイル読み込み⇒対象抽出⇒関数処理
REM ## 入力値を変数にセット
set SkipLINE=%USR_INPUT_STR%
if %SkipLINE%==1 (
  for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_01%) do (
    set /a COUNT=!COUNT!+1
    set Get_IP=%%a
    set RDP_User=%%h
    set RDP_Password=%%i
    REM ## ループ終了
    goto forSkip1
  )
) 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 (%TargetFILE_01%) do (
  set /a COUNT=!COUNT!+1
  set Get_IP=%%a
  set RDP_User=%%h
  set RDP_Password=%%i
  REM ## ループ終了
  goto forSkip1
)
REM ───────────────
REM ## 関数呼び出し
:forSkip1
echo --- %USR_INPUT_STR% --- %Get_IP% %RDP_User%
pause
if not %COUNT%==0 (call :RDP %Get_IP% %RDP_User% %RDP_Password%)
REM ## 戻り値判定
if %errorlevel%==1 (goto MENU_START)
REM ───────────────
goto MENU_ERROR
REM ★★★★★★★★★★★★★★★
REM ## テラターム接続
:MENU_START_02
cls
color 0e
echo *****************************
echo 【TeraTerm接続先】
echo *****************************
echo * TERATERM MENU
echo *
REM ───────────────
REM ## CSVファイル読み込み
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_02%) do (
  REM ## 行数
  set /a COUNT=!COUNT!+1
  REM ## TeraTerm用メニュー表示
  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_START_02
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 ## CSVファイル読み込み⇒対象抽出⇒関数処理
REM ## 入力値を変数にセット
set SkipLINE=%USR_INPUT_STR%
if %SkipLINE%==1 (
  for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_02%) do (
    set /a COUNT=!COUNT!+1
    set Get_IP=%%a
    set TERATERM_User=%%h
    set TERATERM_Password=%%i
    REM ## ループ終了
    goto forSkip2
  )
) 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 (%TargetFILE_02%) do (
  set /a COUNT=!COUNT!+1
  set Get_IP=%%a
  set TERATERM_User=%%h
  set TERATERM_Password=%%i
  REM ## ループ終了
  goto forSkip2
)
REM ───────────────
REM ## 関数呼び出し
:forSkip2
echo --- %USR_INPUT_STR% --- %Get_IP% %TERATERM_User%
pause
if not %COUNT%==0 (call :TERATERM %Get_IP% %TERATERM_User% %TERATERM_Password%)
REM ## 戻り値判定
if %errorlevel%==1 (goto MENU_START)
REM ───────────────
goto MENU_ERROR
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 関数 RDP
:RDP
cls
color 8f
set xRDPxIP=%1
set xRDPxUSER=%2
set PS_Args=%3
echo 【ログイン先IPアドレス:%xRDPxIP%】【ユーザ名:%xRDPxUSER%】
echo 【対象ファイル:%PS_Args%】
REM ───────────────
REM ## リモートデスクトップ接続マクロ実行
cd /d %Change_DIR%
ttpmacro.exe %RDP_File% %xRDPxIP% %xRDPxUSER% %PS_Args%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xRDPxIP=
set xRDPxUSER=
set PS_Args=
set PS_VALUE=
set xRDPxPASSWORD=
exit /b 1
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 関数 TERATERM
:TERATERM
cls
color 0f
set xLOGINxIP=%1
set xLOGINxUSER=%2
set PS_Args=%3
echo 【ログイン先IPアドレス:%xLOGINxIP%】【ユーザ名:%xLOGINxUSER%】
echo 【対象ファイル:%PS_Args%】
REM ───────────────
REM ## TERATERM接続マクロ実行
cd /d %Change_DIR%
ttpmacro.exe %TTL_File% %xLOGINxIP% %xLOGINxUSER% %PS_Args% %INI_File%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xLOGINxIP=
set xLOGINxUSER
set PS_Args=
set PS_VALUE=
set xLOGINxPASSWORD=
exit /b 1
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## エラー処理
:MENU_ERROR
cls
color 0c
echo *****************************
echo 入力エラー(メニューに戻ります)
echo *****************************
Timeout 2
goto MENU_START
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 終了処理
:MENU_END
cls
color 0a
echo *****************************
echo 【 終 了 】
echo *****************************
REM ## ローカル変数終了
endlocal
Timeout 2
exit

【BAT】暗号化と複合化

①で予め暗号化したファイルを作成しておく、③のバッチから②のPowerShellを呼び出して複合化する場合の例

①【暗号化パスワードのファイル作成コマンド】
PowerShell -command "[byte[]] $Enc_KEY = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43);$Cred = Get-Credential;$Cred.Password | ConvertFrom-SecureString -key $Enc_KEY | Set-Content .\Password.dat"

②## 【複合化パワーシェル(関数)】
## AES用バイト配列
[byte[]] $Enc_KEY = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
 
## 暗号化されたパスワードを複合化する
$Get_Param = Get-Content $Args[0] | ConvertTo-SecureString -key $Enc_KEY
$SSTstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Get_Param)
$PTSstr  = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($SSTstr)
$Return_Param = $PTSstr
 
## 戻り値を返す
return $Return_Param

③【バッチからパワーシェルを呼び出して結果を取得する】
@echo off
 
set PS_Args=Password.dat
 
REM ## echo パラメータ %PS_Args%
 
REM ## パスワードを取得する
FOR /F "usebackq" %%p IN (`powershell -executionpolicy bypass -File PW_File.ps1 %PS_Args%`) DO SET PS_VALUE=%%p
 
echo 複合化したパスワード = %PS_VALUE%
 
pause

【BAT】ログイン用バッチ

@echo off
REM ## ローカル変数開始 遅延環境変数
setlocal ENABLEDELAYEDEXPANSION
REM ==============================
REM ## 変数定義
REM ==============================
set COUNT=0
set MenuLINE=0
set SkipLINE=0
set Get_IP=
set RDP_User=
set RDP_Password=
set TERATERM_User=
set TERATERM_Password=
REM ## TTLファイル格納,INIファイル格納
set CURRENT_DIR=%CD%
set TTL_File=%CURRENT_DIR%\ServerLOGIN.ttl
set INI_File=%CURRENT_DIR%\TERATERM_2.INI
REM ## CSVファイル格納
set TargetFILE_01=%CURRENT_DIR%\RemoteDesktop.csv
set TargetFILE_02=%CURRENT_DIR%\SSHconnection.csv
REM ## TeraTermマクロのEXEファイル格納
cd /d C:\Program Files (x86)\teraterm
REM ## cd /d D:\Program Files (x86)\teraterm
REM ## cd /d E:\Program Files (x86)\teraterm
set Change_DIR=%CD%
set Macro_EXE=%Change_DIR%\ttpmacro.exe
REM ## カレントに戻る
cd /d %CURRENT_DIR%
REM ## 一時的に実行ファイルのパス追加
REM ## set path=%path%;%Macro_EXE%
color 17
REM ## パラメータ表示
echo -----------------------------
echo CURRENT  : %CURRENT_DIR% --- CURRENT Path
echo TTL File : %TTL_File% --- TTL File
echo INI File : %INI_File% --- NII File
echo CSV File : %TargetFILE_01% --- RDP csv
echo CSV File : %TargetFILE_02% --- SSH csv
echo TeraTerm : %Change_DIR% --- TeraTerm Path
echo EXE File : %Macro_EXE% --- EXE File
echo -----------------------------
Timeout 1
REM ## pause
REM ★★★★★★★★★★★★★★★
REM ## メニュー表示
:MENU_START
cls
color 0f
REM ## 変数リセット
set COUNT=0
set SkipLINE=0
echo *****************************
echo 【メニュー】
echo *****************************
echo * MENU
echo *
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%==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
cls
color f0
echo *****************************
echo 【リモートデスクトップ接続先】
echo *****************************
echo * RDP MENU
echo *
REM ───────────────
REM ## CSVファイル読み込み
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_01%) do (
  REM ## 行数
  set /a COUNT=!COUNT!+1
  REM ## RDP用メニュー表示
  echo * !COUNT! : %%a 【ホスト名:%%b】 %%c 【ユーザ名:%%e】
)
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_START_01
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 ## CSVファイル読み込み⇒対象抽出⇒関数処理
REM ## 入力値を変数にセット
set SkipLINE=%USR_INPUT_STR%
if %SkipLINE%==1 (
  for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_01%) do (
    set /a COUNT=!COUNT!+1
    set Get_IP=%%a
    set RDP_User=%%e
    set RDP_Password=%%i
    REM ## ループ終了
    goto forSkip1
  )
) 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 (%TargetFILE_01%) do (
  set /a COUNT=!COUNT!+1
  set Get_IP=%%a
  set RDP_User=%%e
  set RDP_Password=%%i
  REM ## ループ終了
  goto forSkip1
)
REM ───────────────
REM ## 関数呼び出し
:forSkip1
echo --- %USR_INPUT_STR% --- %Get_IP% %RDP_User%
pause
if not %COUNT%==0 (call :RDP %Get_IP% %RDP_User% %RDP_Password%)
REM ## 戻り値判定
if %errorlevel%==1 (goto MENU_START)
REM ───────────────
goto MENU_ERROR
REM ★★★★★★★★★★★★★★★
REM ## テラターム接続
:MENU_START_02
cls
color 0e
echo *****************************
echo 【TeraTerm接続先】
echo *****************************
echo * TERATERM MENU
echo *
REM ───────────────
REM ## CSVファイル読み込み
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_02%) do (
  REM ## 行数
  set /a COUNT=!COUNT!+1
  REM ## TeraTerm用メニュー表示
  echo * !COUNT! : %%a 【ホスト名:%%b】 %%c 【ユーザ名:%%e】
)
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_START_02
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 ## CSVファイル読み込み⇒対象抽出⇒関数処理
REM ## 入力値を変数にセット
set SkipLINE=%USR_INPUT_STR%
if %SkipLINE%==1 (
  for /f "tokens=1,2,3,4,5,6,7,8,9 delims=," %%a in (%TargetFILE_02%) do (
    set /a COUNT=!COUNT!+1
    set Get_IP=%%a
    set TERATERM_User=%%e
    set TERATERM_Password=%%i
    REM ## ループ終了
    goto forSkip2
  )
) 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 (%TargetFILE_02%) do (
  set /a COUNT=!COUNT!+1
  set Get_IP=%%a
  set TERATERM_User=%%e
  set TERATERM_Password=%%i
  REM ## ループ終了
  goto forSkip2
)
REM ───────────────
REM ## 関数呼び出し
:forSkip2
echo --- %USR_INPUT_STR% --- %Get_IP% %TERATERM_User%
pause
if not %COUNT%==0 (call :TERATERM %Get_IP% %TERATERM_User% %TERATERM_Password%)
REM ## 戻り値判定
if %errorlevel%==1 (goto MENU_START)
REM ───────────────
goto MENU_ERROR
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 関数 RDP
:RDP
cls
color 8f
set xRDPxIP=%1
set xRDPxUSER=%2
set PS_Args=%3
echo 【ログイン先IPアドレス:%xRDPxIP%】【ユーザ名:%xRDPxUSER%】
echo 【対象ファイル:%PS_Args%】
REM ───────────────
REM ## パスワードを複合化して抽出する
FOR /F "usebackq" %%p IN (`powershell -executionpolicy bypass -File PW_File.ps1 %PS_Args%`) DO SET PS_VALUE=%%p
set xRDPxPASSWORD=%PS_VALUE%
REM ───────────────
REM ## RDPコマンド実行
Cmdkey /generic:TERMSRV/%xRDPxIP% /user:%xRDPxUSER% /pass:%xRDPxPASSWORD%
Start mstsc /v:%xRDPxIP%
Timeout 5
Cmdkey /delete:TERMSRV/%xRDPxIP%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xRDPxIP=
set xRDPxUSER=
set PS_Args=
set PS_VALUE=
set xRDPxPASSWORD=
exit /b 1
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 関数 TERATERM
:TERATERM
cls
color 0f
set xLOGINxIP=%1
set xLOGINxUSER=%2
set PS_Args=%3
echo 【ログイン先IPアドレス:%xLOGINxIP%】【ユーザ名:%xLOGINxUSER%】
echo 【対象ファイル:%PS_Args%】
REM ───────────────
REM ## パスワードを複合化して抽出する
FOR /F "usebackq" %%p IN (`powershell -executionpolicy bypass -File PW_File.ps1 %PS_Args%`) DO SET PS_VALUE=%%p
set xLOGINxPASSWORD=%PS_VALUE%
REM ───────────────
REM ## TERATERM接続マクロ実行
cd /d %Change_DIR%
ttpmacro.exe %TTL_File% %xLOGINxIP% %xLOGINxUSER% %xLOGINxPASSWORD% %INI_File%
REM ───────────────
REM ## 変数初期化、戻り値1をセットして戻る
set xLOGINxIP=
set xLOGINxUSER
set PS_Args=
set PS_VALUE=
set xLOGINxPASSWORD=
exit /b 1
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## エラー処理
:MENU_ERROR
cls
color 0c
echo *****************************
echo 入力エラー(メニューに戻ります)
echo *****************************
Timeout 2
goto MENU_START
REM ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ## 終了処理
:MENU_END
cls
color 0a
echo *****************************
echo 【 終 了 】
echo *****************************
REM ## ローカル変数終了
endlocal
Timeout 2
exit
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
TeraTermマクロは以下を参照
https://archives.blog-mmo.com/Entry/84/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
暗号化と複合化は以下を参照
https://archives.blog-mmo.com/Entry/86/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

【TTL】バッチ連携用

timeout=10
;; ■接続先IPアドレス
paramIP = params[2]
;; ■ユーザー名
paramUSER = params[3]
;; ■パスワード
paramPASSWORD = params[4]
;; ■INIファイル
paramINI = params[5]
;; ## INIファイルを直接読ませる場合
;; getdir DIR
;; paramINI = DIR
;; strconcat paramINI '\TERATERM_2.INI'
;; ## SSH接続コマンド組み立て
LoginSSH = paramIP
;; ## パスワード認証
;; strconcat LoginSSH ':22 /ssh /auth=password /user='
;; ## キーボードインタラクティブ認証
;; strconcat LoginSSH ':22 /ssh /auth=challenge /user='
;; ## パスワード認証
strconcat LoginSSH ':22 /ssh /auth=password /user='
strconcat LoginSSH paramUSER
strconcat LoginSSH ' /passwd='
strconcat LoginSSH paramPASSWORD
;; ## INIファイルを指定
strconcat LoginSSH ' /F='
strconcat LoginSSH paramINI
;; ## SSH接続
connect LoginSSH
if result <> 2 then
    messagebox '接続エラー' '【connection err】'
    end
endif
wait '$' '#'
sendln 'uname -n'
sendln 'echo ##################### 'paramIP' ##################### '
sendln 'ip a | grep 'paramIP
sendln 'whoami'
sendln 'date'
statusbox '1秒後にマクロ終了します' '【マクロ終了】'
pause 1
;; messagebox 'マクロを終了します' '【マクロ終了】'
end

【Windows】ポート転送

★対象サーバの情報
┏━━━━━━━━━━━━━━━━━━━━━━
① Windws10
┃               IPアドレス(192.168.0.99
┃─────────────────────
② Linux
┃               IPアドレス(192.168.0.77:22
┃─────────────────────
③ Windows Server 2019
┃               IPアドレス(192.168.0.88:3389
┗━━━━━━━━━━━━━━━━━━━━━━
 
★ポート転送の活用について…
┏━━━━━━━━━━━━━━━━━━━━━━
┃自分のPC端末から②、③に直接アクセス出来ない環境で
┃自分のPC端末から①へのアクセスは可能な場合
┃ポート転送で①経由させると②、③へアクセス出来るようになる
┃【TeraTermの場合】
┃  PC端末 ⇒ ② (①でポート転送)
┃【リモートデスクトップの場合】
┃  PC端末 ⇒ ③ (①でポート転送)
┗━━━━━━━━━━━━━━━━━━━━━━
 
★前提条件
┏━━━━━━━━━━━━━━━━━━━━━━
┃【前提条件】
┃  ①でSSHサーバをアプリ追加して
┃  SSHサーバのサービスを起動させる
┃─────────────────────
┃  自分のPC端末で、netshssh どちらかを実行する
┃  (以下の【例】のコマンド参照)
┃─────────────────────
┃【注意事項】
┃  DOS画面は開いたままの状態にしておく
┗━━━━━━━━━━━━━━━━━━━━━━
 
★手順(TeraTerm接続の場合)
┏━━━━━━━━━━━━━━━━━━━━━━
┃【例】DOSより、netshコマンドを実行する
netsh interface portproxy add v4tov4 listenport=7777 listenaddr=192.168.0.99 connectport=22 connectaddress=192.168.0.77
┃─────────────────────
┃【例】DOSより、sshコマンドを実行する
ssh Administrator@192.168.0.99 -L 7777:192.168.0.77:22 -g -N
┃─────────────────────
┃■TeraTerm接続
┃ 以下を指定してログイン
┃  127.0.0.1:7777
┗━━━━━━━━━━━━━━━━━━━━━━
 
★手順(リモートデスクトップ接続の場合)
┏━━━━━━━━━━━━━━━━━━━━━━
┃【例】DOSより、netshコマンドを実行する
netsh interface portproxy add v4tov4 listenport=8888 listenaddr=192.168.0.99 connectport=3389 connectaddress=192.168.0.88
┃─────────────────────
┃【例】DOSより、sshコマンドを実行する
ssh Administrator@192.168.0.99 -L 8888:192.168.0.88:3389 -g -N
┃─────────────────────
┃■リモートデスクトップ接続
┃ 以下を指定してログイン
┃  127.0.0.1:8888
┗━━━━━━━━━━━━━━━━━━━━━━

【Linux】豆知識

━━━━━━━━━━━━━━━━━━━
【Teratermでのファイル転送】
 
1.Teratermメニューの「ファイル」>「SSH SCP」を選択
 
2.ポップアップ画面の上段 or 下段に以下のように入力する
 「From:」に転送元ファイルのパスを入力
 「To:」に転送先フォルダのパスを入力
 
3.以下の何れかのボタンをクリックする
 「Send」ボタン ⇒ ファイルを送る
 「Receive」ボタン ⇒ ファイルを受ける
 
━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━
【シェルスクリプトの実行する方法の違い】
 
[1] スクリプトファイルの実行権あり
 ./<script>
 
[2] スクリプトファイルの実行権なし
 sh ./<script>
 bash ./<script>
 
[3] スクリプトファイルの実行権なし
 source ./<script>
 . ./<script>
 
※[1]、[2]は子プロセスを生成して実行される
※[3]は現在のシェルで実行するので、環境変数あり
 
━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━
【デフォルト設定を無効化してコマンド実行】
「\」を付けることで、デフォルト設定を無効化
 
 例えば、cp コマンドの場合
 cp -f でも上書き確認が表示されるように
 デフォルトが設定されているが、
 \cp -f とすると上書き確認を非表示にできる
 
━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━
【cron についてのメモ】
・参照 ⇒ crontab -l
・編集 ⇒ crontab -e
 
【crontab 書式】
 分 時 日 月 曜日 <コマンド>
 
【例】 0 7-8 * * 2,5 command
  火曜、金曜の7時、8時に実行
 (command は、絶対パスで指定)
 
━━━━━━━━━━━━━━━━━━━

更新日付

11 2025/12 01
S M T W T F S
1 2 3 4 5
7 8 9 10 11 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]