当前位置:DOS资源站资料中心VBS脚本 → starwind iscsi VBS连接脚本,根据IP或机器名连接不同的服务器IP或端口

starwind iscsi VBS连接脚本,根据IP或机器名连接不同的服务器IP或端口

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2008-5-2 2:01:55

'使用环境:微软iscsi客户端,
'作用:根据本机的IP 或机器名来连接不同的服务器IP或端口
'注意:如果设置“根据机器名”的话,脚本将依据机器名的后三位来取得机器编号,
'当然,你也可以稍作修改来适应你的情况。
''''''''''''说明完''''''''''''
Option Explicit
Dim strServerIPGroup,intGroupNum,cNumSet,strTargetPre
'''''''''''''设置开始'''''''''''''
strServerIPGroup = "192.168.11.42:3260|192.168.11.41:3260|192.168.11.41:3260|192.168.11.41:3270" '服务器IP端口集合
intGroupNum = 35   '每IP或端口所带的客户机数量
cNumSet = "Name"     '可以填"IP"或"Name",设置根据IP还是机器名得到机号
strTargetPre = "FT"   'Target前缀
'''''''''''''设置结束'''''''''''''
'On Error Resume Next
Dim oshell,WshNetwork,cName,cNum
Set oshell= CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
cName = WshNetwork.ComputerName
On Error Resume Next
If cNumSet = "Name" Then cNum = CInt(Right(cName,3))
If Err Then
    err.Clear
    Msgbox "请确认机器名后3位是不是数字",16,"错误"
    WScript.quit
End If
On Error GoTo 0
If cNumSet = "IP" Then cNum = Split(GetIP("."),".",-1)(3)
Dim arrIPItem,intGroup,strServerIP,strPort
arrIPItem = Split(strServerIPGroup,"|",-1)
intGroup = Fix((cNum-1)/intGroupNum)
On Error Resume Next
strServerIP = Split(arrIPItem(intGroup),":",-1)(0)
If Err Then
    err.Clear
    Msgbox "请检查:"&vbCrLf&"1“strServerIPGroup”IP组数目不够,或设置错误。"&vbCrLf&"2“intGroupNum”设置过小。",16,"错误"
    WScript.quit
End If
On Error GoTo 0
strPort = Split(arrIPItem(intGroup),":",-1)(1)

oshell.Run "iscsicli AddTargetPortal "&strServerIP&" "&strPort,0,true
oshell.Run "iscsicli LoginTarget "&strTargetPre & Right("000"&cNum,3)&" T * * * * * * * * * * * * * * * 0",0,true

Set WshNetwork=NoThing
Set oshell=NoThing
WScript.quit

Function GetIP(ComputerName)
Dim objWMIService,colItems,objItem,objAddress
Set objWMIService = GetObject("winmgmts:\\" & ComputerName & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objItem in colItems
    For Each objAddress in objItem.IPAddress
        If objAddress <> "" then
            GetIP = objAddress
            Exit For
        End If
    Next
Next
End Function