Pregunta

Tengo una coincidencia de tipos en mi script VBScript. Yo sé que el valor es correcto, pero no sabe por qué está por venir.

Esta es la línea donde termina la secuencia de comandos:

WScript.Echo "DNS Server Search Order: " & objNicItem.DNSServerSearchOrder

El script requiere un archivo llamado servers.txt (que tiene una lista de servidores en el mismo, estoy tesing usando mi propio nombre de estación de trabajo).

Si hago un error on resume next funciona el guión. Sin embargo, si se rellena la lista de servidores. se muestra la misma información que el fisrt que trabaja de nuevo para cada huésped, así que no es correcta.

'Input from the command line
If Wscript.Arguments.Count = 0 Then
    Wscript.Echo "Usage: DNSAudit.vbs servers.txt "
    Wscript.Quit
End If

'Input from txt file
Const ForReading = 1
Set objArgs = WScript.Arguments
Set objDictionary = CreateObject("Scripting.Dictionary")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(ObjArgs(0), ForReading)
i = 0
Do Until objTextFile.AtEndOfStream
    StrNextLine = objTextFile.ReadLine
    objDictionary.Add i, StrNextLine
    i = i + 1
Loop
For Each objItem In objDictionary
    Computer = objDictionary.Item(objItem)

    'For Each Computer In Wscript.Arguments

    'remote connection to another computer other than using variables
    'Set ObjWMIService = GetObject("Winmgmts://COMPUTERNAME") for remote connection

    Set ObjWMIService = GetObject("Winmgmts:{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
    'If Err.Number <> 0 Then
    'WScript.Echo "**************************************************************"  & vbCrLf
    'WScript.Echo "Connection Errors"  & vbCrLf
    'WScript.Echo Computer & " " & Err.Description
    'WScript.Echo Computer & " " & Err.Description & " investigation required!"
    'WScript.Echo "**************************************************************"  & vbCrLf
    ''*********************************************************************************************************
    'End if
    WScript.Echo "**************************************************************"  & vbCrLf
    WScript.Echo "Starting Audit on " & computer
    WScript.Echo "**************************************************************"  & vbCrLf
    WScript.Echo "**************************************************************"  & vbCrLf
    wscript.echo "List DHCP, DNS, WINS Adapter Parameters"
    wscript.Echo "**************************************************************"  & vbCrLf

    Set colItems = objWMIService.ExecQuery _
        ("Select * from Win32_NetworkAdapterConfiguration")

    For Each objNicItem in colItems
        Wscript.Echo "DHCP Enabled: " & objNicItem.DHCPEnabled
        Wscript.Echo "DHCP Lease Expires: " & objNicItem.DHCPLeaseExpires
        Wscript.Echo "DHCP Lease Obtained: " & objNicItem.DHCPLeaseObtained
        Wscript.Echo "DHCP Server: " & objNicItem.DHCPServer
        Wscript.Echo "DNS Domain: " & objNicItem.DNSDomain
        Wscript.Echo "DNS Domain Suffix Search Order: " & _
            objNicItem.DNSDomainSuffixSearchOrder
        Wscript.Echo "DNS Enabled For WINS Resolution: " & _
            objNicItem.DNSEnabledForWINSResolution
        Wscript.Echo "DNS Host Name: " & objNicItem.DNSHostName
        WScript.Echo "DNS Server Search Order: " & objNicItem.DNSServerSearchOrder
    WScript.Echo "Domain DNS Registration Enabled: " & objNicItem.DomainDNSRegistrationEnabled
        Wscript.Echo "Full DNS Registration Enabled: " & _
            objNicItem.FullDNSRegistrationEnabled
       Wscript.Echo "IP Address: " & objNicItem.IPAddress
       Wscript.Echo "MAC Address: " & objNicItem.MACAddress
        Wscript.Echo "TCP Maximum Data Retransmissions: " & _
            objNicItem.TcpMaxDataRetransmissions
        Wscript.Echo "TCP NumC onnections: " & objNicItem.TcpNumConnections
        Wscript.Echo "WINS Host Lookup File: " & objNicItem.WINSHostLookupFile
        Wscript.Echo "WINS Primary Server: " & objNicItem.WINSPrimaryServer
        Wscript.Echo "WINS Secondary Server: " & objNicItem.WINSSecondaryServer & vbCrLf
        Wscript.Echo "Adaptor: "  & objNicItem.Description & vbCrLf
    Next
Next
¿Fue útil?

Solución 3

Es totalmente trabajando ahora con el siguiente código:

Wscript.Echo "IP Address: " & objNicItem.IPAddress(0)

Gracias a todos

Otros consejos

El problema es que DNSServerSearchOrder es una lista de pares clave / valor para que el comando Echo fallará. Usted necesitará para enumerar todos los valores como la siguiente:

If Not IsNull(objNicItem.DNSServerSearchOrder) Then
  For x = 0 To UBound(objNicItem.DNSServerSearchOrder)
     WScript.Echo "      " & objNicItem.DNSServerSearchOrder(x)
  Next
End If

propiedad Win32_NetworkAdapterConfiguration del objeto DNSServerSearchOrder es una matriz, no un valor que puede ser (implícitamente) convierte en una cadena.

de MSDN en la Clase Win32_NetworkAdapterConfiguration

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top