Sqlplus with output to .csv

Hi friends,
I have seen notes about sqlplus query which spooled output to .html
How do I write a sqlplus query which output spool file is .csv?
Thanks a lot,
Ms K

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:68212348056

Similar Messages

  • Output to CSV problem

    I added the 'output to CSV' option to my report. When I click on the Output to Excel button and the dialog box opens, I click on the Open button. The data is displayed AND there is something I don't expect - the XML code. An example is shown below:
    <script type="text/javascript">                    
    var rowStyle = new Array(10);                    
    var rowActive = new Array(10);                    
    var rowStyleHover = new Array(10);                
    rowStyle[1]='';                    
    rowStyleHover[1]='';                    
    rowActive[1]='N';                    
    Could someone tell me why the XML code is being saved with the exported data, and more importantly, how do I prevent it.
    Thanks in advance for any assistance!
    Gerald Kuzminsky

    That's cumbersome. We are still on v1.6. Is it
    fixed in a later version?Haven't checked if this is fixed in 2.0 or 2.2. I'm still using 2.0 and I honestly got used to the workaround so don't know if it's been changed/fixed.
    Earl

  • Harvesting asset info and output to CSV

    I need a script modified that will run on all servers in a work group in order to gather asset data on the appliances running Windows Server 2000 embedded edition. There are no domain services and these systems and this network technology is not an option
    in our environment due to proprietary security, networking and infrastructure restrictions. I have found a script that works but i need it modified to output to a csv as it wont output and .xls .xlsx properly. The script will be run on the only computer on
    the network that can access these devices. Any help on this would be awesome.
    ' Get Windows Server Information
    ' Written By Kely Mulcahey, E.C.S. LLC.
    ' Created: March 1, 2006
    ' Version: 3.0, Revised 5/30/2014
    On Error Resume Next
    Dim PUBOSVer ' Global OS Version
    ' Open File For Writing
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Const ForReading = 1
    ' Get Server List
    strServerFilename = "servers.txt"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(strServerFilename) Then
    ' Open Servers File
    Set objServers = objFSO.OpenTextFile(strServerFilename, ForReading)
    Else
    ' Server File is missing: Exit
    intMsg = MsgBox("File: " & Chr(34) & UCASE(strServerFilename) & Chr(34) & _
    " is either " & _
    "Missing or Damaged!" & vbcrlf & _
    vbcrlf & _
    "This Script will now Exit.", vbCritical, "Server File Error")
    WScript.Quit(0)
    End If
    Do Until objServers.AtEndOfStream
    strNewServer = Trim(objServers.ReadLine)
    strServerList = strServerList & strNewServer & vbcrlf
    intServerCnt = intServerCnt + 1
    Loop
    ' Enumerate Server Array
    For a = 0 To intServerCnt - 1
    strServer = Split(strServerList, vbcrlf)
    Next
    ' Create Excel Spreadsheet
    Set objXLA = CreateObject("Excel.Application")
    objXLA.Visible = False
    objXLA.DisplayAlerts = False
    Set objWorkbook = objXLA.Workbooks.Add()
    Set objWorksheet = objWorkbook.Worksheets(1)
    'Excel Constants
    Const xlEdgeLeft = 7
    Const xlContinuous = 1
    Const xlNone = -4142
    Const xlMedium = -4138
    Const xlThin = 2
    'Set Headers
    ' System Information
    objXLA.Cells(1,1).Value = "Service ID"
    objXLA.Cells(1,2).Value = "Company Name"
    objXLA.Cells(1,3).Value = "Manufacturer"
    objXLA.Cells(1,4).Value = "Model"
    objXLA.Cells(1,5).Value = "Operating System"
    ' Processors
    objXLA.Cells(1,6).Value = "Processor Type"
    objXLA.Cells(1,7).Value = "Processors"
    ' RAM
    objXLA.Cells(1,8).Value = "RAM"
    objXLA.Cells(1,9).Value = "Slots"
    objXLA.Cells(1,10).Value = "Max Capacity"
    ' Network
    objXLA.Cells(1,11).Value = "NIC Port"
    objXLA.Cells(1,12).Value = "Speed"
    objXLA.Cells(1,13).Value = "Connection Name"
    objXLA.Cells(1,14).Value = "Primary IP"
    objXLA.Cells(1,15).Value = "Virtual IP"
    objXLA.Cells(1,16).Value = "Primary DNS"
    objXLA.Cells(1,17).Value = "Secondary DNS"
    ' Hard Disks
    objXLA.Cells(1,18).Value = "Interface"
    objXLA.Cells(1,19).Value = "Physical Disks"
    objXLA.Cells(1,20).Value = "Disk Size"
    objXLA.Cells(1,21).Value = "Fault Tolerant"
    objXLA.Cells(1,22).Value = "Hot Spare"
    ' Set Top Line
    objXLA.Cells(1, 1).EntireRow.Font.Bold = True
    objXLA.Cells(1, 1).EntireRow.Font.Underline = True
    For b = 0 To UBound(strServer) - 1
    strServerParts = Split(strServer(b), " ")
    strComputer = strServerParts(0)
    ' Parse Server Information
    If UBound(strServerParts) = 2 Then
    strUsername = Trim(strServerParts(1))
    strPassword = Trim(strServerParts(2))
    End If
    ' Create Connection Object
    Set objWMIService = Nothing
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objSWbemLocator.ConnectServer _
    (strComputer, "root\cimv2", strUsername, strPassword)
    objWMIServices.Security_.ImpersonationLevel = 3
    ' Check if Server Exists
    For intWMICheck = 0 To 15
    If Not objWMIService Is Nothing Then
    Exit For
    Else
    WScript.Sleep(1000)
    End If
    Next
    ' Server Exists
    If intWMICheck < 15 Then
    ' Get CPU Information
    Set colProcessor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")
    For Each colProc In colProcessor
    strManuf = colProc.Manufacturer
    strDescription = ProcessorName(colProc.Name)
    strClockSpeed = colProc.CurrentClockSpeed
    strSocket = strSocket & colProc.SocketDesignation & vbcrlf
    strProcID = strProcID & colProc.ProcessorID & vbcrlf
    strUniqueID = strUniqueID & colProc.UniqueID & vbcrlf
    ProcCount = ProcCount + 1
    Next
    ' Determine if Hyperthreading is Enabled
    strHTStatus = GetHTStatus(strSocket, ProcCount, strProcID, strUniqueID)
    ' DC / HT Results
    If strHTStatus = "True" Then
    If InStr(strManuf, "Intel") Then
    strDescription = strDescription & " (Dual Core or H/T)"
    Else
    strDescription = strDescription & " (Dual Core)"
    End If
    ProcCount = ProcCount / 2
    End If
    ' Export Information
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colCS = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
    ' Write Basic System Information
    For Each objItem in colCS
    Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
    For Each objItemOS in colOS
    ' Get SP Version
    If objItemOS.CSDVersion <> "" Then
    strSPVersion = objItemOS.CSDVersion
    Else
    strSPVersion = "No Service Packs Installed"
    End If
    If objItemOS.LastBootUpTime <> "" Then
    strLastBoot = DateConvert(objItemOS.LastBootUpTime)
    Else
    strLastBoot = "N/A"
    End If
    ' Set OS Version Information
    PUBOSVer = objItemOS.Caption
    objXLA.Cells(b + 2, 1).Value = objItemOS.csname
    objXLA.Cells(b + 2, 3).Value = objItem.Manufacturer
    objXLA.Cells(b + 2, 4).Value = objItem.Model
    objXLA.Cells(b + 2, 5).Value = PUBOSVer & " - " & strSPVersion
    objXLA.Cells(b + 2, 6).Value = strDescription
    objXLA.Cells(b + 2, 7).Value = ProcCount
    objXLA.Cells(b + 2, 8).Value = MemoryConvert(objItem.TotalPhysicalMemory)
    Next
    Next
    ' Get Memory Breakdown
    Dim strMemBreak
    strMemBreak = Split(MemoryBreakdown(), vbcrlf)
    n = 0
    For n = 0 To UBound(strMemBreak) - 1
    strSlots = strSlots & strMemBreak(n) & Chr(10)
    Next
    strMaxCapacity = strMemBreak(UBound(strMemBreak))
    objXLA.Cells(b + 2, 9).Value = Left(strSlots, Len(strSlots) - 1)
    objXLA.Cells(b + 2, 10).Value = strMaxCapacity
    ' Dispose
    strMemBreak = ""
    strMaxCapacity = ""
    strSlots = ""
    '--------------Computer Information (End)------------------'
    '-------------Partition Information (Start)----------------'
    ' Get Drive Count
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set DiskItemsParent = objWMIService.ExecQuery("Select * from Win32_DiskDrive")
    intCount = DiskItemsParent.Count
    ' Process Drives
    intDriveMark = 0
    For i = 0 To intCount - 1
    Set DiskItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE Index = " & i)
    For Each diskItem in DiskItems
    ' Convert Drive Size
    If diskItem.Size <> "" Then strSize = strSize & ByteConvert(diskItem.Size) & Chr(10) Else strSize = "N/A" & Chr(10)
    If diskItem.StatusInfo <> "" Then strStsInfo = diskItem.StatusInfo Else strStsInfo = "N/A"
    If diskItem.SCSIBus <> "" Then strSCSIBus = diskItem.SCSIBus Else strSCSIBus = "N/A"
    If diskItem.SCSILogicalUnit <> "" Then strSCSILog = diskItem.SCSILogicalUnit Else strSCSILog = "N/A"
    If diskItem.SCSIPort <> "" Then strSCSIPort = diskItem.SCSIPort Else strSCSIPort = "N/A"
    If diskItem.SCSITargetId <> "" Then strSCSITarget = diskItem.SCSITargetId Else strSCSITarget = "N/A"
    ' Get Model
    strModel = Split(diskItem.Model, " ")
    ' Detect HP Array
    If (UCase(strModel(0)) = "HP" Or UCase(strModel(0)) = "COMPAQ") And intDriveMark = 0 Then
    strGetHPArray = GetHPArray(strComputer, strUsername, strPassword)
    If strGetHPArray <> "" Then
    strSplitHP = Split(strGetHPArray, Chr(13))
    For a = 0 To UBound(strSplitHP)
    strSplitResult = Split(strSplitHP(a), ":")
    i = i + 1
    strDriveCount = strDriveCount & Trim(strSplitResult(0)) & Chr(10)
    strDriveSize = strDriveSize & Trim(strSplitResult(1)) & Chr(10)
    strDriveFault = strDriveFault & Trim(strSplitResult(2)) & Chr(10)
    strDriveSpare = strDriveSpare & Trim(strSplitResult(3)) & Chr(10)
    strInterface = strInterface & "HP SCSI" & Chr(10)
    Next
    ' Set Controller Output
    objXLA.Cells(b + 2, 19).Value = Trim(Left(strDriveCount, Len(strDriveCount) - 1))
    objXLA.Cells(b + 2, 20).Value = Trim(Left(strDriveSize, Len(strDriveSize) - 1))
    objXLA.Cells(b + 2, 21).Value = Trim(Left(strDriveFault, Len(strDriveFault) - 1))
    objXLA.Cells(b + 2, 22).Value = Trim(Left(strDriveSpare, Len(strDriveSpare) - 1))
    intDriveMark = 1 ' Mark That Data was Obtained
    Else
    strDriveCount = strDriveCount & "1" & Chr(10)
    strDriveSize = strDriveSize & strSize & Chr(10)
    strDriveFault = strDriveFault & "N/A" & Chr(10)
    strDriveSpare = strDriveSpare & "N/A" & Chr(10)
    strInterface = strInterface & "HP SCSI " & Chr(10)
    ' Set Controller Output
    intDriveMark = 1 ' Mark That Another Pass is Invalid
    ' Set Controller Output
    objXLA.Cells(b + 2, 19).Value = Trim(Left(strDriveCount, Len(strDriveCount) - 1))
    objXLA.Cells(b + 2, 20).Value = Trim(Left(strDriveSize, Len(strDriveSize) - 1))
    objXLA.Cells(b + 2, 21).Value = Trim(Left(strDriveFault, Len(strDriveFault) - 1))
    objXLA.Cells(b + 2, 22).Value = Trim(Left(strDriveSpare, Len(strDriveSpare) - 1))
    End If
    Else
    strDriveCount = strDriveCount & "1" & Chr(10)
    strDriveSize = strDriveSize & strSize & Chr(10)
    strDriveFault = strDriveFault & "N/A" & Chr(10)
    strDriveSpare = strDriveSpare & "N/A" & Chr(10)
    ' Set Controller Output
    intDriveMark = 1 ' Mark That Another Pass is Invalid
    ' Set Controller Output
    objXLA.Cells(b + 2, 19).Value = Trim(Left(strDriveCount, Len(strDriveCount) - 1))
    objXLA.Cells(b + 2, 20).Value = Trim(Left(strDriveSize, Len(strDriveSize) - 1))
    objXLA.Cells(b + 2, 21).Value = Trim(Left(strDriveFault, Len(strDriveFault) - 1))
    objXLA.Cells(b + 2, 22).Value = Trim(Left(strDriveSpare, Len(strDriveSpare) - 1))
    ' Set Interface
    If diskItem.InterfaceType = "IDE" Then
    strInterface = strInterface & "ATA" & Chr(10)
    Else
    strInterface = strInterface & "SATA/SCSI" & Chr(10)
    End If
    End If
    ' Set Cell Value "Interface"
    objXLA.Cells(b + 2, 18).Value = Left(strInterface, Len(strInterface) - 1)
    Next
    ' Dispose Drive Sizes
    strDriveSize = ""
    Next
    ' Dispose Drive Values
    strDriveCount = ""
    strDriveFault = ""
    strDriveSpare = ""
    strInterface = ""
    '----Partition Information (End)---------------------------'
    '----Network Information (Start)---------------------------'
    Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter")
    i = 1
    eth = 0
    Dim STOREDIP(0)
    intNum = 0
    For Each objItem in colItems
    If objItem.NetConnectionStatus <> "" Then
    ' Determine Connection Status
    If objItem.NetConnectionStatus = 0 Then
    strNetStat = "Disabled"
    ElseIf objItem.NetConnectionStatus = 2 Then
    strNetStat = "Connected"
    ElseIf objItem.NetConnectionStatus = 7 Then
    strNetStat = "Disconnected"
    Else
    strNetStat = "Unknown"
    End If
    If objItem.NetConnectionStatus <> 0 Then
    ' Get Network Card Information
    Const HKEY_LOCAL_MACHINE = &H80000002
    strKeyPath1 = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
    strKeyPath2 = "SYSTEM\CurrentControlSet\Services\NetBT\Parameters"
    strHostEntry = "Hostname"
    strDomainEntry = "Domain"
    strNodeEntry = "DhcpNodeType"
    strRoutingEntry = "IPEnableRouter"
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
    objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,strHostEntry,strHostname
    objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,strDomainEntry,strDomain
    objReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath2,strNodeEntry,dwNodeType
    objReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath1,strRoutingEntry,dwIPRouting
    Select Case dwNodeType
    Case 4 strNodeType = "Mixed"
    Case 8 strNodeType = "Hybrid"
    Case Else strNodeType = dwNodeType
    End Select
    If dwIPRouting = 0 Then
    strIPRouting = "No"
    ElseIf dwIPRouting = 1 Then
    strIPRouting = "Yes"
    Else
    strIPRouting = "?"
    End If
    Set colFirstNicConfig = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    For Each objFirstNicConfig In colFirstNicConfig
    strDnsWins = objFirstNicConfig.DNSEnabledForWINSResolution
    Next
    Set colNicConfigs = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    ' Display per-adapter settings.
    For Each objNicConfig In colNicConfigs
    intIndex = objNicConfig.Index
    Set objNic = objWMIService.Get("Win32_NetworkAdapter.DeviceID=" & intIndex)
    ' Connection Name
    If GetOsVer > 5 Then
    ' Works only in XP / 2003
    strNetConn = objNic.NetConnectionID
    ElseIf GetOsVer = 5 Then
    strNetConn = ""
    ' Get Home Drive of Remote Server
    Set objShell = CreateObject("WScript.Shell")
    Set objEtherName = objShell.Exec("cmd /c ipconfig | find " & Chr(34) & "Ethernet" & Chr(34))
    strEtherName = objEtherName.StdOut.ReadAll()
    strEtherParse = Split(strEtherName, Chr(13))
    strEtherConn = Split(strEtherParse(eth), " ")
    For y = 2 To UBound(strEtherConn)
    strNetConn = strNetConn & " " & strEtherConn(y)
    Next
    ' Trim Connection Name
    strNetConn = Left(Trim(strNetConn), Len(Trim(strNetConn)) - 1)
    Else
    strNetConn = ""
    End If
    ' IP Addresses
    strIPAddresses = ""
    If Not IsNull(objNicConfig.IPAddress) Then
    For Each strIPAddress In objNicConfig.IPAddress
    strIPAddresses = strIPAddresses & strIPAddress & " "
    Next
    End If
    strIPCollection = Split(strIPAddresses, " ")
    ' Subnets
    strIPSubnets = ""
    If Not IsNull(objNicConfig.IPSubnet) Then
    For Each strIPSubnet In objNicConfig.IPSubnet
    strIPSubnets = strIPSubnets & strIPSubnet & " "
    Next
    End If
    strSMCollection = Split(strIPSubnets, " ")
    ' Virtual IP's
    strVirtual = ""
    If UBound(strIPCollection) > 1 Then
    For IPCount = 1 To UBound(strIPCollection) - 1
    strVirtual = strVirtual & (strIPCollection(IPCount) & " / " & strSMCollection(IPCount)) & Chr(10)
    Next
    strVirtual = Left(strVirtual, Len(strVirtual) - 1)
    End If
    If Trim(strVirtual) = "" Then strVirtual = "N/A"
    ' Gateways
    strDefaultIPGateways = ""
    If Not IsNull(objNicConfig.DefaultIPGateway) Then
    For Each strDefaultIPGateway In objNicConfig.DefaultIPGateway
    strDefaultIPGateways = strDefaultIPGateways & strDefaultIPGateway & " "
    Next
    Else
    strDefaultIPGateways = "N/A"
    End If
    ' If IP is repeated, and was already reported.
    intSkipLoop = 0
    If Trim(strNetConn) <> "" Then
    For j = 0 To intNum - 1
    If STOREDIP(j) = strIPAddresses Then
    intSkipLoop = 1
    Exit For
    End If
    Next
    If intSkipLoop = 0 Then
    ReDim Preserve STOREDIP(intNum)
    STOREDIP(intNum) = strIPAddresses
    intNum = intNum + 1
    End If
    Else
    intSkipLoop = 1
    End If
    ' DNS
    strDNSServerSearchOrder = ""
    If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
    For Each strDNSServer In objNicConfig.DNSServerSearchOrder
    strDNSServerSearchOrder = strDNSServerSearchOrder & strDNSServer & " "
    Next
    strDNS = Split(strDNSServerSearchOrder, " ")
    strDNS1 = strDNS(0)
    If Trim(strDNS1) = "" Then strDNS1 = "N/A"
    If UBound(strDNS) > 1 Then
    strDNS2 = strDNS(1)
    Else
    strDNS2 = "N/A"
    End If
    Else
    strDNS1 = "N/A"
    strDNS2 = "N/A"
    End If
    ' Run Output Process
    If intSkipLoop = 0 Then
    ' Connection Speed
    strSpeed = "Unknown"
    Set objWMIService2 = objSWbemLocator.ConnectServer _
    (strComputer, "root\WMI", strUsername, strPassword)
    objWMIServices.Security_.ImpersonationLevel = 3
    Set listAdapters = objWMIService2.ExecQuery("SELECT * FROM MSNdis_LinkSpeed")
    Set enumAdapters = objWMIService2.ExecQuery("SELECT * FROM MSNdis_EnumerateAdapter")
    For Each objAdapter in listAdapters
    For Each objEnum in enumAdapters
    intEnum = Len(objEnum.DeviceName)
    If objNicConfig.SettingID = Right(objEnum.DeviceName, intEnum - 8) Then
    If objEnum.InstanceName = objAdapter.InstanceName Then
    intLength = Len(objAdapter.NdisLinkSpeed/10000)
    If intLength > 3 Then
    strSpeed = Left(objAdapter.NdisLinkSpeed/10000, intLength - 3)
    strSpeed = strSpeed & ".0 Gbps"
    Else
    strSpeed = objAdapter.NdisLinkSpeed/10000 & " Mbps"
    End If
    End If
    End If
    Next
    Next
    strTotalDesc = strTotalDesc & objNicConfig.Description & Chr(10)
    strTotalSpeed = strTotalSpeed & strSpeed & Chr(10)
    strTotalNetConn = strTotalNetConn & strNetConn & Chr(10)
    strPrimaryIP = strPrimaryIP & strIPCollection(0) & " / " & strSMCollection(0) & Chr(10)
    strDNSTotal1 = strDNSTotal1 & strDNS1 & Chr(10)
    strDNSTotal2 = strDNSTotal2 & strDNS2 & Chr(10)
    strTotalVirtual = strTotalVirtual & strVirtual & Chr(10)
    i = i + 1
    eth = eth + 2
    ' Dispose
    strDescription = ""
    ProcCount = 0
    strClockSpeed = ""
    strInterface = ""
    intCount = 0
    strSize = ""
    strSpeed = ""
    strIPCollection = ""
    strVirtual = ""
    strDNS = ""
    strDNS1 = ""
    strDNS2 = ""
    End If
    Next
    ' Output
    ' Trim Leading Chr(10)
    If Left(strPrimaryIP, 1) = Chr(10) Then strPrimaryIP = Right(strPrimaryIP, Len(strPrimaryIP) - 1)
    If Left(strTotalVirtual, 1) = Chr(10) Then strTotalVirtual = Right(strTotalVirtual, Len(strTotalVirtual) - 1)
    If Left(strDNSTotal1, 1) = Chr(10) Then strDNSTotal1 = Right(strDNSTotal1, Len(strDNSTotal1) - 1)
    If Left(strDNSTotal2, 1) = Chr(10) Then strDNSTotal2 = Right(strDNSTotal2, Len(strDNSTotal2) - 1)
    objXLA.Cells(b + 2, 11).Value = Trim(Left(strTotalDesc, Len(strTotalDesc) - 1))
    objXLA.Cells(b + 2, 12).Value = Trim(Left(strTotalSpeed, Len(strTotalSpeed) - 1))
    objXLA.Cells(b + 2, 13).Value = Trim(Left(strTotalNetConn, Len(strTotalNetConn) - 1))
    objXLA.Cells(b + 2, 14).Value = Trim(Left(strPrimaryIP, Len(strPrimaryIP) - 1))
    objXLA.Cells(b + 2, 15).Value = Trim(Left(strTotalVirtual, Len(strTotalVirtual) - 1))
    objXLA.Cells(b + 2, 16).Value = Trim(Left(strDNSTotal1, Len(strDNSTotal1) - 1))
    objXLA.Cells(b + 2, 17).Value = Trim(Left(strDNSTotal2, Len(strDNSTotal2) - 1))
    End If
    End If
    ' Dispose Per Loop
    strTotalDesc = ""
    strTotalSpeed = ""
    strTotalNetConn = ""
    strPrimaryIP = ""
    strDNSTotal1 = ""
    strDNSTotal2 = ""
    strTotalVirtual = ""
    Set eth = 0
    Set i = 0
    Next
    '------------Network Information (End)------------------'
    Else
    'No Data Present
    objXLA.Cells(b + 2, 1).Value = strComputer
    objXLA.Cells(b + 2, 3).Value = "Information Not Available"
    objXLA.Cells(b + 2, 1).EntireRow.Font.Bold = True
    objXLA.Cells(b + 2, 1).EntireRow.Interior.ColorIndex = 44
    End If
    ' Dispose Per Server
    ProcCount = 0
    strSocket = ""
    strProcID = ""
    strUniqueID = ""
    Set objWMIService = Nothing
    Next
    '-----------------Functions (Start)---------------------'
    ' System Memory Conversion
    Function MemoryConvert(strMem)
    Dim intLength
    Dim intExp
    Dim intSize
    Dim strSize
    Dim strMeasure
    Dim strMemory
    intLength = Len(strMem)
    If (intLength Mod 4 = 0) Then
    intExp = CInt((intLength / 3) - 2)
    Else
    intExp = CInt((intLength / 3) - 1)
    End If
    ' Convert to Lowest Integer Value
    For intCount = 1 To Len(intExp)
    chrRead = Mid(intExp, intCount, 1)
    If chrRead = "." Then
    Exit For
    Else
    strRead = strRead & chrRead
    End If
    Next
    intExp = Cint(strRead)
    intSize = CLng(strMem / (2 ^ (intExp * (10))))
    If Len(intSize) = 1 Then
    strFormat = FormatNumber(CStr(intSize), 2)
    Else
    strFormat = intSize + 1
    End If
    If (intExp = 1) Then
    strMeasure = "KB"
    ElseIf (intExp = 2) Then
    strMeasure = "MB"
    ElseIf (intExp = 3) Then
    strMeasure = "GB"
    ElseIf (intExp = 4) Then
    strMeasure = "TB"
    ElseIf (intExp = 5) Then
    strMeasure = "PB"
    ElseIf (intExp = 6) Then
    strMeasure = "EB"
    End If
    MemoryConvert = strFormat & " " & strMeasure
    End Function
    ' System Byte Conversion
    Function ByteConvert(strMem)
    Dim intLength
    Dim intExp
    Dim intSize
    Dim strSize
    Dim strMeasure
    Dim strMemory
    intLength = Len(strMem)
    If (intLength Mod 3 = 0) Then
    intExp = (intLength / 3) - 1
    Else
    intExp = (intLength / 3)
    End If
    ' Convert to Lowest Integer Value
    For intCount = 1 To Len(intExp)
    chrRead = Mid(intExp, intCount, 1)
    If chrRead = "." Then
    Exit For
    Else
    strRead = strRead & chrRead
    End If
    Next
    intExp = Cint(strRead)
    intSize = CLng(strMem / (2 ^ (intExp * (10))))
    strFormat = FormatNumber(CStr(intSize), 2)
    If (intExp = 1) Then
    strMeasure = "KB"
    ElseIf (intExp = 2) Then
    strMeasure = "MB"
    ElseIf (intExp = 3) Then
    strMeasure = "GB"
    ElseIf (intExp = 4) Then
    strMeasure = "TB"
    ElseIf (intExp = 5) Then
    strMeasure = "PB"
    ElseIf (intExp = 6) Then
    strMeasure = "EB"
    End If
    ByteConvert = strFormat & " " & strMeasure
    End Function
    ' System RAID Byte Conversion
    Function ByteConvertRAID(strMem)
    Dim intLength
    Dim intExp
    Dim intSize
    Dim strSize
    Dim strMeasure
    Dim strMemory
    intLength = Len(strMem)
    If (intLength Mod 3 = 0) Then
    intExp = (intLength / 3) - 1
    Else
    intExp = (intLength / 3)
    End If
    ' Convert to Lowest Integer Value
    For intCount = 1 To Len(intExp)
    chrRead = Mid(intExp, intCount, 1)
    If chrRead = "." Then
    Exit For
    Else
    strRead = strRead & chrRead
    End If
    Next
    intExp = Cint(strRead)
    intSize = (strMem / (2 ^ (intExp * (10))))
    strFormat = FormatNumber(CStr(intSize), 2)
    If (intExp = 0) Then
    strMeasure = "MB"
    ElseIf (intExp = 1) Then
    strMeasure = "GB"
    ElseIf (intExp = 2) Then
    strMeasure = "TB"
    ElseIf (intExp = 3) Then
    strMeasure = "PB"
    ElseIf (intExp = 4) Then
    strMeasure = "EB"
    End If
    ByteConvertRAID = strFormat & " " & strMeasure
    End Function
    ' Trim Processor Description
    Function ProcessorName(strName)
    Dim intCounter
    Dim strRead
    Dim chrRead, chrReadMore
    For intCounter = 1 to Len(strName)
    chrRead = Mid(strName, intCounter, 1)
    chrReadMore = Mid(strName, intCounter + 1, 1)
    If ((chrRead <> " ") Or ((chrRead = " ") And (chrReadMore <> " "))) Then
    strRead = strRead & chrRead
    End If
    Next
    ProcessorName = Trim(strRead)
    End Function
    ' Get Hyper-Threading Status
    Function GetHTStatus(strName, intProc, strID, strUnique)
    strNameArray = Split(strName, vbcrlf)
    strIDArray = Split(strID, vbcrlf)
    strUniqueList = Split(strUnique, vbcrlf)
    intTotal = 0
    ' Check Socket Designation
    For i = 0 To UBound(strNameArray) - 1
    intMark = 1
    ' Check for Redundancies
    For j = i + 1 To UBound(strNameArray) - 1
    If strNameArray(i) = strNameArray(j) Then
    intMark = 0
    End If
    Next
    ' If Redundant Unique ID's Exist
    For j = i + 1 To UBound(strNameArray) - 1
    If strUniqueList(i) <> "" And strUniqueList(j) <> "" And _
    (strUniqueList(i) <> strUniqueList(j)) Then
    intMark = 1
    End If
    Next
    ' Check for NULL ProcessorID
    If Trim(strIDArray(i)) = "0000000000000000" Then
    intMark = 0
    End If
    ' Calculate Total
    If intMark = 1 Then
    intTotal = intTotal + intMark
    End If
    Next
    ' Compare Results
    If intProc = 2 * intTotal Then
    GetHTStatus = "True"
    Else
    GetHTStatus = "False"
    End If
    End Function
    ' Get Memory Breakdown
    Function MemoryBreakdown
    Set colPMAItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemoryArray",,48)
    For Each objPMAItem in colPMAItems
    lngMax = CLng(objPMAItem.MaxCapacity)
    intCount = CInt(objPMAItem.MemoryDevices)
    Next
    ReDim Preserve strPMArray(intCount)
    Set colPMItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory",,48)
    For Each objPMItem in colPMItems
    strValue = strValue & objPMItem.DeviceLocator & ": "
    strValue = strValue & objPMItem.Capacity / 2^20 & "MB, "
    strValue = strValue & objPMItem.Speed & "MHz"
    strPMArray(TrimTrailingNumber(objPMItem.Tag)) = strValue
    strValue = ""
    Next
    j = 0
    strResult = ""
    For j = 0 To intCount - 1
    If Trim(strPMArray(j)) = "" Then strPMArray(j) = "<Empty>"
    strResult = strResult & strPMArray(j) & vbcrlf
    Next
    strResult = strResult & (lngMax / 2^10) & "MB"
    MemoryBreakdown = strResult
    End Function
    ' Get Part Name
    Function ExtractPartName(strName)
    Dim chrRead
    Dim strRead
    Dim i
    For i = 2 To Len(strName)
    chrRead = Mid(strName, Len(strName) - (i - 1), 1)
    If chrRead <> Chr(34) Then
    strRead = chrRead & strRead
    Else
    Exit For
    End If
    Next
    ExtractPartName = strRead
    End Function
    ' Get Trailing Number
    Function TrimTrailingNumber(strNum)
    Dim chrRead
    Dim strRead
    Dim intLen
    strNum = Trim(strNum)
    intLen = Len(strNum)
    i = 1
    For i = 1 To intLen
    chrRead = Mid(strNum, intLen - (i - 1), 1)
    If IsNumeric(chrRead) = "True" Then
    strRead = chrRead & strRead
    Else
    Exit For
    End If
    Next
    TrimTrailingNumber = strRead
    End Function
    ' Function: WMIDateStringToDate(dtmDate)
    Function WMIDateToString(dtmDate)
    WMIDateToString = CDate(Mid(dtmDate, 5, 2) & "/" & _
    Mid(dtmDate, 7, 2) & "/" & _
    Left(dtmDate, 4) & " " & _
    Mid(dtmDate, 9, 2) & ":" & _
    Mid(dtmDate, 11, 2) & ":" & _
    Mid(dtmDate, 13, 2))
    End Function
    ' Function: GetOsVer
    Function GetOsVer
    Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
    For Each objOperatingSystem In colOperatingSystems
    GetOSVer = CSng(Left(objOperatingSystem.Version, 3))
    Next
    End Function
    ' Function: GetHPArray
    Function GetHPArray(strComputer2, strUsername2, strPassword2)
    ' Check for 64-bit Windows
    If InStr(PUBOSVer, "x64") Then
    strCompaq = "Program Files (x86)\Compaq\Cpqacuxe\Bin"
    Else
    strCompaq = "Program Files\Compaq\Cpqacuxe\Bin"
    End If
    ' Create Connection Object
    Set objWMIServiceRem = objWMIService.Get("Win32_Process")
    ' Confirm Location of Compaq Array Manager
    Set objHPShell = CreateObject("WScript.Shell")
    Set objHPFSO = CreateObject("Scripting.FileSystemObject")
    Set WshNetwork2 = WScript.CreateObject("WScript.Network")
    WshNetwork2.MapNetworkDrive "", "\\" & strComputer2 & "\C$" ,,strUsername2, strPassword2
    strProgram = "\\" & strComputer2 & "\C$\" & strCompaq & "\cpqacuxe.exe"
    ' Ensure Access is Possible
    If objHPFSO.FileExists(strProgram) Then
    ' Process Array Config
    strProcess = Chr(34) & "C:\" & strCompaq & "\cpqacuxe.exe" & Chr(34) & " -c c:\output.txt"
    Process = objWMIServiceRem.Create(strProcess, null, null, intProcessID)
    ' Check for "output.txt"
    For intTimerHP = 0 To 10
    If objFSO.FileExists("\\" & strComputer2 & "\C$\output.txt") Then
    Exit For
    Else
    WScript.Sleep(1000)
    End If
    Next
    ' Process Output
    If intTimerHP < 10 Then
    ' Check for Locked Output File
    Set objHPOutputFile = objHPFSO.GetFile("\\" & strComputer2 & "\C$\output.txt")
    If objHPOutputFile.Size <> 0 Then
    ' Close File
    Set objHPOutputFile = Nothing
    ' Continue Processesing File
    Set objHPInputFile = objHPFSO.OpenTextFile("\\" & strComputer2 & "\C$\output.txt", ForReading)
    Do Until objHPInputFile.AtEndOfStream
    strHPArray = strHPArray & objHPInputFile.ReadLine & vbcrlf
    Loop
    ' Close Input File
    objHPInputFile.Close
    ' Close Link to Server
    objHPFSO.DeleteFile("\\" & strComputer2 & "\C$\output.txt")
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    ' Create String Array
    strHPParse = Split(strHPArray, vbcrlf)
    ' Parse For Individual RAID Arrays
    Dim strArrayList()
    z = 0
    For i = 0 To UBound(strHPParse)
    j = 0
    ' Array and Drives
    If InStr(strHPParse(i), "Array Specifications") Then
    ReDim Preserve strArrayList(z)
    strArrayList(z) = strArrayList(z) & strHPParse(i) & vbcrlf
    For j = i + 1 To Ubound(strHPParse)
    If InStr(strHPParse(j), "Array Specifications") Then
    Exit For
    Else
    strArrayList(z) = strArrayList(z) & strHPParse(j) & vbcrlf
    End If
    Next
    z = z + 1
    End If
    Next
    ' Process Each RAID Array
    x = 0
    For x = 0 To UBound(strArrayList)
    strListParse = Split(strArrayList(x), vbcrlf)
    For y = 0 To UBound(strListParse)
    ' Drives
    If Left(strListParse(y), 6) = "Drive=" Then
    strDrives = ""
    strDrives = Split(strListParse(y), ",")
    k = 0
    For j = 0 To UBound(strDrives)
    k = k + 1
    Next
    strDriveCount = k ' For Output
    End If
    ' Hot Spare
    If InStr(strListParse(y), "OnlineSpare=") Then
    If InStr(strListParse(y), "OnlineSpare= No") Then
    strHotSpare = strHotSpare & "N" ' For Output
    Else
    strHotSpare = strHotSpare & "Y" ' For Output
    End If
    End If
    ' Logical Drives
    If InStr(strListParse(y), "Logical Drive Specifications") Then
    ' Find First Logical Drive
    strRAID = Split(strListParse(y + 2), " ")
    strRAIDResult = strRAIDResult & "RAID " & strRAID(1) & " / " ' For Output
    strGetDrive = Split(strListParse(y + 3), " ")
    strRAIDSize = strRAIDSize & ByteConvertRAID(strGetDrive(1)) & " / " ' For Output
    End If
    Next
    ' Process Results
    strRAIDSize = Left(strRAIDSize, Len(strRAIDSize) - 3)
    strRAIDResult = Left(strRAIDResult, Len(strRAIDResult) - 3)
    strNewList = strNewList & strDriveCount & _
    ":" & strRAIDSize & ":" & strRAIDResult & ":" & strHotSpare & Chr(13)
    ' Dispose Array Variables
    strDriveCount = ""
    strRAIDSize = ""
    strRAIDResult = ""
    strHotSpare = ""
    Next
    ' Return Array Output
    GetHPArray = Left(strNewList, Len(strNewList) - 1)
    Exit Function
    Else ' "output.txt" Is Locked
    ' Close File
    Set objHPOutputFile = Nothing
    ' Kill Remote Connection
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    GetHPArray = ""
    Exit Function
    End If
    Else ' "output.txt" Does not Exist
    ' Kill Remote Connection
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    GetHPArray = ""
    Exit Function
    End If
    Else ' "Array Manager Does not Exist
    ' Input not Available
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    GetHPArray = ""
    Exit Function
    End If
    End Function
    '--------------------Functions (End)--------------------'
    ' Set Excel Attributes
    Const xlVAlignTop = -4160
    Set objRange2 = objWorksheet.UsedRange
    objRange2.VerticalAlignment = xlVAlignTop
    ' Set Font Attributes
    objXLA.Cells.Font.Size = 8
    objXLA.Cells.Font.Name = "Arial"
    objXLA.Cells.Font.ColorIndex = 11
    objXLA.Cells.EntireColumn.AutoFit
    objXLA.Cells(1, 9).ColumnWidth = 30 ' RAM Slots
    objXLA.Cells(1, 11).ColumnWidth = 40 ' NIC Port
    objXLA.Cells(1, 13).ColumnWidth = 25 ' Connection Name
    objXLA.Cells(1, 14).ColumnWidth = 25 ' Interface IP's
    objXLA.Cells(1, 15).ColumnWidth = 25 ' Virtual IP's
    objXLA.Cells(1, 16).ColumnWidth = 15 ' DNS1
    objXLA.Cells(1, 17).ColumnWidth = 15 ' DNS2
    objXLA.Cells(1, 18).ColumnWidth = 15 ' Interface Type
    objXLA.Cells.HorizontalAlignment = 2 ' Drive Count
    objXLA.Cells(1, 20).ColumnWidth = 20 ' Virtual IP's
    objXLA.Cells(1, 21).ColumnWidth = 20 ' Virtual IP's
    ' Save
    set objFSO2 = CreateObject("Scripting.FileSystemObject")
    strFileName = objFSO2.getAbsolutePathName("") & "\Scan Results.xls"
    objWorkbook.SaveAs(strFileName)
    objWorkbook.Close
    objXLA.Quit
    ' Notify User
    WScript.Echo "Process Completed (" & Now & ")"
    ' Close Program
    WScript.Quit(0)

    I Need my script modified to run this script and output to CSV but its so big I am not sure where to start. I don't need it in XLS at all, and I can add my own headers, cell sizes and colors, etc. so It should just output the data to a simple CSV. 
    On Error Resume Next
    Dim PUBOSVer ' Global OS Version
    ' Open File For Writing
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Const ForReading = 1
    ' Get Server List
    strServerFilename = "servers.txt"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If objFSO.FileExists(strServerFilename) Then
    ' Open Servers File
    Set objServers = objFSO.OpenTextFile(strServerFilename, ForReading)
    Else
    ' Server File is missing: Exit
    intMsg = MsgBox("File: " & Chr(34) & UCASE(strServerFilename) & Chr(34) & _
    " is either " & _
    "Missing or Damaged!" & vbcrlf & _
    vbcrlf & _
    "This Script will now Exit.", vbCritical, "Server File Error")
    WScript.Quit(0)
    End If
    Do Until objServers.AtEndOfStream
    strNewServer = Trim(objServers.ReadLine)
    strServerList = strServerList & strNewServer & vbcrlf
    intServerCnt = intServerCnt + 1
    Loop
    ' Enumerate Server Array
    For a = 0 To intServerCnt - 1
    strServer = Split(strServerList, vbcrlf)
    Next
    ' Create Excel Spreadsheet
    Set objXLA = CreateObject("Excel.Application")
    objXLA.Visible = False
    objXLA.DisplayAlerts = False
    Set objWorkbook = objXLA.Workbooks.Add()
    Set objWorksheet = objWorkbook.Worksheets(1)
    'Excel Constants
    Const xlEdgeLeft = 7
    Const xlContinuous = 1
    Const xlNone = -4142
    Const xlMedium = -4138
    Const xlThin = 2
    'Set Headers
    ' System Information
    objXLA.Cells(1,1).Value = "Service ID"
    objXLA.Cells(1,2).Value = "Company Name"
    objXLA.Cells(1,3).Value = "Manufacturer"
    objXLA.Cells(1,4).Value = "Model"
    objXLA.Cells(1,5).Value = "Operating System"
    ' Processors
    objXLA.Cells(1,6).Value = "Processor Type"
    objXLA.Cells(1,7).Value = "Processors"
    ' RAM
    objXLA.Cells(1,8).Value = "RAM"
    objXLA.Cells(1,9).Value = "Slots"
    objXLA.Cells(1,10).Value = "Max Capacity"
    ' Network
    objXLA.Cells(1,11).Value = "NIC Port"
    objXLA.Cells(1,12).Value = "Speed"
    objXLA.Cells(1,13).Value = "Connection Name"
    objXLA.Cells(1,14).Value = "Primary IP"
    objXLA.Cells(1,15).Value = "Virtual IP"
    objXLA.Cells(1,16).Value = "Primary DNS"
    objXLA.Cells(1,17).Value = "Secondary DNS"
    ' Hard Disks
    objXLA.Cells(1,18).Value = "Interface"
    objXLA.Cells(1,19).Value = "Physical Disks"
    objXLA.Cells(1,20).Value = "Disk Size"
    objXLA.Cells(1,21).Value = "Fault Tolerant"
    objXLA.Cells(1,22).Value = "Hot Spare"
    ' Set Top Line
    objXLA.Cells(1, 1).EntireRow.Font.Bold = True
    objXLA.Cells(1, 1).EntireRow.Font.Underline = True
    For b = 0 To UBound(strServer) - 1
    strServerParts = Split(strServer(b), " ")
    strComputer = strServerParts(0)
    ' Parse Server Information
    If UBound(strServerParts) = 2 Then
    strUsername = Trim(strServerParts(1))
    strPassword = Trim(strServerParts(2))
    End If
    ' Create Connection Object
    Set objWMIService = Nothing
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objSWbemLocator.ConnectServer _
    (strComputer, "root\cimv2", strUsername, strPassword)
    objWMIServices.Security_.ImpersonationLevel = 3
    ' Check if Server Exists
    For intWMICheck = 0 To 15
    If Not objWMIService Is Nothing Then
    Exit For
    Else
    WScript.Sleep(1000)
    End If
    Next
    ' Server Exists
    If intWMICheck < 15 Then
    ' Get CPU Information
    Set colProcessor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")
    For Each colProc In colProcessor
    strManuf = colProc.Manufacturer
    strDescription = ProcessorName(colProc.Name)
    strClockSpeed = colProc.CurrentClockSpeed
    strSocket = strSocket & colProc.SocketDesignation & vbcrlf
    strProcID = strProcID & colProc.ProcessorID & vbcrlf
    strUniqueID = strUniqueID & colProc.UniqueID & vbcrlf
    ProcCount = ProcCount + 1
    Next
    ' Determine if Hyperthreading is Enabled
    strHTStatus = GetHTStatus(strSocket, ProcCount, strProcID, strUniqueID)
    ' DC / HT Results
    If strHTStatus = "True" Then
    If InStr(strManuf, "Intel") Then
    strDescription = strDescription & " (Dual Core or H/T)"
    Else
    strDescription = strDescription & " (Dual Core)"
    End If
    ProcCount = ProcCount / 2
    End If
    ' Export Information
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colCS = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
    ' Write Basic System Information
    For Each objItem in colCS
    Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
    For Each objItemOS in colOS
    ' Get SP Version
    If objItemOS.CSDVersion <> "" Then
    strSPVersion = objItemOS.CSDVersion
    Else
    strSPVersion = "No Service Packs Installed"
    End If
    If objItemOS.LastBootUpTime <> "" Then
    strLastBoot = DateConvert(objItemOS.LastBootUpTime)
    Else
    strLastBoot = "N/A"
    End If
    ' Set OS Version Information
    PUBOSVer = objItemOS.Caption
    objXLA.Cells(b + 2, 1).Value = objItemOS.csname
    objXLA.Cells(b + 2, 3).Value = objItem.Manufacturer
    objXLA.Cells(b + 2, 4).Value = objItem.Model
    objXLA.Cells(b + 2, 5).Value = PUBOSVer & " - " & strSPVersion
    objXLA.Cells(b + 2, 6).Value = strDescription
    objXLA.Cells(b + 2, 7).Value = ProcCount
    objXLA.Cells(b + 2, 8).Value = MemoryConvert(objItem.TotalPhysicalMemory)
    Next
    Next
    ' Get Memory Breakdown
    Dim strMemBreak
    strMemBreak = Split(MemoryBreakdown(), vbcrlf)
    n = 0
    For n = 0 To UBound(strMemBreak) - 1
    strSlots = strSlots & strMemBreak(n) & Chr(10)
    Next
    strMaxCapacity = strMemBreak(UBound(strMemBreak))
    objXLA.Cells(b + 2, 9).Value = Left(strSlots, Len(strSlots) - 1)
    objXLA.Cells(b + 2, 10).Value = strMaxCapacity
    ' Dispose
    strMemBreak = ""
    strMaxCapacity = ""
    strSlots = ""
    '--------------Computer Information (End)------------------'
    '-------------Partition Information (Start)----------------'
    ' Get Drive Count
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set DiskItemsParent = objWMIService.ExecQuery("Select * from Win32_DiskDrive")
    intCount = DiskItemsParent.Count
    ' Process Drives
    intDriveMark = 0
    For i = 0 To intCount - 1
    Set DiskItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE Index = " & i)
    For Each diskItem in DiskItems
    ' Convert Drive Size
    If diskItem.Size <> "" Then strSize = strSize & ByteConvert(diskItem.Size) & Chr(10) Else strSize = "N/A" & Chr(10)
    If diskItem.StatusInfo <> "" Then strStsInfo = diskItem.StatusInfo Else strStsInfo = "N/A"
    If diskItem.SCSIBus <> "" Then strSCSIBus = diskItem.SCSIBus Else strSCSIBus = "N/A"
    If diskItem.SCSILogicalUnit <> "" Then strSCSILog = diskItem.SCSILogicalUnit Else strSCSILog = "N/A"
    If diskItem.SCSIPort <> "" Then strSCSIPort = diskItem.SCSIPort Else strSCSIPort = "N/A"
    If diskItem.SCSITargetId <> "" Then strSCSITarget = diskItem.SCSITargetId Else strSCSITarget = "N/A"
    ' Get Model
    strModel = Split(diskItem.Model, " ")
    ' Detect HP Array
    If (UCase(strModel(0)) = "HP" Or UCase(strModel(0)) = "COMPAQ") And intDriveMark = 0 Then
    strGetHPArray = GetHPArray(strComputer, strUsername, strPassword)
    If strGetHPArray <> "" Then
    strSplitHP = Split(strGetHPArray, Chr(13))
    For a = 0 To UBound(strSplitHP)
    strSplitResult = Split(strSplitHP(a), ":")
    i = i + 1
    strDriveCount = strDriveCount & Trim(strSplitResult(0)) & Chr(10)
    strDriveSize = strDriveSize & Trim(strSplitResult(1)) & Chr(10)
    strDriveFault = strDriveFault & Trim(strSplitResult(2)) & Chr(10)
    strDriveSpare = strDriveSpare & Trim(strSplitResult(3)) & Chr(10)
    strInterface = strInterface & "HP SCSI" & Chr(10)
    Next
    ' Set Controller Output
    objXLA.Cells(b + 2, 19).Value = Trim(Left(strDriveCount, Len(strDriveCount) - 1))
    objXLA.Cells(b + 2, 20).Value = Trim(Left(strDriveSize, Len(strDriveSize) - 1))
    objXLA.Cells(b + 2, 21).Value = Trim(Left(strDriveFault, Len(strDriveFault) - 1))
    objXLA.Cells(b + 2, 22).Value = Trim(Left(strDriveSpare, Len(strDriveSpare) - 1))
    intDriveMark = 1 ' Mark That Data was Obtained
    Else
    strDriveCount = strDriveCount & "1" & Chr(10)
    strDriveSize = strDriveSize & strSize & Chr(10)
    strDriveFault = strDriveFault & "N/A" & Chr(10)
    strDriveSpare = strDriveSpare & "N/A" & Chr(10)
    strInterface = strInterface & "HP SCSI " & Chr(10)
    ' Set Controller Output
    intDriveMark = 1 ' Mark That Another Pass is Invalid
    ' Set Controller Output
    objXLA.Cells(b + 2, 19).Value = Trim(Left(strDriveCount, Len(strDriveCount) - 1))
    objXLA.Cells(b + 2, 20).Value = Trim(Left(strDriveSize, Len(strDriveSize) - 1))
    objXLA.Cells(b + 2, 21).Value = Trim(Left(strDriveFault, Len(strDriveFault) - 1))
    objXLA.Cells(b + 2, 22).Value = Trim(Left(strDriveSpare, Len(strDriveSpare) - 1))
    End If
    Else
    strDriveCount = strDriveCount & "1" & Chr(10)
    strDriveSize = strDriveSize & strSize & Chr(10)
    strDriveFault = strDriveFault & "N/A" & Chr(10)
    strDriveSpare = strDriveSpare & "N/A" & Chr(10)
    ' Set Controller Output
    intDriveMark = 1 ' Mark That Another Pass is Invalid
    ' Set Controller Output
    objXLA.Cells(b + 2, 19).Value = Trim(Left(strDriveCount, Len(strDriveCount) - 1))
    objXLA.Cells(b + 2, 20).Value = Trim(Left(strDriveSize, Len(strDriveSize) - 1))
    objXLA.Cells(b + 2, 21).Value = Trim(Left(strDriveFault, Len(strDriveFault) - 1))
    objXLA.Cells(b + 2, 22).Value = Trim(Left(strDriveSpare, Len(strDriveSpare) - 1))
    ' Set Interface
    If diskItem.InterfaceType = "IDE" Then
    strInterface = strInterface & "ATA" & Chr(10)
    Else
    strInterface = strInterface & "SATA/SCSI" & Chr(10)
    End If
    End If
    ' Set Cell Value "Interface"
    objXLA.Cells(b + 2, 18).Value = Left(strInterface, Len(strInterface) - 1)
    Next
    ' Dispose Drive Sizes
    strDriveSize = ""
    Next
    ' Dispose Drive Values
    strDriveCount = ""
    strDriveFault = ""
    strDriveSpare = ""
    strInterface = ""
    '----Partition Information (End)---------------------------'
    '----Network Information (Start)---------------------------'
    Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter")
    i = 1
    eth = 0
    Dim STOREDIP(0)
    intNum = 0
    For Each objItem in colItems
    If objItem.NetConnectionStatus <> "" Then
    ' Determine Connection Status
    If objItem.NetConnectionStatus = 0 Then
    strNetStat = "Disabled"
    ElseIf objItem.NetConnectionStatus = 2 Then
    strNetStat = "Connected"
    ElseIf objItem.NetConnectionStatus = 7 Then
    strNetStat = "Disconnected"
    Else
    strNetStat = "Unknown"
    End If
    If objItem.NetConnectionStatus <> 0 Then
    ' Get Network Card Information
    Const HKEY_LOCAL_MACHINE = &H80000002
    strKeyPath1 = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
    strKeyPath2 = "SYSTEM\CurrentControlSet\Services\NetBT\Parameters"
    strHostEntry = "Hostname"
    strDomainEntry = "Domain"
    strNodeEntry = "DhcpNodeType"
    strRoutingEntry = "IPEnableRouter"
    Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
    objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,strHostEntry,strHostname
    objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,strDomainEntry,strDomain
    objReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath2,strNodeEntry,dwNodeType
    objReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath1,strRoutingEntry,dwIPRouting
    Select Case dwNodeType
    Case 4 strNodeType = "Mixed"
    Case 8 strNodeType = "Hybrid"
    Case Else strNodeType = dwNodeType
    End Select
    If dwIPRouting = 0 Then
    strIPRouting = "No"
    ElseIf dwIPRouting = 1 Then
    strIPRouting = "Yes"
    Else
    strIPRouting = "?"
    End If
    Set colFirstNicConfig = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    For Each objFirstNicConfig In colFirstNicConfig
    strDnsWins = objFirstNicConfig.DNSEnabledForWINSResolution
    Next
    Set colNicConfigs = objWMIService.ExecQuery _
    ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    ' Display per-adapter settings.
    For Each objNicConfig In colNicConfigs
    intIndex = objNicConfig.Index
    Set objNic = objWMIService.Get("Win32_NetworkAdapter.DeviceID=" & intIndex)
    ' Connection Name
    If GetOsVer > 5 Then
    ' Works only in XP / 2003
    strNetConn = objNic.NetConnectionID
    ElseIf GetOsVer = 5 Then
    strNetConn = ""
    ' Get Home Drive of Remote Server
    Set objShell = CreateObject("WScript.Shell")
    Set objEtherName = objShell.Exec("cmd /c ipconfig | find " & Chr(34) & "Ethernet" & Chr(34))
    strEtherName = objEtherName.StdOut.ReadAll()
    strEtherParse = Split(strEtherName, Chr(13))
    strEtherConn = Split(strEtherParse(eth), " ")
    For y = 2 To UBound(strEtherConn)
    strNetConn = strNetConn & " " & strEtherConn(y)
    Next
    ' Trim Connection Name
    strNetConn = Left(Trim(strNetConn), Len(Trim(strNetConn)) - 1)
    Else
    strNetConn = ""
    End If
    ' IP Addresses
    strIPAddresses = ""
    If Not IsNull(objNicConfig.IPAddress) Then
    For Each strIPAddress In objNicConfig.IPAddress
    strIPAddresses = strIPAddresses & strIPAddress & " "
    Next
    End If
    strIPCollection = Split(strIPAddresses, " ")
    ' Subnets
    strIPSubnets = ""
    If Not IsNull(objNicConfig.IPSubnet) Then
    For Each strIPSubnet In objNicConfig.IPSubnet
    strIPSubnets = strIPSubnets & strIPSubnet & " "
    Next
    End If
    strSMCollection = Split(strIPSubnets, " ")
    ' Virtual IP's
    strVirtual = ""
    If UBound(strIPCollection) > 1 Then
    For IPCount = 1 To UBound(strIPCollection) - 1
    strVirtual = strVirtual & (strIPCollection(IPCount) & " / " & strSMCollection(IPCount)) & Chr(10)
    Next
    strVirtual = Left(strVirtual, Len(strVirtual) - 1)
    End If
    If Trim(strVirtual) = "" Then strVirtual = "N/A"
    ' Gateways
    strDefaultIPGateways = ""
    If Not IsNull(objNicConfig.DefaultIPGateway) Then
    For Each strDefaultIPGateway In objNicConfig.DefaultIPGateway
    strDefaultIPGateways = strDefaultIPGateways & strDefaultIPGateway & " "
    Next
    Else
    strDefaultIPGateways = "N/A"
    End If
    ' If IP is repeated, and was already reported.
    intSkipLoop = 0
    If Trim(strNetConn) <> "" Then
    For j = 0 To intNum - 1
    If STOREDIP(j) = strIPAddresses Then
    intSkipLoop = 1
    Exit For
    End If
    Next
    If intSkipLoop = 0 Then
    ReDim Preserve STOREDIP(intNum)
    STOREDIP(intNum) = strIPAddresses
    intNum = intNum + 1
    End If
    Else
    intSkipLoop = 1
    End If
    ' DNS
    strDNSServerSearchOrder = ""
    If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
    For Each strDNSServer In objNicConfig.DNSServerSearchOrder
    strDNSServerSearchOrder = strDNSServerSearchOrder & strDNSServer & " "
    Next
    strDNS = Split(strDNSServerSearchOrder, " ")
    strDNS1 = strDNS(0)
    If Trim(strDNS1) = "" Then strDNS1 = "N/A"
    If UBound(strDNS) > 1 Then
    strDNS2 = strDNS(1)
    Else
    strDNS2 = "N/A"
    End If
    Else
    strDNS1 = "N/A"
    strDNS2 = "N/A"
    End If
    ' Run Output Process
    If intSkipLoop = 0 Then
    ' Connection Speed
    strSpeed = "Unknown"
    Set objWMIService2 = objSWbemLocator.ConnectServer _
    (strComputer, "root\WMI", strUsername, strPassword)
    objWMIServices.Security_.ImpersonationLevel = 3
    Set listAdapters = objWMIService2.ExecQuery("SELECT * FROM MSNdis_LinkSpeed")
    Set enumAdapters = objWMIService2.ExecQuery("SELECT * FROM MSNdis_EnumerateAdapter")
    For Each objAdapter in listAdapters
    For Each objEnum in enumAdapters
    intEnum = Len(objEnum.DeviceName)
    If objNicConfig.SettingID = Right(objEnum.DeviceName, intEnum - 8) Then
    If objEnum.InstanceName = objAdapter.InstanceName Then
    intLength = Len(objAdapter.NdisLinkSpeed/10000)
    If intLength > 3 Then
    strSpeed = Left(objAdapter.NdisLinkSpeed/10000, intLength - 3)
    strSpeed = strSpeed & ".0 Gbps"
    Else
    strSpeed = objAdapter.NdisLinkSpeed/10000 & " Mbps"
    End If
    End If
    End If
    Next
    Next
    strTotalDesc = strTotalDesc & objNicConfig.Description & Chr(10)
    strTotalSpeed = strTotalSpeed & strSpeed & Chr(10)
    strTotalNetConn = strTotalNetConn & strNetConn & Chr(10)
    strPrimaryIP = strPrimaryIP & strIPCollection(0) & " / " & strSMCollection(0) & Chr(10)
    strDNSTotal1 = strDNSTotal1 & strDNS1 & Chr(10)
    strDNSTotal2 = strDNSTotal2 & strDNS2 & Chr(10)
    strTotalVirtual = strTotalVirtual & strVirtual & Chr(10)
    i = i + 1
    eth = eth + 2
    ' Dispose
    strDescription = ""
    ProcCount = 0
    strClockSpeed = ""
    strInterface = ""
    intCount = 0
    strSize = ""
    strSpeed = ""
    strIPCollection = ""
    strVirtual = ""
    strDNS = ""
    strDNS1 = ""
    strDNS2 = ""
    End If
    Next
    ' Output
    ' Trim Leading Chr(10)
    If Left(strPrimaryIP, 1) = Chr(10) Then strPrimaryIP = Right(strPrimaryIP, Len(strPrimaryIP) - 1)
    If Left(strTotalVirtual, 1) = Chr(10) Then strTotalVirtual = Right(strTotalVirtual, Len(strTotalVirtual) - 1)
    If Left(strDNSTotal1, 1) = Chr(10) Then strDNSTotal1 = Right(strDNSTotal1, Len(strDNSTotal1) - 1)
    If Left(strDNSTotal2, 1) = Chr(10) Then strDNSTotal2 = Right(strDNSTotal2, Len(strDNSTotal2) - 1)
    objXLA.Cells(b + 2, 11).Value = Trim(Left(strTotalDesc, Len(strTotalDesc) - 1))
    objXLA.Cells(b + 2, 12).Value = Trim(Left(strTotalSpeed, Len(strTotalSpeed) - 1))
    objXLA.Cells(b + 2, 13).Value = Trim(Left(strTotalNetConn, Len(strTotalNetConn) - 1))
    objXLA.Cells(b + 2, 14).Value = Trim(Left(strPrimaryIP, Len(strPrimaryIP) - 1))
    objXLA.Cells(b + 2, 15).Value = Trim(Left(strTotalVirtual, Len(strTotalVirtual) - 1))
    objXLA.Cells(b + 2, 16).Value = Trim(Left(strDNSTotal1, Len(strDNSTotal1) - 1))
    objXLA.Cells(b + 2, 17).Value = Trim(Left(strDNSTotal2, Len(strDNSTotal2) - 1))
    End If
    End If
    ' Dispose Per Loop
    strTotalDesc = ""
    strTotalSpeed = ""
    strTotalNetConn = ""
    strPrimaryIP = ""
    strDNSTotal1 = ""
    strDNSTotal2 = ""
    strTotalVirtual = ""
    Set eth = 0
    Set i = 0
    Next
    '------------Network Information (End)------------------'
    Else
    'No Data Present
    objXLA.Cells(b + 2, 1).Value = strComputer
    objXLA.Cells(b + 2, 3).Value = "Information Not Available"
    objXLA.Cells(b + 2, 1).EntireRow.Font.Bold = True
    objXLA.Cells(b + 2, 1).EntireRow.Interior.ColorIndex = 44
    End If
    ' Dispose Per Server
    ProcCount = 0
    strSocket = ""
    strProcID = ""
    strUniqueID = ""
    Set objWMIService = Nothing
    Next
    '-----------------Functions (Start)---------------------'
    ' System Memory Conversion
    Function MemoryConvert(strMem)
    Dim intLength
    Dim intExp
    Dim intSize
    Dim strSize
    Dim strMeasure
    Dim strMemory
    intLength = Len(strMem)
    If (intLength Mod 4 = 0) Then
    intExp = CInt((intLength / 3) - 2)
    Else
    intExp = CInt((intLength / 3) - 1)
    End If
    ' Convert to Lowest Integer Value
    For intCount = 1 To Len(intExp)
    chrRead = Mid(intExp, intCount, 1)
    If chrRead = "." Then
    Exit For
    Else
    strRead = strRead & chrRead
    End If
    Next
    intExp = Cint(strRead)
    intSize = CLng(strMem / (2 ^ (intExp * (10))))
    If Len(intSize) = 1 Then
    strFormat = FormatNumber(CStr(intSize), 2)
    Else
    strFormat = intSize + 1
    End If
    If (intExp = 1) Then
    strMeasure = "KB"
    ElseIf (intExp = 2) Then
    strMeasure = "MB"
    ElseIf (intExp = 3) Then
    strMeasure = "GB"
    ElseIf (intExp = 4) Then
    strMeasure = "TB"
    ElseIf (intExp = 5) Then
    strMeasure = "PB"
    ElseIf (intExp = 6) Then
    strMeasure = "EB"
    End If
    MemoryConvert = strFormat & " " & strMeasure
    End Function
    ' System Byte Conversion
    Function ByteConvert(strMem)
    Dim intLength
    Dim intExp
    Dim intSize
    Dim strSize
    Dim strMeasure
    Dim strMemory
    intLength = Len(strMem)
    If (intLength Mod 3 = 0) Then
    intExp = (intLength / 3) - 1
    Else
    intExp = (intLength / 3)
    End If
    ' Convert to Lowest Integer Value
    For intCount = 1 To Len(intExp)
    chrRead = Mid(intExp, intCount, 1)
    If chrRead = "." Then
    Exit For
    Else
    strRead = strRead & chrRead
    End If
    Next
    intExp = Cint(strRead)
    intSize = CLng(strMem / (2 ^ (intExp * (10))))
    strFormat = FormatNumber(CStr(intSize), 2)
    If (intExp = 1) Then
    strMeasure = "KB"
    ElseIf (intExp = 2) Then
    strMeasure = "MB"
    ElseIf (intExp = 3) Then
    strMeasure = "GB"
    ElseIf (intExp = 4) Then
    strMeasure = "TB"
    ElseIf (intExp = 5) Then
    strMeasure = "PB"
    ElseIf (intExp = 6) Then
    strMeasure = "EB"
    End If
    ByteConvert = strFormat & " " & strMeasure
    End Function
    ' System RAID Byte Conversion
    Function ByteConvertRAID(strMem)
    Dim intLength
    Dim intExp
    Dim intSize
    Dim strSize
    Dim strMeasure
    Dim strMemory
    intLength = Len(strMem)
    If (intLength Mod 3 = 0) Then
    intExp = (intLength / 3) - 1
    Else
    intExp = (intLength / 3)
    End If
    ' Convert to Lowest Integer Value
    For intCount = 1 To Len(intExp)
    chrRead = Mid(intExp, intCount, 1)
    If chrRead = "." Then
    Exit For
    Else
    strRead = strRead & chrRead
    End If
    Next
    intExp = Cint(strRead)
    intSize = (strMem / (2 ^ (intExp * (10))))
    strFormat = FormatNumber(CStr(intSize), 2)
    If (intExp = 0) Then
    strMeasure = "MB"
    ElseIf (intExp = 1) Then
    strMeasure = "GB"
    ElseIf (intExp = 2) Then
    strMeasure = "TB"
    ElseIf (intExp = 3) Then
    strMeasure = "PB"
    ElseIf (intExp = 4) Then
    strMeasure = "EB"
    End If
    ByteConvertRAID = strFormat & " " & strMeasure
    End Function
    ' Trim Processor Description
    Function ProcessorName(strName)
    Dim intCounter
    Dim strRead
    Dim chrRead, chrReadMore
    For intCounter = 1 to Len(strName)
    chrRead = Mid(strName, intCounter, 1)
    chrReadMore = Mid(strName, intCounter + 1, 1)
    If ((chrRead <> " ") Or ((chrRead = " ") And (chrReadMore <> " "))) Then
    strRead = strRead & chrRead
    End If
    Next
    ProcessorName = Trim(strRead)
    End Function
    ' Get Hyper-Threading Status
    Function GetHTStatus(strName, intProc, strID, strUnique)
    strNameArray = Split(strName, vbcrlf)
    strIDArray = Split(strID, vbcrlf)
    strUniqueList = Split(strUnique, vbcrlf)
    intTotal = 0
    ' Check Socket Designation
    For i = 0 To UBound(strNameArray) - 1
    intMark = 1
    ' Check for Redundancies
    For j = i + 1 To UBound(strNameArray) - 1
    If strNameArray(i) = strNameArray(j) Then
    intMark = 0
    End If
    Next
    ' If Redundant Unique ID's Exist
    For j = i + 1 To UBound(strNameArray) - 1
    If strUniqueList(i) <> "" And strUniqueList(j) <> "" And _
    (strUniqueList(i) <> strUniqueList(j)) Then
    intMark = 1
    End If
    Next
    ' Check for NULL ProcessorID
    If Trim(strIDArray(i)) = "0000000000000000" Then
    intMark = 0
    End If
    ' Calculate Total
    If intMark = 1 Then
    intTotal = intTotal + intMark
    End If
    Next
    ' Compare Results
    If intProc = 2 * intTotal Then
    GetHTStatus = "True"
    Else
    GetHTStatus = "False"
    End If
    End Function
    ' Get Memory Breakdown
    Function MemoryBreakdown
    Set colPMAItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemoryArray",,48)
    For Each objPMAItem in colPMAItems
    lngMax = CLng(objPMAItem.MaxCapacity)
    intCount = CInt(objPMAItem.MemoryDevices)
    Next
    ReDim Preserve strPMArray(intCount)
    Set colPMItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory",,48)
    For Each objPMItem in colPMItems
    strValue = strValue & objPMItem.DeviceLocator & ": "
    strValue = strValue & objPMItem.Capacity / 2^20 & "MB, "
    strValue = strValue & objPMItem.Speed & "MHz"
    strPMArray(TrimTrailingNumber(objPMItem.Tag)) = strValue
    strValue = ""
    Next
    j = 0
    strResult = ""
    For j = 0 To intCount - 1
    If Trim(strPMArray(j)) = "" Then strPMArray(j) = "<Empty>"
    strResult = strResult & strPMArray(j) & vbcrlf
    Next
    strResult = strResult & (lngMax / 2^10) & "MB"
    MemoryBreakdown = strResult
    End Function
    ' Get Part Name
    Function ExtractPartName(strName)
    Dim chrRead
    Dim strRead
    Dim i
    For i = 2 To Len(strName)
    chrRead = Mid(strName, Len(strName) - (i - 1), 1)
    If chrRead <> Chr(34) Then
    strRead = chrRead & strRead
    Else
    Exit For
    End If
    Next
    ExtractPartName = strRead
    End Function
    ' Get Trailing Number
    Function TrimTrailingNumber(strNum)
    Dim chrRead
    Dim strRead
    Dim intLen
    strNum = Trim(strNum)
    intLen = Len(strNum)
    i = 1
    For i = 1 To intLen
    chrRead = Mid(strNum, intLen - (i - 1), 1)
    If IsNumeric(chrRead) = "True" Then
    strRead = chrRead & strRead
    Else
    Exit For
    End If
    Next
    TrimTrailingNumber = strRead
    End Function
    ' Function: WMIDateStringToDate(dtmDate)
    Function WMIDateToString(dtmDate)
    WMIDateToString = CDate(Mid(dtmDate, 5, 2) & "/" & _
    Mid(dtmDate, 7, 2) & "/" & _
    Left(dtmDate, 4) & " " & _
    Mid(dtmDate, 9, 2) & ":" & _
    Mid(dtmDate, 11, 2) & ":" & _
    Mid(dtmDate, 13, 2))
    End Function
    ' Function: GetOsVer
    Function GetOsVer
    Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
    For Each objOperatingSystem In colOperatingSystems
    GetOSVer = CSng(Left(objOperatingSystem.Version, 3))
    Next
    End Function
    ' Function: GetHPArray
    Function GetHPArray(strComputer2, strUsername2, strPassword2)
    ' Check for 64-bit Windows
    If InStr(PUBOSVer, "x64") Then
    strCompaq = "Program Files (x86)\Compaq\Cpqacuxe\Bin"
    Else
    strCompaq = "Program Files\Compaq\Cpqacuxe\Bin"
    End If
    ' Create Connection Object
    Set objWMIServiceRem = objWMIService.Get("Win32_Process")
    ' Confirm Location of Compaq Array Manager
    Set objHPShell = CreateObject("WScript.Shell")
    Set objHPFSO = CreateObject("Scripting.FileSystemObject")
    Set WshNetwork2 = WScript.CreateObject("WScript.Network")
    WshNetwork2.MapNetworkDrive "", "\\" & strComputer2 & "\C$" ,,strUsername2, strPassword2
    strProgram = "\\" & strComputer2 & "\C$\" & strCompaq & "\cpqacuxe.exe"
    ' Ensure Access is Possible
    If objHPFSO.FileExists(strProgram) Then
    ' Process Array Config
    strProcess = Chr(34) & "C:\" & strCompaq & "\cpqacuxe.exe" & Chr(34) & " -c c:\output.txt"
    Process = objWMIServiceRem.Create(strProcess, null, null, intProcessID)
    ' Check for "output.txt"
    For intTimerHP = 0 To 10
    If objFSO.FileExists("\\" & strComputer2 & "\C$\output.txt") Then
    Exit For
    Else
    WScript.Sleep(1000)
    End If
    Next
    ' Process Output
    If intTimerHP < 10 Then
    ' Check for Locked Output File
    Set objHPOutputFile = objHPFSO.GetFile("\\" & strComputer2 & "\C$\output.txt")
    If objHPOutputFile.Size <> 0 Then
    ' Close File
    Set objHPOutputFile = Nothing
    ' Continue Processesing File
    Set objHPInputFile = objHPFSO.OpenTextFile("\\" & strComputer2 & "\C$\output.txt", ForReading)
    Do Until objHPInputFile.AtEndOfStream
    strHPArray = strHPArray & objHPInputFile.ReadLine & vbcrlf
    Loop
    ' Close Input File
    objHPInputFile.Close
    ' Close Link to Server
    objHPFSO.DeleteFile("\\" & strComputer2 & "\C$\output.txt")
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    ' Create String Array
    strHPParse = Split(strHPArray, vbcrlf)
    ' Parse For Individual RAID Arrays
    Dim strArrayList()
    z = 0
    For i = 0 To UBound(strHPParse)
    j = 0
    ' Array and Drives
    If InStr(strHPParse(i), "Array Specifications") Then
    ReDim Preserve strArrayList(z)
    strArrayList(z) = strArrayList(z) & strHPParse(i) & vbcrlf
    For j = i + 1 To Ubound(strHPParse)
    If InStr(strHPParse(j), "Array Specifications") Then
    Exit For
    Else
    strArrayList(z) = strArrayList(z) & strHPParse(j) & vbcrlf
    End If
    Next
    z = z + 1
    End If
    Next
    ' Process Each RAID Array
    x = 0
    For x = 0 To UBound(strArrayList)
    strListParse = Split(strArrayList(x), vbcrlf)
    For y = 0 To UBound(strListParse)
    ' Drives
    If Left(strListParse(y), 6) = "Drive=" Then
    strDrives = ""
    strDrives = Split(strListParse(y), ",")
    k = 0
    For j = 0 To UBound(strDrives)
    k = k + 1
    Next
    strDriveCount = k ' For Output
    End If
    ' Hot Spare
    If InStr(strListParse(y), "OnlineSpare=") Then
    If InStr(strListParse(y), "OnlineSpare= No") Then
    strHotSpare = strHotSpare & "N" ' For Output
    Else
    strHotSpare = strHotSpare & "Y" ' For Output
    End If
    End If
    ' Logical Drives
    If InStr(strListParse(y), "Logical Drive Specifications") Then
    ' Find First Logical Drive
    strRAID = Split(strListParse(y + 2), " ")
    strRAIDResult = strRAIDResult & "RAID " & strRAID(1) & " / " ' For Output
    strGetDrive = Split(strListParse(y + 3), " ")
    strRAIDSize = strRAIDSize & ByteConvertRAID(strGetDrive(1)) & " / " ' For Output
    End If
    Next
    ' Process Results
    strRAIDSize = Left(strRAIDSize, Len(strRAIDSize) - 3)
    strRAIDResult = Left(strRAIDResult, Len(strRAIDResult) - 3)
    strNewList = strNewList & strDriveCount & _
    ":" & strRAIDSize & ":" & strRAIDResult & ":" & strHotSpare & Chr(13)
    ' Dispose Array Variables
    strDriveCount = ""
    strRAIDSize = ""
    strRAIDResult = ""
    strHotSpare = ""
    Next
    ' Return Array Output
    GetHPArray = Left(strNewList, Len(strNewList) - 1)
    Exit Function
    Else ' "output.txt" Is Locked
    ' Close File
    Set objHPOutputFile = Nothing
    ' Kill Remote Connection
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    GetHPArray = ""
    Exit Function
    End If
    Else ' "output.txt" Does not Exist
    ' Kill Remote Connection
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    GetHPArray = ""
    Exit Function
    End If
    Else ' "Array Manager Does not Exist
    ' Input not Available
    Set objGetHPArray = objHPShell.Exec("net use \\" & strComputer2 & "\C$ /delete /yes")
    Do While (objGetHPArray.Status = 0)
    WScript.Sleep(500)
    Loop
    GetHPArray = ""
    Exit Function
    End If
    End Function
    '--------------------Functions (End)--------------------'
    ' Set Excel Attributes
    Const xlVAlignTop = -4160
    Set objRange2 = objWorksheet.UsedRange
    objRange2.VerticalAlignment = xlVAlignTop
    ' Set Font Attributes
    objXLA.Cells.Font.Size = 8
    objXLA.Cells.Font.Name = "Arial"
    objXLA.Cells.Font.ColorIndex = 11
    objXLA.Cells.EntireColumn.AutoFit
    objXLA.Cells(1, 9).ColumnWidth = 30 ' RAM Slots
    objXLA.Cells(1, 11).ColumnWidth = 40 ' NIC Port
    objXLA.Cells(1, 13).ColumnWidth = 25 ' Connection Name
    objXLA.Cells(1, 14).ColumnWidth = 25 ' Interface IP's
    objXLA.Cells(1, 15).ColumnWidth = 25 ' Virtual IP's
    objXLA.Cells(1, 16).ColumnWidth = 15 ' DNS1
    objXLA.Cells(1, 17).ColumnWidth = 15 ' DNS2
    objXLA.Cells(1, 18).ColumnWidth = 15 ' Interface Type
    objXLA.Cells.HorizontalAlignment = 2 ' Drive Count
    objXLA.Cells(1, 20).ColumnWidth = 20 ' Virtual IP's
    objXLA.Cells(1, 21).ColumnWidth = 20 ' Virtual IP's
    ' Save
    set objFSO2 = CreateObject("Scripting.FileSystemObject")
    strFileName = objFSO2.getAbsolutePathName("") & "\Scan Results.xls"
    objWorkbook.SaveAs(strFileName)
    objWorkbook.Close
    objXLA.Quit
    ' Notify User
    WScript.Echo "Process Completed (" & Now & ")"
    ' Close Program
    WScript.Quit(0)

  • How to get Report Output in csv format

    Hi,
    How can i get report Output in csv format, can any one tell me the word used for output type to get output in csv format.
    i have used XLS output type but it opens in excel format.
    conc.addLayout(appCode,concReqCode,"en-US","US",XLS);
    Thanks
    Babu

    Hi Babu,
    Till now in xmlpublisher there is no method to create file in csv format ,you have to create Excel file and then save it in .csv format.Unless and until ur using BI Publisher in which some work around are possible.
    Thanks

  • BPM_DATA_COLLECTION fails with (Output device "" not known) error

    Hi all,
    I have an issue with Output BPM_DATA_COLLECTION_1 job in the satellite system  failing with 'Output device "" not known error.  Since it is collecting data for Solution Manager system why does is it trying to find an output device.
    It did not fail before and now I added another key figure (custom one) which is done the same way the other custom monitors are done in "Z_BPM_ECU_COLLECTOR" report and then in /SSA/EXM program, but the collector job started to fail.
    Also, for some reason there are two BPM_DATA_COLLECTION jobs, one is BPM_DATA_COLLECTION_1 and the other is BPM_DATA_COLLECTION_2.  _1 runs every 5 min and _2 is less frequent. They both seem to runt the same job which is /SSA/EXS. Why are there two jobs scheduled from solution manager in my satellite system?
    Thank you very much for your help!

    I am experiencing this same issue in our ECC 6.0 system.  We currently have ST-A/PI release 01M_ECC600 level 0001 applied to our system.  These jobs finish successfully in SM37, but I'm seeing the same error messages in our system logs (SM21).
    When I try to update the output device that is associated with these jobs, the user ID running the jobs is not valid since it's user type is Communication Data.
    Does anyone know if it ok to change the user for this job? Should it be run by DDIC?  I believe the jobs were created automatically when we applied ST-A/PI release 01M_ECC600 level 0001.

  • KE30 decimal not display in quantity column with output type object list

    Hi everyone,
         I already set number format "0.000" in change form screen but when I execute report with output type object list (ALV) that report don't display decimal in quantities column e.g. 0.470 displayed to 0 .
        How can I set number format in output type object list on Transaction code KE30?
    Thanks in advance.
    Pipit

    Hi,
    Better to raise this issue in CO Forum. You can expect some solution.
    regards

  • List of script and smart forms(except TNAPR) with output type or print prog

    How to find out List of SAP SCRIPT and SMART FORMS (except TNAPR)with output type or print program..I like to chk in output type WMTA  whch form should use.kindly help on this

    Hi
    WMTA is special msg and doesn't create any print: so you can't find a sapscript or smartform to link to it.
    WMTA is a message for delivery, so you can find it by NACE trx or TNAPR table (It's the same): infact here it can find only all messages of logistic modules (SD & MM).
    The routine ENTRY of RLAUTA20 is called by WMTA and creates a Transfer Order (for WM, Warehouse Management, module), so if you need to create a print for that msg you need to change prg RLAUTA20,
    Max

  • How to send invoice through email with output type RD00?

    What are the configuration settings to send invoices through email with output type RD00?

    Hi,
    Please go through the following links:
    [E-mail|Email Configuration Settings]
    [e-mail|Re: EMAIL BILLING DOCUMENT TO CUSTOMER THROUGH SEND MAIL OPTION IN VF02]
    After triggering the output,goto T.Code SOST and process it.
    So that e-mail will be triggered immediately.
    You can use External send/EDI/simple mail for this.
    Regards,
    Krishna.

  • Custom tag lib with output parameter

    Hi,
    I need a tag libray that gives me a specific element of a Vector.
    Here there is the line I have in my jsp.
    <ct:partizione tronco="${contenitoreCentralineTronco}" indice="index" partizione="tmpPartizione"/>
    ...-contenitoreCentralineTronco is an Object that contains a Vector of other specif objects.
    -indice is the vector index of the specif instance I need.
    -partizione should be the output instance.
    This is part of my tld file:
        <tag>
             <name>partizione</name>
            <tagclass>ss.aspi.classi.centraline.grafica.tagSupport.Partizione</tagclass>
            <bodycontent>empty</bodycontent>
            <info>Estrae una partizione da un vettore di partizioni dato l'indice</info>
            <attribute>
                <name>tronco</name>
                <required>true</required>
                <rtexprvalue>true</rtexprvalue>
            </attribute>
            <attribute>
                <name>indice</name>
                <required>true</required>
            </attribute>
            <attribute>
                <name>partizione</name>
                <required>false</required>
            </attribute>
         </tag>
    ...this is part of the class called by the tag:
         private ContenitoreTroncoBean tronco;
         private Integer indice;
         private ContenitorePartizioneBean partizione;
         public int doStartTag() throws JspException {
              try {
                   Vector<ContenitorePartizioneBean> partizioni = tronco.getPartizioniBean();
                   partizione = partizioni.get(indice);
              }catch (Exception e) {
                   log.error("Errore nell'estrazione della Partizione "+indice);
                   e.printStackTrace();
              return TagSupport.SKIP_BODY;
         //All getter and setter functionsWhen I run the application I get this exception:
    jsp.error.beans.property.conversion
    looking deeper in the class code jenerated from the jsp, I noted that the problem refers to the third attribute of the tag <ct:partizione>.
    It seems It trys to set the attribute "partizione" with the value "tmpPartizione", but partizioni should be an output attribut non input. The varible tmpPartizione doesn't exist... the tag should create it.
    I realized I didn't get how I should create a tag with output parameters.
    Anyone can explane me it?
    Thanks.

    One suggestion: Take a closer look at the EL (expression language)
    It has an excellent syntax for accessing collections/maps
    ${contenitoreCentralineTronco[index]} would exactly what you want, without having to write a custom tag for it.
    If you REALLY want to do this as a custom tag, then you need to treat the input attribute as a String (the name of the variable you are going to create?) Right now your tag declares the attribute partizione as being of type ContenitorePartizioneBean which is probably the cause of the problem - you are passing it a String.
    Cheers,
    evnafets

  • Problem with output string to command

    hey i have no idea why this aint working
    its a simple output string to command.
    what it is supposed to do is make a new directory given by the input string
    e.g. mkdir /home/luke/dep
    thanks for the help
    //methods input save files
         saveFile = JOptionPane.showInputDialog("Save Files To : ");
         //method command for saving files
         //Stream to write file
         FileOutputStream fout;          
         try { Process myProcess = Runtime.getRuntime().exec("mkdir" + saveFile );
          InputStreamReader myIStreamReader = new InputStreamReader(myProcess.getInputStream());
          fout = new FileOutputStream ("file.txt");
          while ((ch = myIStreamReader.read()) != -1) { new PrintStream(fout).print((char)ch); } }
              catch (IOException anIOException) { System.out.println(anIOException); }

    What you fail to understand is that "aint working" and "Problem with output string to command" tells us absolutely squat about what your problem is. This is the same as saying to the doctor "I'm sick" and expecting him to cure you. As mentioned by Enceph you need to provide details. Do you get error messages? If so post the entire error and indicate the line of code it occurs on. Do you get incorrect output? Then post what output you get, what output you expect. The more effort you put into your question the more effort others will put in their replies. So until you can manage to execute a little common sense then the only responses you will get will be flames. Now is your tiny little brain able to comprehend that?

  • Selecting Multiple Objects with Output Preview Causing Problems

    I'm trying to edit a PDF and need to select multiple objects. Without Output Preview open, I can easily select all the items I need using the shift key. With Output Preview open, whenever I try to select the second object, Output Preview creates a sticky note, instead of selecting the second object.
    I am also using the PitStop Pro plug-in.
    Any idea how to correct this problem? Thanks!

    Unfortunately it seems that the new sticky note feature with the output preview in Acrobat XI uses the same keyboard shortcut as multiple selection tool in Pitstop (shift).
    Closing the output preview is the easiest way to get around this issue.
    We could consider changing the key for multiple selection in PitStop, but 'shift' is pretty much a default, so what could we change it too?
    If anyone has any thoughts could they email me, I am the product manager responsible for Pitstop at Enfocus and my email is '[email protected]'
    All feedback gratefully received.

  • Error in REST Web Service with Output Format as Text

    Hi All,
    I am referencing a REST web service, and can successfully connect to it and retrieve results with the Output Format set to XML.
    I don't need the individual node values, I just want to capture the entire XML as a string, and populate a table column with it.
    When I create a new Rest web service reference, with Output Format set to Text, and then create a form/report to run it, I get the following error when I click 'Submit':
    ORA-06550: line 1, column 63: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: ( - + case mod new not null others avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date pipe
         Error      Error sending request.
    There are control characters in the XML, but surely this is handled by Apex, so I'm not sure what the problem is here.
    Any ideas most welcome.
    Thanks,
    Rhodri

    Rhodri:
    Application Express expects text response to actually be text response, delimited by other characters denoting a new value, and a new record set. You should leave the response as XML. The XML document will be stored in the xmltype01 column of the collection you specify. You can then convert that xmltype01 column to a clob if you like using .toClobVal().
    Regards,
    Jason

  • Problem Calling MaxDB stored procedure with output from MII Query template

    Hi,
    I am using Max DB Database studio to write stored procedure, I am calling stored procedure from MII Query using CALL statement.
    Can anyone guide me how to pass output values of stored procedure.
    Examlpe::
    call ProcName('[Param.1]','[Param.2]','[Param.3]','[Param.4]','[Param.5]', :isSuccess, :Trace)
    In the above line of code I am not able to get the output values of stored procedure that is isSuccess and Trace values in Query template when executed. But same thing I get when executed in Database studio.
    How do I call with outputs for any stored procedure in MII.
    Any help would be appriciated.
    Thanks,
    Padma

    My call statement is like this
    call RESULTDATA_INSERT('[Param.1]','[Param.2]','[Param.3]', :isSuccess, :Trace)
    I am able to insert record in DB, But I am not getting output values in Query template.I have done this in Fixed Query, when I execute it throws me "Fatal error as Loaded content empty".
    I tried giving select below call but it dont work.
    Regards,
    Rao

  • How to display value from java class with output generated with toplink

    i hava a requirement of displaying (distance ie calculated in java class) with output generated by query.
    ie if output is like
    school name (distance)
    physical address
    here the school name and physical address are retrived from database.

    Hi,
    ValueHolders are used by the JSF internal framework. To work with an object (attributes) in a managed bean you don't need to make it returning a value holder.
    Create a POJO, provide accessor methods and register it as a managed bean. Access it from JSF with EL
    Frank

  • SQL server Best Practice Analyzer output in .CSV

    Hi Team, I ran SQL server Best practice analyzer on our SQL 2008 R2 server. I was trying to export scan result in .csv format but it is only giving me option to save it in .xml format. I have been looking for ways to export output in such a way
    that it can be readable and I can send it to our clients but no luck.
    How can I export SQL BPA output in .csv or any other user friendly format?
    Thanks in Advance.

    Hi MSRS27,
    You can run Best Practices Analyzer (BPA) scans either from Server Manager, by using the BPA GUI, or by using cmdlets in Windows PowerShell. We can view or save BPA results from Windows PowerShell session in different format.
    If you want to export BPA results to a comma-separated values (CSV) text file, run the following cmdlet, where Path represents the path and text file name to which you want to save the CSV results.
     CSV results can be imported into Microsoft® Excel, or other programs that display data in spreadsheets or grids.
    Get-BPAResultModel ID| Export-CSVPath
    For more information, see: Run Best Practices Analyzer Scans and Manage Scan Results
    http://technet.microsoft.com/en-us/library/hh831400.aspx
    Regards,
    Sofiya Li
    Sofiya Li
    TechNet Community Support

Maybe you are looking for

  • Purchase order already exists error for change Idoc 860

    Hi all I am getting an error that purchase order number already exists, when i try to post change inbound IDoc 860. How can I fix this issue? Thanks in advance

  • Sleep of death problem Tablet S r5

    My Tablet S suffers sleep of death problem after upgrading to ICS r5. I did factory reset several days ago and it seemed the problem has gone. But from yesterday it has begun again and happened twice today. Overall I am satisfied with the upgrade, be

  • Opening REPORT Configuration Dialog Boxes with the new object-oriented script interface?

    Hallo zusammen, in der DIAdem-Hilfe wird die folgende Vorgehensweise zum öffnen von REPORT-Einstellungsdialogen aus einem Script beschrieben: Call GraphObjOpen("New_2DAxis1") 'Opens the axis object Call SUDDlgShow("Main", ResourceDrv & "D2Axis") Call

  • Set up web icons in iweb

    Hi, you know how when you go to a website, and in the address bar on the left side of it, theres an icon, like yahoo is a red Y and apples is a black and white apple icon? Does anyone know how to customize one and use one for a website in iweb 08? Th

  • Bridge crash since yesterday 2012/11/13

    Crash messages Nom d’événement de problème:     APPCRASH   Nom de l’application:     Bridge.exe   Version de l’application:     5.0.0.399   Horodatage de l’application:     4f5ec28e   Nom du module par défaut:     MMXCore.8BX   Version du module par