Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Collapse the table of content
Expand the table of content


NLBScriptLib.vbs serves as a common library of functions for the jobs in Nlb.wsf. It is mainly used to provide a standard mechanism for connecting to the Network Load Balancing provider.

' NlbScriptLib.vbs
' Contains functions and constants used by Nlb.wsf

Public Const DEBUG_MODE = False

' The NLB provider namespace
Public Const NLB_NAMESPACE = "root\MicrosoftNLB"

' Global objects
Public g_objLocator     'SWbemLocator object
Public g_objService     'SWbemService object
Public g_objArgs        'Arguments object
Public g_objNode        'MicrosoftNLB_Node object

'Global strings
Public g_strCIP         'Cluster IP
Public g_strDIP         'Dedicated IP
Public g_strHostID      'Host priority
Public g_strPort        'Port number
Public g_strNameKey     'Used to specify the Name property

Public Function ConnectNLB()
' Sets all global objects and establishes a connection to a 
' Network Load Balancing host via its dedicated IP address (DIP).  
' Every job in NLB.WSF calls ConnectNLB.
' ConnectNLB expects the following command-line arguments:
' 1) The user ID of the caller.
' 2) The password of the caller.
  Dim strUsername, strPassword
  Dim xmlDoc, ElementList, objNode, objNodes

  'Parse the XML document
  Set XMLDoc = CreateObject("Microsoft.xmlDOM")
  xmlDoc.Async = False
  Set ElementList = xmlDoc.getElementsByTagName("clusterIP")
  g_strCIP = ElementList.item(0).text
  Set ElementList = xmlDoc.getElementsByTagName("dedicatedIP")
  g_strDIP = ElementList.item(0).text
  Set ElementList = xmlDoc.getElementsByTagName("hostID")
  g_strHostID = ElementList.item(0).text
  Set ElementList = xmlDoc.getElementsByTagName("portnumber")
  g_strPort = ElementList.item(0).text
  Set ElementList = Nothing
  Set XMLDoc = Nothing    

  'Parse command-line arguments
  Set g_objArgs = WScript.Arguments
  If g_objArgs.Count < 2 Then
  End If

  'Connect to NLB
  Set g_objLocator = CreateObject("WbemScripting.SWbemLocator")
  Set g_objService = g_objLocator.ConnectServer(g_strDIP,      _
                                                NLB_Namespace, _
                                                strUserName,   _
  g_objLocator.Security_.ImpersonationLevel = 3

  'Get a MicrosoftNLB_Node object
  Set objNodes = g_objService.InstancesOf ("MicrosoftNLB_Node")
  For Each objNode in objNodes
    Exit For
  Set g_objNode = objNode
  g_strNameKey = g_strCIP & ":" & g_strHostID

End Function

Public Function QuitWithMessage(strMessage)
  WScript.Echo strMessage
End Function

Public Function EnumProperties(obj)
  Dim oProps, oProp
  Set oProps = obj.Properties_
  On Error Resume Next
  For Each oProp in oProps
    WScript.Echo oProp.Name & " : " & CStr(oProp.Value)
    If Err.Number = 94 Then 
      'Error 94 = Invalid Use of Null
      WScript.Echo oProp.Name & " : (null)"
    End If
  Set oProp = Nothing
  Set oProps = Nothing
End Function

Public Function DisconnectNLB
  Set g_objNodes = Nothing
  Set g_objArgs = Nothing
  Set g_objService = Nothing
  Set g_objLocator = Nothing
End Function

Public Function ShowSyntax()
  WScript.Echo vbCrLf
  WScript.Echo String(70,"=")
  WScript.Echo "NLB.WSF SYNTAX GUIDE:" & vbCrLf
  WScript.Echo "Run NLB.WSF on the command line using the following basic syntax:"
  WScript.Echo "    cscript //Job:<JobID> nlb.wsf <arglist>" & vbCrLf
  WScript.Echo "For <JobID>, specify the name of the job you want to run."
  WScript.Echo "Job names are defined in NLB.WSF." & vbCrLf
  WScript.Echo "For <arglist>, specify:"
  WScript.Echo "    1. Your network user name."
  WScript.Echo "    2. Your network password."
  WScript.Echo "Example: Running the Test job"
  WScript.Echo "    cscript //Job:" & Chr(34) & "Test" & Chr(34) & " " & _
               "nlb.wsf " & Chr(34) & "Administrator" & Chr(34) & " " &  _
               Chr(34) & Chr(34) & vbCrLf
  WScript.Echo String(70,"=")
End Function



© 2015 Microsoft