Domanda

Ho un problema interessante / fastidioso con alcuni VBScript in esecuzione su Windows Server 2003 (che funzionano bene su XP).

Gli script fondamentalmente periodicamente chiamano oggetti WMI per estrarre le informazioni sulle prestazioni e scrivere in un file di log. E 'iniziata da Operazioni pianificate alle 12:05 ogni mattina e corre fino a mezzanotte (o sarebbe se non continua a arrestarsi). E 'di proprietà di amministratore e il compito è "cscript xx.vbs blah blah blah".

A volte si corre per ore, a volte solo pochi minuti. Le chiamate sono della forma:

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

L'errore ritorna con una finestra di dialogo che indica che la chiamata di procedura remota non è stato eseguito, ma nessuna informazione supplementare (che dà un numero esadecimale a 32-bit e io aggiornare a questa domanda con la prossima volta che succede, ma le mie ricerche di Google alzato pagine molto generici, quindi non sono sicuro che il codice aiuterà).

E 'anche usato per mandare in crash out (lo stesso errore) con la seguente riga, ma non ho visto un problema con questo da quando ho cambiato usare Win32_Perf Raw Data_PerfOS_Memory.

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

Mi sembra di capire che non è relativo alla rete dal momento che è sulla stessa macchina.

Inoltre ho cercato di impostare objWMI a nulla e fare un altro getObject ogni volta attraverso il ciclo, ma che non ha aiutato.

Un altro possibile problema, in realtà è in esecuzione all'interno di VMWare Workstation (ma così è la XP) -. La prossima settimana avrò una configurazione fisica-PC di Win2k3 corsa per testare lì

Lo strano sottile è, a volte corre per ore senza problemi, la raccolta dei dati e l'invio nel file di registro. Altre volte, si blocca in dieci minuti.

Tutte le idee dai guru di Windows là fuori in mezzo a noi?

UPDATE:

D'accordo, è finalmente riuscito di nuovo. Ecco il mio piccolo sforzo di cattura dello schermo:

+-------------------------------------------------+
|  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                 |
+-------------------------------------------------+

Linea 271 è:

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

con wmi essendo stato precedentemente impostato con:

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

(questo viene continuamente ricreato all'interno del ciclo, quindi non credo che sia un problema con la connessione RPC andare stantio).

È stato utile?

Soluzione

L'errore 1722 (0x6BF) è: Il server RPC non è disponibile.

Un suggerimento: gratis tutti gli oggetti in modo esplicito nello script

Per eseguire meglio diagnosticare provare a sniffare la rete utilizzando Microsoft Network Monitor 3.2 e la ricerca per il rilascio. (vedere questo aiuto Come il traffico di rete di cattura con Network Monitor )

Buona look.

Altri suggerimenti

Se lo script sta controllando gli account utente quando viene eseguito a dare un'occhiata a questo hotfix. E 'solo un problema nel 2003 che può spiegare perché funziona bene sul vostro sistema XP.

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

Si stava causando alcuni problemi casuali per noi sul posto di lavoro che non ha del tutto corrispondono alla descrizione in questo articolo, ma l'aggiornamento rapido è stato risolto i nostri problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top