2009-03-20 3 views
0

Windows 2003 Server에서 실행중인 일부 VBScript에는 흥미롭고 성가신 문제가 있습니다 (XP에서는 정상적으로 실행됩니다).잠시 후 WMI 오류가 발생합니다.

스크립트는 기본적으로 주기적으로 WMI 개체를 호출하여 성능 정보를 추출하고 로그 파일에 기록합니다. 매일 아침 12시 5 분에 예정된 작업으로 시작되어 자정까지 실행됩니다 (충돌이 계속되지 않는 경우). 관리자가 소유하고 있으며 작업은 "cscript xx.vbs blah blah blah"입니다.

때로는 몇 시간 동안 실행되며 경우에 따라서는 몇 분만 실행됩니다. 통화는 형식은 다음과 같습니다

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

가 다시 함께 제공되는 원격 프로 시저 호출을 실행하지 못했습니다하지만 추가 정보는 (은 32 비트 16 진수를 포기하지 않고 나 '알리는 대화 상자입니다 오류 다음 번에이 질문을 업데이트 할 것이지만 내 Google 검색이 매우 일반적인 페이지로 바뀌어 코드가 도움이 될지 확신 할 수 없습니다.

또한 다음 줄을 사용하여 충돌 (같은 오류)했지만 Win32_Perf를 사용하도록 변경 한 이후로이 문제가 발생하지 않았습니다. Raw Data_PerfOS_Memory.

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

같은 컴퓨터에 있기 때문에 네트워크와 관련이 없습니다.

나는 objWMI를 아무 것도 설정하지 않고 루프를 통해 매번 다른 getObject를 시도했지만 도움이되지 않았습니다.

또 다른 가능한 문제는 사실 VMWare Workstation (XP도 그렇습니다)에서 실행 중입니다. 다음 주에는 Win2k3의 물리적 PC 설정을 테스트하여 실행 해 보겠습니다.

이상하게 얇은 것은 때때로 문제없이 몇 시간 동안 실행되어 데이터를 수집하여 로그 파일로 보냅니다. 다른 때에는 10 분 안에 충돌합니다.

Windows 전문가의 아이디어가 있습니까?

는 UPDATE :

좋아, 마침내 다시 실패했습니다.

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

라인 (271)은 다음과 같습니다 :

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

(이 계속되고있는 재 : wmi

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

는 이전에 설정 된 다음 화면 캡처에서 내 작은 노력입니다 루프 내부에서 생성되므로 RPC 연결이 끊어지는 문제는 아닌 것 같습니다.

+0

이벤트의 오류는 없습니까? – lsalamon

+0

이벤트 뷰어의 내용이 전혀 없습니다 (언급 했어야합니다). – paxdiablo

답변

1

오류 1722 (0x6BF)는 다음과 같습니다. RPC 서버를 사용할 수 없습니다.

한 제안 : 무료

Microsoft Network Monitor 3.2를 사용하여 네트워크를 도청하고 문제를 검색하려고 진단 최고의 수행하려면 스크립트에 명시 적으로 모든 객체.(이 도움말보기 How to capture network traffic with Network Monitor)

잘 보입니다.

+0

부분적으로 수정 사항이었습니다. 명시 적으로 해제되지 않은 객체가 두 개 있습니다. 그러나 변수가 다른 것으로 할당되었거나 범위를 벗어난 경우에도 마찬가지입니다. 문제의 나머지 절반은 가능한 한 WMI를 강타하고있었습니다. – paxdiablo

+0

모든 개체를 끝내 자마자 명시 적으로 해제하고 10 초에 한 번만 WMI를 쿼리하면 문제가 해결되었습니다. 글쎄, 아직 거기에 있을지 모르지만 내 프로세스가 매 자정마다 다시 시작하므로 실행중인 느린 비트가 3 시간 대신 25 시간마다 발생하도록 할 수 있습니다 :-) – paxdiablo

+0

그래서 +1하고 받아들입니다. 당신은 내가 C.에있는 것을 다시 써야하는 것을 피할 수있게 도와 주었다. – paxdiablo

1

스크립트가 실행될 때 사용자 계정을 검사하는 경우이 핫픽스를 살펴보십시오. 그것은 XP 시스템에서 잘 작동하는 이유를 설명하는 유일한 2003 문제입니다.

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

그것은 전적으로 문서의 설명에 적합하지 않은 일에 우리를 위해 어떤 임의의 문제를 야기했지만 핫픽스는 우리의 문제를 해결했다.

+0

@Jerb, +1 정보를 위해서 그러나 내가 가지고 있었던 특정한 문제를 고치지 않았다. – paxdiablo

관련 문제