WMI - Não é possível conectar a determinados computadores via endereço IP

Eu tenho um problema muito estranho com o WMI que estou enfrentando em algumas máquinas da nossa rede.

Tenho um software (.NET / C #) escrito que verifica um intervalo de IPs em uma rede local e, em seguida, usa o WMI para consultar determinados dados sobre as máquinas (nomes de computadores, versões do .NET Framework, entre outras coisas). Um problema que encontrei recentemente é que um pequeno subconjunto dessas máquinas não responde às conexões WMI feitas por meio de seu endereço IP - elas simplesmente lançam uma exceção "O servidor RPC não está disponível" como se o WMI não estivesse em execução no início.

Isso ocorre com o aplicativo C # e com um aplicativo vbscript que tenta uma consulta simples para retornar o nome do computador:

if wscript.arguments.count >= 1 then
    host = wscript.arguments(0)
end if
if host = "" or isnull(host) then host = "."

connectionStr = "winmgmts:{impersonationLevel=impersonate}!\\" & host & "\root\cimv2"
wscript.echo connectionStr

set objWMIService = GetObject(connectionStr)    
set objCompName = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
for each x in objCompName
    wscript.echo x.Name
next

Isso retorna o seguinte como resultados:

C:\>nslookup BROKENCOMPUTER
Address: 192.168.1.123

C:\>cscript testwmi.vbs 192.168.1.123
winmgmts:{impersonationLevel=impersonate}!\\192.168.1.123\root\cimv2
C:\testwmi.vbs(9, 1) Microsoft VBScript runtime error: The remote server machine does not exist or is unavailable: 'GetObject'

C:\>cscript testwmi.vbs BROKENCOMPUTER
winmgmts:{impersonationLevel=impersonate}!\\BROKENCOMPUTER\root\cimv2
BROKENCOMPUTER

Ainda posso abrir uma conexão WMI se me referir ao computador pelo nome do host / computador. Também posso conectar-me a outros servidores em execução na máquina via endereço IP (como HTTP ou RDP) - uma solicitação tphttp://192.168.1.123 retorna com sucesso.

Para tornar as coisas ainda mais estranhas, o comportamento nem é consistente. Às vezes, a conexão com o IP funcionará corretamente e acontece em lotes. Para testar isso, configurei um script que enviava spam repetidamente a uma solicitação WMI a cada 5 segundos para o computador em questão e registrava o resultado (e as tendências dos resultados). O que descobri foi que todas as solicitações falhariam ou teriam êxito em um certo número de solicitações (intervalo de 180 a 15 minutos) ou em várias delas. Exemplo:

   - Start script
   - 35 successful requests in a row
   - 180 failed requests in a row
   - 180 successful requests
   - 360 failed requests
   - 180 successful requests
   - 180 failed requests
   - 900 successful requests
   - etc etc

Em seguida, executei esse script em duas máquinas ao mesmo tempo. O que descobri foi que o comportamento entre os dois era semelhante (tinha intervalos de vários minutos de ser capaz de se conectar e não ser capaz de se conectar), mas não era sincronizado entre os dois; houve períodos em que ambos puderam se conectar, períodos em que apenas um (ou outro) pôde se conectar e períodos em que nenhum deles pôde se conectar.

Sei que esse é um problema incrivelmente estranho e específico, e realmente não espero que alguém seja capaz de resolvê-lo, mas estava me perguntando se alguém tinha alguma dica ou direção. Falei com os caras da rede aqui e eles estão tão intrigados com o assunto quanto eu.

questionAnswers(2)

yourAnswerToTheQuestion