会社でとある認証用のツールを使っており、Linuxサーバへログインするのが面倒になったので作成した物。
利用しているターミナルソフトはRLoginとWinscpを使っています。
オプションにより
・sshの接続
・sftpの接続
また、複数サーバのログイン処理を一括で出来るようにしたスクリプト。
'オブジェクト変数の宣言と代入
Dim objArgNamed, objArgUnnamed ,objShell ,objFso
Dim fn, strExec
Set objArgNamed = WScript.Arguments.Named
Set objArgUnnamed = WScript.Arguments.Unnamed
Set objShell= CreateObject("WScript.Shell")
set objFso = CreateObject("Scripting.FileSystemObject")
'カレントディレクトリをスクリプトがあるフォルダに変更
objShell.currentDirectory = objFso.GetFile(WScript.ScriptFullName).ParentFolder.Path & "\"
Set fn = objFso.OpenTextFile("user.txt")
User=fn.ReadLine
fn.Close
pass="PASSWORD"
'名前付き引数の存在有無を確認し、その値を表示
If objArgNamed.Exists("domain") Then
Domain=objArgNamed.Item("domain")
Else
Domain="DOMAIN"
End If
If objArgNamed.Exists("cmd") Then
cmd=objArgNamed.Item("cmd")
Else
Cmd="SSH"
End If
If objArgNamed.Exists("kanji") Then
kanji=objArgNamed.Item("kanji")
Else
Kanji="UTF8"
End If
If objArgNamed.Exists("script") Then
script=objArgNamed.Item("script")
Else
Script="Logon"
End If
'名前なし引数でループする
Dim intIndex
If 0 < objArgUnnamed.Count Then
For intIndex = 0 To objArgUnnamed.Count - 1
Server = objArgUnnamed.Item(intIndex)
Select Case Ucase(cmd)
Case "SSH"
strExec="Rlogin.exe /inuse /script " & script & ".txt /entry " & script & ".txt /ip " & Server & " /user " & User & " /pass " & pass & ")"
Case "SFTP"
strExec="Winscp.exe sftp://" & user & ":" & pass & "@" & Server
End Select
Wscript.echo strExec
objShell.Exec(strExec)
Next
End If
コメント