문제

WIN32_NTLOGEVENT를 읽고 Symantec Antivirus가 무엇이든 작성했는지 확인하는 등 WMI를 사용하여 네트워크 전체에 걸쳐 광범위한 정보를 수집하는 .NET 응용 프로그램이 있습니다. 쿼리는 잘 작동하지만 WMI 쿼리 "일반 실패"오류가 반복적으로 실행 된 후에 다시 시작됩니다. 이것은 대략적으로 매우 일관되게 발생합니다. 125 호출. WMI 쿼리를 실행중인 기계를 재부팅하면 항상 오류를 수정합니다. 즉 다음 125 쿼리가 실행될 때까지.

저장소가 괜찮고 로그 파일 크기 문제를 찾을 수없는 것으로 보입니다.

더 많은 정보 - 오류를 얻은 후 WMIDIAG를 실행하고 발견했습니다.

25607 13:55:38 (1) !! 오류 : WMI 열거 작업 오류보고 : 2 오류!

25608 13:55:38 (0) ** - 루트/CIMV2, 서브 클래스, '*', 0x80041006- (wbem_e_out_of_memory) 작업에 대한 메모리가 충분하지 않습니다.

25609 13:55:38 (0) ** MOF 등록 : 'C : Winnt System32 WBEM SNMPREG.MOF'25610 13:55:38 (0) ** - root/CIMV2, 'Win32_PerfforMattedData_PROC_THREAD', 0x8007000e-이 작업을 완료하기에 충분한 스토리지를 사용할 수 없습니다 ..

25611 13:55:38 (0) ** MOF 등록 : 'C : Windows System32 wbem wmi.mof'

누구든지 이것을 본 적이 있습니까? 아이디어?

도움이 되었습니까?

해결책 2

나는 우리 가이 문제를 발견했다고 믿는다. 쿼리 중 일부를 단순화하기 위해 쿼리 구축을 완화하기 위해 WHERE 절에 1 = 1과 같은 것을 추가했습니다. 상수 = 상수를 제거하고 테스트 한 쿼리는 40 초에서 .4 초로 이동했으며 일반적인 고장 (wbem_e_out_of_memory)을 생성하지 않고 10,000 회 이상 실행되었습니다.

다른 팁

우리는 다른 WMI 쿼리를 가진 "일반 실패"오류를 여러 번 보았으므로 기본적으로 WMI가 원시 관리 이외의 다른 것에 사용하기에 충분히 안정적이지 않다는 결론에 도달했습니다. 몇 달 동안 엉망이 된 후 우리의 유일한 해결책은 모든 WMI 통화를 당기고 순수한 API 호출에서 교체품을 찾는 것이 었습니다. 그들은 항상 한동안 일한 다음 "일반적인 오류"로 실패 할 것입니다 (나는 이것이 답이 아니라는 것을 알고 있지만, 공유 된 경험이며 누군가가 대답을한다면 나는 그것에 대해 매우 기뻐할 것입니다).

WinRM (Windows Remote Management)은 이러한 모든 문제를 극복 할 수 있습니다. WINRM은 표준 간단한 객체 액세스 프로토콜 (SOOM) 기반 인 WS-Management Protocol의 Microsoft 구현입니다.

WMI를 통해 원격 시스템에서 소프트웨어를 제거 / 설치하려고 할 때 이와 비슷한 문제가있었습니다.

로밍 프로파일이 대상 기계에있는 경우 문제가 발생합니다. 이것은 대상 기계에서 이전에 WMI를 쿼리했기 때문일 수 있습니다.

이것이 같은 문제인지는 모르겠지만 소프트웨어를 제거하려고 시도하기 전에 내 프로필이 대상 시스템의 문서 및 설정 폴더에 있는지 확인하기 위해 확인해야했습니다.

쿼리를 실행할 때 로컬 컴퓨터에서 프로필을 작성한다고 가정합니다.

이전에 Remotley에서 작업 한 컴퓨터에서 소프트웨어를 제거하려고 시도 할 때마다 일반적인 실패 메시지를 받았습니다.

이제 소프트웨어 구성 요소 Remotley를 제거 / 설치하려고 시도하기 전에 내 프로필이 대상 기계를 형성하도록합니다. 나는 그 이후로 아무런 문제가 없었습니다.

이것이 누군가를 돕기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top