;; FILENAME【TTL_LOGIN.ttl】
;; ************************************
;; ■ タイムアウト値の設定
;; ************************************
timeout=10 ;; ■ タイムアウト値の設定
statusbox 'ログイン用のマクロ実行' '【★】'
;; ************************************
;; ■ 引数パラメータの値を格納する
;; ************************************
paramIP = params[2] ;; ■ 接続先IPアドレス
paramUSER = params[3] ;; ■ ユーザー名
paramPASSWORD = params[4] ;; ■ パスワードのdatファイル
paramINI = params[5] ;; ■ INIファイル
paramAUTH = params[6] ;; ■ 認証方式(password/challenge)
paramVALUE = params[7] ;; ■ 判別する為の値(root.dat)⇒ルート切替のパスワード設定
paramHOST = params[8] ;; ■ ホスト名
DECRYPT = '' ;; ■ 複合化パスワード変数の初期化
;; ************************************
;; ■ 復号化したパスワード文字列の取得
;; ************************************
getpassword ParamPASSWORD ParamUSER DECRYPT ;; ■ 複合化パスワード取得
;;▼▲▼▲▼▲▼▲▼▲▼▲▼▲
;;■ 値の判定(CSVファイルのE列の文字)
;;■ RDP 又は TeraTerm での接続処理が分岐する
;;▼▲▼▲▼▲▼▲▼▲▼▲▼▲
strscan paramVALUE 'RDP' ;; ■ 文字列の値に「RDP」を含むか判定する
if result <> 0 then ;; ■ リザルト値 0 以外の場 ⇒ RDP接続
;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
;;╋ 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マクロ終了
endif
;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
;;╋ TeraTerm接続の処理
;;╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋
;; ************************************
;; ■ 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 ;; ■ TeraTermマクロ終了
endif
;; ************************************
;; ■ LOGフォルダの作成及びパス設定
;; ************************************
getdir macroDIR ;; ■ 現在のパス取得
strconcat macroDIR '\LOG\' ;; ■ 編集 ⇒ <現在のパス>\LOG\
foldersearch '\LOG\' ;; ■ .\LOGフォルダの検索
if result = 0 then ;; ■ 検索結果=「無」の場合
foldercreate macroDIR ;; ■ .\LOGフォルダ作成
endif ;; ■ 判定処理の終了
FilePath = macroDIR ;; ■ ローカルフォルダのパス格納
;; ************************************
;; ■ ネットワークドライブの検索及びパス設定
;; ************************************
foldersearch 'Z:\' ;; ■ ネットワークドライブの検索
if result = 1 then ;; ■ 検索結果=「有」の場合
FilePath = 'Z:\LOG\' ;; ■ ネットワークドライブのパス格納
else ;; ■ 検索結果=「無」の場合
endif ;; ■ 判定処理の終了
;; ************************************
;; ■ LOGファイル名の編集
;; ************************************
getdate LogDate "_%Y%m%d-%H%M%S.log" ;; ■ 現在時刻を取得 ⇒「_年月日-時分秒.log」
;; FileName_IPaddress = "_&h" ;; ■ IPアドレスを取得 ⇒ 「_IP_」
;; strconcat FileName_IPaddress LogDate ;; ■ 編集 ⇒ 「_IP_年月日-時分秒.log」
FileName = "TeraTeram_" ;; ■ ファイル名
strconcat FileName paramHOST ;; ■ ホスト名
strconcat FileName LogDate ;; ■ 編集 ⇒「ファイル名_ホスト名_年月日-時分秒.log」
;; ************************************
;; ■ LOGファイルの出力先の編集
;; ************************************
strconcat FilePath FileName
;; ************************************
;; ■ LOGファイル書込み(追記)開始
;; ************************************
logopen FilePath 0 1 ;; ■ ログ書込み開始(TeraTerm設定が無い場合に実行される)
;; ************************************
;; ■ プロンプト待ち( $ or # )
;; ************************************
wait '$' '#'
sendln
sendln '#---------------------'
sendln '# ■ ' paramIP
sendln '#---------------------'
wait '$' '#'
sendln
;; ************************************
;; ■ ユーザをルートに切り替える
;; ************************************
strcompare paramUSER 'root' ;; ■ 文字列の値が「root」と一致するか判定
if result <> 0 then ;; ■ リザルト値 0 以外の場合 ⇒ ルート以外と判定する
statusbox 'rootユーザに切替えます。。。' '【ユーザ変更メッセージ】'
;; ************************************
;; ■ 復号化したパスワード文字列の取得
;; ************************************
paramUSER = 'root' ;; ■ 変数に'root'を設定
getpassword paramVALUE ParamUSER DECRYPT ;; ■ 複合化パスワード取得
statusbox DECRYPT '【ルートのパスワード】'
wait '$' '#'
pause 2
sendln 'su -'
pause 2
wait ':'
sendln DECRYPT
sendln
endif
;; ************************************
;; ■ リナックスの場合は以下を実行する
;; ************************************
strcompare paramVALUE 'Solaris' ;; ■ wait '$' '#'の値が「Solaris」と一致するか判定
if result <> 0 then ;; ■ リザルト値 0 以外の場合 ⇒ リナックスと判定する
;; pause 2
wait '$' '#'
sendln '#====================='
sendln 'ip a | grep 'paramIP
wait '$' '#'
sendln '#---------------------'
sendln '# 日時/USER名/ホスト名'
sendln '#---------------------'
sendln 'date "+%F %T" ; whoami ; hostname'
wait '$' '#'
sendln '#====================='
sendln
sendln
else
end ;; ■ TeraTermマクロ終了
endif
statusbox 'サーバへログインしました。。。' '【ログインメッセージ】'
pause 1
end ;; ■ TeraTermマクロ終了
PR