Pregunta

Tengo un problema interesante / molesto con algunos scripts VB que se ejecuta en Windows Server 2003 (que se ejecutan bien en XP).

Los guiones básicamente llaman periódicamente objetos WMI para extraer la información de rendimiento y escribirla en un archivo de registro. Se comenzó por las tareas programadas a las 12:05 cada mañana y se prolongará hasta la medianoche (o sería si no se seguirán estrellando). Es propiedad de Administrador y la tarea es "cscript xx.vbs blah blah blah".

A veces se ejecuta durante horas, a veces sólo unos pocos minutos. Las llamadas son de la forma:

set objWMI = getObject("winmgmts:\\.\root\cimv2")
:   :   :
do lots of times:
    set itemCpu = wmi.get("Win32_PerfRawData_PerfOS_Processor.Name='_Total'")

El error se vuelve con un cuadro de diálogo que indica que la llamada a procedimiento remoto para ejecutar pero no hay información adicional (que da un número hexadecimal de 32 bits y voy a actualizar a esta pregunta con la próxima vez que sucede, pero mis búsquedas de Google se presentaron páginas muy genéricos así que no estoy seguro de que el código le ayudará).

También utilizó a chocar a cabo (el mismo error) con la siguiente línea, pero no he visto un problema con éste, ya que lo cambié a utilizar Win32_Perf Raw Data_PerfOS_Memory.

set colMem = wmi.execQuery("select AvailableKBytes" & _
    " from Win32_PerfFormattedData_PerfOS_Memory",,48)

Tengo entendido que no está relacionado con la red, ya que está en la misma máquina.

También he intentado establecer objWMI a nada y hacer otra getObject cada vez que a través del bucle, pero eso no ayuda.

Otro posible problema, en realidad se ejecuta dentro de VMWare Workstation (pero también lo es el XP) -. Próxima semana voy a conseguir una configuración física de PC-Win2k3 corriendo a probarlo allí

El extraño es delgada, a veces tiene una duración de hora y sin problemas, la recogida de los datos y enviarlo al archivo de registro. Otras veces, se bloquea en diez minutos.

Todas las ideas de los gurús de Windows que hay entre nosotros?

ACTUALIZACIÓN:

De acuerdo, que finalmente fracasó de nuevo. Aquí está mi pequeño esfuerzo en la captura de pantalla:

+-------------------------------------------------+
|  Windows Script Host                          |X|
+-------------------------------------------------+
|  /   Script:   C:\Program Files\blah\blah.vbs  |
|  /\   Line:     271                             |
|       Char:     2                               |
|       Error:    The remote procedure call       |
|                 failed and did not execute.     |
|       Code:     800706BF                        |
|       Source:   SWbemServicesEx                 |
+-------------------------------------------------+

Línea 271 es:

set itemCpu = wmi.get("Win32_PerfRawData_PerfOS_Processor.Name='_Total'")

con wmi habiendo sido previamente con:

set wmi = getObject("winmgmts:\\.\root\cimv2")

(éste está continuamente siendo re-creado dentro del bucle, por lo que no creo que sea un problema con la conexión RPC ir rancio).

¿Fue útil?

Solución

El error 1722 (0x6BF) es: El servidor RPC no está disponible.

Una sugerencia: libre de todos los objetos de forma explícita en la secuencia de comandos

Para realizar mejor diagnosticar tratar de oler la red mediante Microsoft Network monitor 3.2 y la búsqueda de tema. (ver esta ayuda Cómo capturar tráfico de red con monitor de red )

Se ven bien.

Otros consejos

Si su escritura es el control de las cuentas de usuario cuando se ejecuta echar un vistazo a esta revisión. Es sólo un problema en 2003 lo que puede explicar por qué funciona bien en su sistema XP.

http://support.microsoft.com/kb/933593

Se estaba causando algunos problemas aleatorios para nosotros en el trabajo que no encajaban del todo la descripción en el artículo, pero la revisión se soluciona nuestros problemas.

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