This sample VBS lists all properties of all resources in a cluster. The VBS is referred to in Chapter 13, "High Availability in Windows Server 2003," in the "MS Cluster Resource" section. REM REM Routine to print the parameter REM SUB HandleParameter ( strParameterName, objParameter ) WScript.Echo( " " & strParameterName & ": " ) SELECT CASE VARTYPE( objParameter ) CASE vbEmpty WScript.Echo( " IsEmpty" ) CASE vbNull WScript.Echo( " IsNull" ) CASE vbInteger WScript.Echo( " Integer = " & objParameter & " - " & _ HEX( objParameter ) ) CASE vbLong WScript.Echo( " Long = " & objParameter & " - " & _ HEX( objParameter ) ) CASE vbSingle WScript.Echo( " ???Single = " & objParameter ) CASE vbDouble WScript.Echo( " ???Double = " & objParameter ) CASE vbCurrency WScript.Echo( " ???Currency = " & objParameter ) CASE vbDate WScript.Echo( " Date = " & objParameter ) CASE vbString WScript.Echo( " String = " & objParameter ) CASE vbObject WScript.Echo( " Object type = " & TYPENAME( objParameter ) ) CASE vbError WScript.Echo( " ???Error" ) CASE vbBoolean Wscript.Echo( " Boolean = " & objParameter ) CASE vbVariant WScript.Echo( " Variant = " & objParameter ) CASE vbDataObject WScript.Echo( " ???Data Access Object" ) CASE vbByte WScript.Echo( " Byte = " & objParameter & " - " & _ HEX( objParameter ) ) CASE ELSE IF IsArray(objParameter) THEN nWhat = VARTYPE( objParameter ) - vbArray SELECT CASE nWhat CASE vbEmpty WScript.Echo ( " Empty Array" ) CASE vbNull WScript.Echo ( " Null Array" ) CASE vbInteger CALL DoNumericArray ( _ " Integer Array" , objParameter ) CASE vbLong CALL DoNumericArray ( _ " Long Array" , objParameter ) CASE vbSingle CALL DoArray ( _ " Single Array" , objParameter ) CASE vbDouble CALL DoArray ( _ " Double Array" , objParameter ) CASE vbCurrency CALL DoArray ( _ " Currency Array" , objParameter ) CASE vbDate CALL DoArray ( _ " Date Array" , objParameter ) CASE vbString CALL DoArray ( _ " String Array" , objParameter ) CASE vbObject WScript.Echo ( _ " Object Array type = " & _ TYPENAME( objParemeter ) ) CASE vbError WScript.Echo ( _ " ???Array of Error" ) CASE vbBoolean CALL DoNumericArray ( _ " Boolean Array" , objParameter ) CASE vbVariant CALL DoArray ( _ " Variant Array" , objParameter ) CASE vbDataObject WScript.Echo ( _ " ???Array of Object" ) CASE vbByte CALL DoNumericArray ( _ " Byte Array" , objParameter ) CASE ELSE END SELECT ELSE WScript.Echo ( " Unhandled VARTYPE=" & nWhat ) END IF END SELECT END SUB REM REM Handle numeric Array REM SUB DoNumericArray ( strDescription , objParameter ) nCount = 0 FOR EACH Item IN objParameter nCount = nCount + 1 WScript.Echo( strDescription & "( " & nCount & " ) = " & Item & _ " - " & HEX( Item ) ) NEXT END SUB REM REM Handle generic Array REM SUB DoArray ( strDescription , objParameter ) nCount = 0 FOR EACH Item IN objParameter nCount = nCount + 1 WScript.Echo( strDescription & "( " & nCount & " ) = " & Item ) NEXT END SUB REM REM Main to handle all MSCluster_Resource Properties REM DIM ResourceSet, Resource, PropertySet, Property SET ResourceSet = GetObject( "winmgmts://./root/MSCluster" )._ InstancesOf( "MSCluster_Resource" ) WScript.Echo ( "Resource:" ) FOR EACH Resource IN ResourceSet CALL HandleParameter( "Resource.Caption" , Resource.Caption ) CALL HandleParameter( "Resource.Characteristics" , _ Resource.Characteristics ) CALL HandleParameter( "Resource.CoreResource" , _ Resource.CoreResource ) CALL HandleParameter( "Resource.CryptoCheckpoints" , _ Resource.CryptoCheckpoints ) CALL HandleParameter( "Resource.DebugPrefix" , _ Resource.DebugPrefix ) CALL HandleParameter( "Resource.DeleteRequiresAllNodes" , _ Resource.DeleteRequiresAllNodes ) CALL HandleParameter( "Resource.Description" , _ Resource.Description ) CALL HandleParameter( "Resource.Flags" , Resource.Flags ) CALL HandleParameter( "Resource.InstallDate" , _ Resource.InstallDate ) CALL HandleParameter( "Resource.IsAlivePollInterval" , _ Resource.IsAlivePollInterval ) CALL HandleParameter( "Resource.LoadBalAnalysisInterval" , _ Resource.LoadBalAnalysisInterval ) CALL HandleParameter( "Resource.LoadBalMinMemoryUnits" , _ Resource.LoadBalMinMemoryUnits ) CALL HandleParameter( "Resource.LoadBalMinProcessorUnits" , _ Resource.LoadBalMinProcessorUnits ) CALL HandleParameter( "Resource.LoadBalSampleInterval" , _ Resource.LoadBalSampleInterval ) CALL HandleParameter( "Resource.LoadBalStartupInterval" , _ Resource.LoadBalStartupInterval ) CALL HandleParameter( "Resource.LocalQuorumCapable" , _ Resource.LocalQuorumCapable ) CALL HandleParameter( "Resource.LooksAlivePollInterval" , _ Resource.LooksAlivePollInterval ) CALL HandleParameter( "Resource.Name" , Resource.Name ) CALL HandleParameter( "Resource.PendingTimeout" , _ Resource.PendingTimeout ) CALL HandleParameter( "Resource.PersistentState" , _ Resource.PersistentState ) WSCript.Echo( " Resource.PrivateProperties:") SET PropertySet = Resource.PrivateProperties FOR EACH Property IN PropertySet.Properties_ CALL HandleParameter( " Resource.PrivateProperty->" & _ Property.Name , Property.Value ) NEXT CALL HandleParameter( "Resource.QuorumCapable" , _ Resource.QuorumCapable ) CALL HandleParameter( "Resource.RegistryCheckpoints" , _ Resource.RegistryCheckpoints ) CALL HandleParameter( "Resource.ResourceClass" , _ Resource.ResourceClass ) CALL HandleParameter( "Resource.RestartAction" , _ Resource.RestartAction ) CALL HandleParameter( "Resource.RestartPeriod" , _ Resource.RestartPeriod ) CALL HandleParameter( "Resource.RestartThreshold" , _ Resource.RestartThreshold ) CALL HandleParameter( "Resource.RetryPeriodOnFailure" , _ Resource.RetryPeriodOnFailure ) CALL HandleParameter( "Resource.SeparateMonitor" , _ Resource.SeparateMonitor ) CALL HandleParameter( "Resource.State" , Resource.State ) CALL HandleParameter( "Resource.Status" , Resource.Status ) CALL HandleParameter( "Resource.SubClass" , Resource.SubClass ) CALL HandleParameter( "Resource.Type" , Resource.Type ) NEXT SET ResourceSet = NOTHING SET Resource = NOTHING SET PropertySet = NOTHING SET Property = NOTHING |