Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Deivid

[Resolvido] Executar o trecho várias vezes

Recommended Posts

Olá pessoal, tô precisando de uma ajuda para incrementar uma funcionalidade. Possuo uma página chamada ScanOne.asp e outra chamada ScanOneResult.asp, na primeira o usuário insere o endereço ip ou o nome netbios de uma estação (Windows) e a segunda exibe algumas informações sobre a mesma (nome, domínio, memória física, etc), até aqui tudo funciona que é uma beleza. O meu grande problema é que quero criar uma página ScanMore.asp e outra ScanMoreResult.asp para que o usuário digite na primeira endereços ip ou nomes separados por virgula e na segunda (ScanMoreResult.asp) eu pegue estes nomes e execute a pesquisa para cada um deles e exiba elas. Tentei fazer da seguinte maneira:

 

Resgatar o digitado e dar um split:

 

strComputer = Split(Request.Form("Hosts"),",")

 

e no trecho que qeuro repetir tentei

 

For Each objWMIService in strComputer

 

Mas não tá rolando. Abaixo o trecho que quero repetir:

 

CODE
<%

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")

Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _

"root\CIMV2", _

strUser, _

strPassword, _

"MS_409", _

"ntlmdomain:" + strDomain)

Set colItems = objWMIService.ExecQuery( _

"SELECT * FROM Win32_ComputerSystem",,48)

%>

<%

For Each objItem in colItems

%>

<blockquote>

</p>

<table width="556" border="1" bordercolor="#FFFFFF" class="txtCorpo">

<tr>

<td colspan="2" class="celPontAzul">Informações básica do host</td>

</tr>

<tr>

<td colspan="2"> </td>

</tr>

<tr>

<td width="129" align="right" class="txtRotulo">Nome:</td>

<td width="411" class="celMenu"><span class="txtCorpo"><%=objItem.Caption%><%CaptionCS = objItem.Caption%></span></td>

</tr>

<tr>

<td align="right" class="txtRotulo">Domínio:</td>

<td class="celMenu"><span class="txtCorpo"><%=objItem.Domain%><%DomainCS = objItem.Domain%></span></td>

</tr>

<tr>

<td align="right" class="txtRotulo">Fabricante (hardware): </td>

<td class="celMenu"><span class="txtCorpo"><%=objItem.Manufacturer%><%ManufacturerCS = objItem.Manufacturer%></span></td>

</tr>

<tr>

<td align="right" class="txtRotulo">Memória física: </td>

<td class="celMenu"><span class="txtCorpo"><%

RAM = objItem.TotalPhysicalMemory / 1000 /1000

RAMTotal = FormatNumber(RAM,0)

Response.Write (RAMTotal & " MB")%>

</span></td>

</tr>

 

<tr>

<td align="right" class="txtRotulo">Sistema operacional: </td>

<td class="celMenu">

<%

Next

Set colItems = objWMIService.ExecQuery( _

"SELECT * FROM Win32_OperatingSystem",,48)

For Each objItem in colItems

%>

<span class="txtCorpo"><%=objItem.Caption%><%CaptionOS = objItem.Caption%>

<%

Next

%></span></td>

</tr>

<tr>

<td align="right" class="txtRotulo">Service pack: </td>

<td class="celMenu">

<span class="txtCorpo"><%

Set colItems = objWMIService.ExecQuery( _

"SELECT * FROM Win32_OperatingSystem",,48)

For Each objItem in colItems

Response.Write(objItem.CSDVersion)

%>

<%

ServPack = objItem.CSDVersion

%>

<%

Next

%>

</span></td>

</tr>

<tr>

<td align="right" class="txtRotulo"> </td>

<td> </td>

</tr>

<tr>

<td colspan="2" align="left" class="celMenu"><span class="txtCorpo" onclick="MM_openBrWindow('InsertHost.asp','Confirmação','width=450,height=450')"><a href="#">Adicionar aos meus hosts</a> | Adicionar ao grupo | Exibir informações detalhadas </span></td>

</tr>

</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparece alguma mensgem de erro ?

 

como você está fazendo ? num editor de textos comum ou numa plataforma ?

 

 

por enquanto, o que você pode fazer é dbugar trechos do scripts para encontrar o primeiro problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta.

 

Utilizo Dreamweaver para design, e aproveito e digito o código nele mesmo. O erro é o seguinte:

 

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A000D)

Tipos incompatíveis: 'ConnectServer'

/HostsModule/ScanMoreResult.asp, line 268

 

A linha 268 é:

 

Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "root\CIMV2", strUser, strPassword, "MS_409", "ntlmdomain:" + strDomain)

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que tem algum outro erro antes desse.

 

 

verifique as variáveis se consistem

 

strComputer,

strUser,

strPassword,

strDomain

 

 

o problema pode ser referente à conexão

 

pesquise por "Check WMI Connectivity"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, o erro era na montagem do FOR. Apesar disso eu só consegui resolver ao pesquisar no Google por "Check WMI conectivity", como vôcê indicou. Comparei com um código de um usuário de outro fórum e percebi que tava montando errado. Consertei da seguinte forma:

 

CODE

ArrStrComputer = Split(Request.Form("Hosts"),",")

 

strUser = Session("MM_UserName")

strDomain = (rsCurUserInfo.Fields.Item("DomainName").Value)

strPassword = (rsCurUserInfo.Fields.Item("Hash").Value)

 

For Each strComputer in ArrStrComputer

 

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")

Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "root\CIMV2", strUser, strPassword, "MS_409", "ntlmdomain:" +strDomain)

 

'...Restante do código

 

Next

 

Obrigado pela dica de pesquisa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.