サーバログイン用スクリプト

会社でとある認証用のツールを使っており、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

コメント