Níveis de representação WMI no código vbscript / ASP

4

Eu tenho um site do IIS 7.5 executando o código ASP "clássico" (não ASP.NET) onde o site está sendo executado no contexto de serviço normal e apenas a "Autenticação do Windows" está ativada. Usuários e navegar no site sem qualquer problema, independentemente de ter direitos implícitos de administrador no host do IIS ou não (a maioria não). No entanto, quando tento executar uma solicitação Win32_PingStatus comum no código ASP, ela falha, a menos que o usuário tenha direitos de administrador no host do IIS. Aqui está o meu código ...

On Error Resume Next
asset = "Computer123"

pingtest = False
query = "Select StatusCode, Address FROM Win32_PingStatus " & _
  "WHERE Address=" & Chr(34) & asset & Chr(34)
Set colPingStatus = GetObject("winmgmts:" &_ 
  "{impersonationLevel=impersonate}//./root/cimv2").ExecQuery(query)
If err.Number <> 0 Then
  Response.Write "Access Denied (error: " & err.Number & " / " & err.Description & ")"
  Response.End
End If

For Each objItem In colPingStatus
  If objItem.StatusCode = 0 Then
    pingtest = True
  End If
Next

If pingtest = False Then
  Response.Write asset & " is OFFLINE"
Else
  Response.Write asset & " is ONLINE"
End If

Eu tenho tentado me familiarizar com os recursos de representação de SWBEM e WMI, mas ainda estou confuso sobre se é possível (com ou sem suporte) fazê-lo, independentemente do contexto da sessão do usuário / navegador. Cada usuário é uma conta de domínio, nenhum usuário anônimo é capaz de acessar o site, por isso parece (e eu posso estar errado) estar relacionado à sua participação em grupos e permissões no host IIS.

    
por Skatterbrainz 29.01.2013 / 20:13

1 resposta

1

Primeiro, é o nível de confiança do seu site no IIS. Entre no IIS e verifique se ele está definido como completo para que seu site possa acessar os recursos internos do servidor.

Em seguida, verifique novamente se os usuários que acessam o site estão sendo autenticados e não estão executando o código anonimamente. Só para ter certeza, verifique se a autenticação anônima está desativada no iis e se o seu site está forçando os usuários a autenticar (desabilite o logon automático ntlm no seu navegador ou escreva uma peça de identificação do usuário em seu aplicativo para ter certeza de que a autenticação está ocorrendo).

Em seguida, verifique as permissões wmi para o tipo de usuários que estão acessando seu site. Você pode usar o wmimgmt.msc para abrir as configurações de segurança do wmi do seu servidor. Você pode testar suas permissões wmi entrando em seu servidor com um usuário comum e tentar executar comandos wmi (você pode usar o get-wmiobject, wbemtest.exe ou vbscript do powershell).

    
por 19.09.2013 / 02:30