Afficher le résultat d'un vbs dans une page asp

Afficher le résultat d'un vbs dans une page asp - ASP - Programmation

Marsh Posté le 15-03-2005 à 14:44:03    

Voici mon code:
 

Code :
  1. <%@ LANGUAGE=VBScript %>
  2. <HTML>
  3. <head>
  4. </head>
  5. <body>
  6.  <script language=vbs>
  7.  Dim args, oWinNT, oDomain, objExec, objShell
  8.  Set objShell = WScript.CreateObject("WScript.Shell" )
  9.  Set args=Wscript.Arguments
  10.  domain="glab"
  11.  Wscript.echo "Liste des machines du domaine " & domain
  12.  set oWinNT=GetObject("WinNT://" & domain)
  13.  for each oDomain in oWinNT
  14.   if  lcase(oDomain.class)="computer" then
  15.    Set objExec = objShell.Exec("Ping -n 1 -l 1 " & oDomain.name)
  16.     Do While Not objExec.stdout.AtEndOfStream
  17.      if InStr(objExec.stdOut.ReadLine,"TTL=" )<>0 Then
  18.       Wscript.echo oDomain.name
  19.       Exit Do
  20.      end if
  21.     Loop
  22.   end if
  23.  next
  24. </script>
  25. </BODY>
  26. </HTML>


 
Le script VBS marche très bien, mais il faudrait que le contenu oDomain.name soit afficher à l'écran.
 
Le script est censé afficher les machines qui sont connectée sur le domaine
 

Reply

Marsh Posté le 15-03-2005 à 14:44:03   

Reply

Marsh Posté le 15-03-2005 à 14:50:46    

Met ton script dans le header , sous forme d'une fonction qui retourne une chaine puis appelle le dans le body

Reply

Marsh Posté le 15-03-2005 à 15:10:09    

tu peux me montrer stp? car je début en ASP et j'aimerai partir sur un exemple concret!  
 
Est ce que cela résoudrait mon problème sur le fait que cela en réalise pas d'affichage?

Reply

Marsh Posté le 15-03-2005 à 15:16:17    

Ton code c tout sauf de l'asp. y'a aucun code serveur dedans.
C le meme pb que pour du javascript.
 
La seule balise coté serveur c celle-ci :
 
    * <%@ LANGUAGE=VBScript %>
 
Et elle ne fait ..... rien. sauf indiquer au serveur que tu va lui envoyer du code VBS dans les pages , ce que tu ne fait pas

Reply

Marsh Posté le 15-03-2005 à 15:22:02    

Ben aide moi si tu sais ^^, faut bien que je commence par quelque part ;-)
 
Tu sais me montrer un exemple au départ de ce que j'ai mis dnas le topic?
 
Ce serait sympa

Reply

Marsh Posté le 15-03-2005 à 15:26:04    

Tous ce qui est entre les balises <% et %> sera exécuté sur le serveur. Maintenant si tu ne sais meme pas ça c que tu n'a pas ouvert un seul fichier d'aide ou d'exemple.
Et je suis pas formateur donc je m'arrete là

Reply

Marsh Posté le 15-03-2005 à 15:28:15    

gedeon a écrit :

Tous ce qui est entre les balises <% et %> sera exécuté sur le serveur. Maintenant si tu ne sais meme pas ça c que tu n'a pas ouvert un seul fichier d'aide ou d'exemple.
 
Et je suis pas formateur donc je m'arrete là


 
ca je le sais très bien alors, désolé de vouloir débuté!
 
Et vu qeu c'est assez chaud de trouver un site bien fait..
 
Je te dis pas merci

Reply

Marsh Posté le 15-03-2005 à 15:39:25    

C bien dommage car je suis le seul a t'avoir répondu.
Je te reproche pas de débuter je te reproche de ne pas chercher et d'aller à la solution de facilité. Actuelement tu ne comprend pas ce que tu fais et si quelqu'un le fait à ta place tu n'en saura pas plus. Donc tu vas là http://www.allhtml.com/ tu regardes langage ASP, introduction et premier pas et tu auras ta reponse. Et si tu continues a lire les autres chapitres et que tu les comprends là tu auras tout bon.

Reply

Marsh Posté le 15-03-2005 à 15:49:05    

ben c'est ce que j'attendais: des références...

Reply

Marsh Posté le 15-03-2005 à 18:05:07    

Plusieurs choses :
 
1/ Un script ASP (côté serveur) s'éxécute dans une balise "<% %>" et non une balise SCRIPT.
Exemple :
 

Code :
  1. <p>
  2. <%
  3. Response.Write "toto"
  4. %>
  5. </p>


 
Tu peux aussi normalement, mais ça ne marche pas toujours, conserver ta balise Script, en lui ajoutant l'attribut "runat" avec pour valeur "server" :
 

Code :
  1. <p>
  2. <script language="VBScript" runat="Server">
  3. Response.Write "toto"
  4. </script>
  5. </p>


 
Mais ça ne marche pas toujours, donc je te déconseille vivement d'utiliser cette syntaxe !
 
2/ Le code ainsi éxécuté tourne sur le serveur, et non sur la machine cliente. Ainsi, tu verras les objets du réseau du serveur, et non celui du poste client.
 
3/ Enfin, il est impossible de faire appel à l'objet "WScript.Shell" dans un script côté client, à moins peut-être de mettre la sécurité au minimum.

Reply

Marsh Posté le 15-03-2005 à 18:05:07   

Reply

Marsh Posté le 16-03-2005 à 20:27:21    

Merci bcp, je test tout ça dés que je sais

Reply

Marsh Posté le 16-03-2005 à 20:38:46    

quand tu parles du coté du serveur, y a pas moyen que je le fasse tourner sur une machine qui n'est pas serveur?
 
Juste pour les tests

Reply

Marsh Posté le 16-03-2005 à 21:00:31    

Ben faut qu'il y ait IIS dessus, tu peux pas éxécuter de l'ASP si t'as pas un serveur web.

Reply

Marsh Posté le 17-03-2005 à 06:41:30    

ah ben c'est bien ce ue j'ai fait, mais je pensais qu'il y avait une autre subtilité

Reply

Marsh Posté le 17-03-2005 à 09:47:11    

Non non :)

Reply

Marsh Posté le 17-03-2005 à 11:29:48    

Y  a t il d'autre truc que je dois être au courrant avant de vraimentcommencer a encoder?

Reply

Marsh Posté le 17-03-2005 à 14:19:03    

Ben commence, et reviens quand tu seras bloqué, parceque là comme ça, à part te dire qu'il faut un clavier pour écrire sur un ordinateur, et un navigateur web pour voir le résultat de l'éxécution d'un ASP, je vois pas trop ;)

Reply

Marsh Posté le 21-03-2005 à 18:53:11    

Oki merci bcp, demain j'attaque ça! j'espere que cela ira et ne plus être enmerdé ;-)

Reply

Marsh Posté le 21-03-2005 à 19:04:58    

Arjuna a écrit :

Plusieurs choses :
 
1/ Un script ASP (côté serveur) s'éxécute dans une balise "<% %>" et non une balise SCRIPT.
Exemple :
 

Code :
  1. <p>
  2. <%
  3. Response.Write "toto"
  4. %>
  5. </p>


 


 
J'ai une dernière question (oui je suis enmerdant;-))tu parle de script ASP , mais c'est aussi a cette endroit que je dosi mettre mes script VBS?
 
merci de votre aide les gars

Reply

Marsh Posté le 21-03-2005 à 19:34:38    

Ca dépend. ASP, c'est une technologie. VBS, c'est un langage.
 
Un script "client" (qui tourne sur la machine de l'utilisateur) se met entre simples balises <script>. Ce genre de script sert généralement à faire des modifications dans la mise en page (roll-over, etc.). Il peut être en JavaScript ou en VBScript (dans le second cas, il ne marchera grossomodo que si l'utilisateur utilise Internet Explorer, c'est donc à éviter).
Un script "serveur", lui, qui est de l'ASP, sera écrit pour faire des accès aux bases de données, faire des traîtements sur le serveur, etc. Lui, il tourne dans les fameuses balises <% %>. Il peut, comme les autres scripts, être soit en JavaScript, soir en VBScript (il vaut mieu par contre utiliser VBScript pour l'ASP).
 
Exemple simple :
 

Code :
  1. <% @Language="VBScript" %> <!-- Balise obligatoire, pour définir le langage utilise pour l'ASP -->
  2. <% Option Explicit %>      <!-- Ca, c'est parceque je suis un gars propre, qui déclare ses variables -->
  3. <html>
  4.   <head>
  5.     <title>Da Arjuna's test</title>
  6.     <script language="JavaScript" type="text/javascript">
  7.       function doClick(val)
  8.       {
  9.         alert("Vous avez clické sur le bouton " + val.ToString());
  10.       }
  11.     </script>
  12.   </head>
  13.   <body>
  14. <%
  15. Dim i
  16. For i = 1 to 5
  17.   Response.Write "<p><a href=""#"" onclick=""doClick(" & i & " )"">" & i & "</a></p>" & vbCrLf
  18. Next
  19. %>
  20.   </body>
  21. </html>


 
Copie ce que fait cet exemple.
Execute le.
Joue avec.
Regarde le source depuis IE (complètement différent)
Et essaie de comprendre comment ça marche.
T'as toutes les bases là ;)

Reply

Marsh Posté le 21-03-2005 à 19:41:50    

des posts comme ça, j'adore ;-)
 
Merci bcp
 
chuuuuuuuuuut....ne me dérangez pas, je fais de l'asp ;-)

Reply

Marsh Posté le 22-03-2005 à 15:30:36    

Bon cela tourne, maitenant je voudrais améliorer ma page mais j'ai un problème:
 
J'aimerai pouvoir entrer un texte dans une zone de saisie et la mettre dans une variable (cela sera pour initialiser la variable domain)!!  
 
je ne trouve nul part cela

Reply

Marsh Posté le 22-03-2005 à 16:01:41    

Dans ta page :

Code :
  1. <form method="POST" action="toto.asp">
  2.   <input type="text" name="prout" value="Tu tapes ton texte ici">
  3.   <input type="submit" name="btnSubmit" value="Et après tu cliques là">
  4. </form>


 
Dans toto.asp

Code :
  1. Dim maVar
  2. maVar = Request.Form("prout" )
  3. Response.Write "T'as tapé """ & maVar & """."



Message édité par Arjuna le 22-03-2005 à 16:02:38
Reply

Marsh Posté le 22-03-2005 à 17:44:15    

on peut pas travaille rsur le même fichier?


Message édité par chepa_jemls le 22-03-2005 à 18:05:59
Reply

Marsh Posté le 22-03-2005 à 19:12:25    

si, mais ça recharge la page, donc il faut bien garder en mémoire que ton code sera rééxécuté.

Reply

Marsh Posté le 22-03-2005 à 19:22:01    

j'ai pas très bien compris la façon de faire pour lire dans une zone de saisie.
 
Voila mon code, tu saurais m'aider?
 

Code :
  1. <% @Language="VBScript" %> <!-- Balise obligatoire, pour définir le langage utilise pour l'ASP --> 
  2. <html>
  3.   <head>
  4.     <title>Da Arjuna's test</title>
  5. <script language="vbs"></script>
  6. <!--
  7.  sub cmdChanger_OnClick
  8.  MsgBox "essai"
  9.  End Sub
  10.     -->
  11.     </script>
  12.    
  13.   </head>
  14.   <body>
  15. <%
  16. Dim args, oWinNT, oDomain, objExec, objShell
  17. Set objShell = Server.CreateObject("WScript.Shell" )
  18. domain="Internet"
  19. set oWinNT=GetObject("WinNT://" & domain)
  20. for each oDomain in oWinNT
  21. if  lcase(oDomain.class)="computer" then
  22.  Set objExec = objShell.Exec("Ping -n 1 -l 1 " & oDomain.name)
  23.   Do While Not objExec.stdout.AtEndOfStream
  24.    if InStr(objExec.stdOut.ReadLine,"TTL=" )<>0 Then
  25.     Response.Write oDomain.name%><br><%
  26.     Exit Do
  27.    end if
  28.   Loop
  29. end if
  30. next
  31. %>
  32.   </body>
  33. </html>

Reply

Marsh Posté le 22-03-2005 à 19:26:50    

Code :
  1. <%
  2. Dim args, oWinNT, oDomain, objExec, objShell
  3. Set objShell = Server.CreateObject("WScript.Shell" )
  4. domain="Internet" 
  5. set oWinNT=GetObject("WinNT://" & domain)
  6. for each oDomain in oWinNT
  7.     if  lcase(oDomain.class)="computer" then 
  8.         Set objExec = objShell.Exec("Ping -n 1 -l 1 " & oDomain.name)
  9.             Do While Not objExec.stdout.AtEndOfStream
  10.                 if InStr(objExec.stdOut.ReadLine,"TTL=" )<>0 Then
  11.                     Response.Write oDomain.name%><br><%
  12.                     Exit Do
  13.                 end if
  14.             Loop
  15.     end if
  16. next
  17. %>


 
devient :
 

Code :
  1. <%
  2. Dim args, oWinNT, oDomain, objExec, objShell
  3. Set objShell = Server.CreateObject("WScript.Shell" )
  4. 'domain="Internet"
  5. %>
  6. <form method="post">
  7.   Domaine : <input type="text" name="domain" value="<%=Request.Form("domain" )%>">
  8. <input type="submit" value="Search">
  9. </form>
  10. <%
  11. if Request.Form("domain" ) <> "" then
  12.   set oWinNT=GetObject("WinNT://" & Request.Form("domain" ))
  13.   for each oDomain in oWinNT
  14.       if  lcase(oDomain.class)="computer" then 
  15.           Set objExec = objShell.Exec("Ping -n 1 -l 1 " & oDomain.name)
  16.               Do While Not objExec.stdout.AtEndOfStream
  17.                   if InStr(objExec.stdOut.ReadLine,"TTL=" )<>0 Then
  18.                       Response.Write oDomain.name%><br><%
  19.                       Exit Do
  20.                   end if
  21.               Loop
  22.       end if
  23.   next
  24. else
  25.   Response.Write "<p>Entrez un nom de domaine s'il vous plaît</p>"
  26. end if
  27. %>


 
Et noublie pas le "Option Explicit" au début de la page :o


Message édité par Arjuna le 22-03-2005 à 19:27:30
Reply

Marsh Posté le 22-03-2005 à 22:04:48    

Voila la modification mais le problème est qu'il affiche tout d'un cous!il ne me laisse pas le temps d'entrer mon nom de domaine!!
 
Il met met directement Entrez un nom de domaine s'il vous plaît
Voilà mon code
 

Code :
  1. <% @Language="VBScript" %> <!-- Balise obligatoire, pour définir le langage utilise pour l'ASP --> 
  2. <html>
  3.   <head>
  4.     <title>Da Arjuna's test</title>
  5. <script language="vbs"></script>
  6. <!--
  7.  sub cmdChanger_OnClick
  8.  MsgBox "essai"
  9.  End Sub
  10.     -->
  11.     </script>
  12.    
  13.   </head>
  14.   <body>
  15. <%
  16. Dim args, oWinNT, oDomain, objExec, objShell
  17. Set objShell = Server.CreateObject("WScript.Shell" )
  18. 'domain="Domjemelle"
  19. %>
  20. <form method="post" ID="Form1">
  21.   Domaine : <input type="text" name="domain" value="<%=Request.Form("domain" )%>" ID="Text1">
  22. <input type="submit" value="Search" ID="Submit1" NAME="Submit1">
  23. </form>
  24. <%
  25. if Request.Form("domain" ) <> "" then
  26. set oWinNT=GetObject("WinNT://" & domain)
  27. for each oDomain in oWinNT
  28. if  lcase(oDomain.class)="computer" then
  29.  Set objExec = objShell.Exec("Ping -n 1 -l 1 " & oDomain.name)
  30.   Do While Not objExec.stdout.AtEndOfStream
  31.    if InStr(objExec.stdOut.ReadLine,"TTL=" )<>0 Then
  32.     Response.Write oDomain.name%><br><%
  33.     Exit Do
  34.    end if
  35.   Loop
  36. end if
  37. next
  38. else
  39.   Response.Write "<p>Entrez un nom de domaine s'il vous plaît</p>"
  40. end if
  41. %>
  42.   </body>
  43. </html>

Reply

Marsh Posté le 22-03-2005 à 22:44:33    

chepa_jemls a écrit :

Voila la modification mais le problème est qu'il affiche tout d'un cous!il ne me laisse pas le temps d'entrer mon nom de domaine!!
 
Il met met directement Entrez un nom de domaine s'il vous plaît
Voilà mon code
 

Code :
  1. <% @Language="VBScript" %> <!-- Balise obligatoire, pour définir le langage utilise pour l'ASP --> 
  2. <html>
  3.   <head>
  4.     <title>Da Arjuna's test</title>
  5. <script language="vbs"></script>
  6. <!--
  7.  sub cmdChanger_OnClick
  8.  MsgBox "essai"
  9.  End Sub
  10.     -->
  11.     </script>
  12.    
  13.   </head>
  14.   <body>
  15. <%
  16. Dim args, oWinNT, oDomain, objExec, objShell
  17. Set objShell = Server.CreateObject("WScript.Shell" )
  18. 'domain="Domjemelle"
  19. %>
  20. <form method="post" ID="Form1">
  21.   Domaine : <input type="text" name="domain" value="<%=Request.Form("domain" )%>" ID="Text1">
  22. <input type="submit" value="Search" ID="Submit1" NAME="Submit1">
  23. </form>
  24. <%
  25. if Request.Form("domain" ) <> "" then
  26. set oWinNT=GetObject("WinNT://" & domain)
  27. for each oDomain in oWinNT
  28. if  lcase(oDomain.class)="computer" then
  29.  Set objExec = objShell.Exec("Ping -n 1 -l 1 " & oDomain.name)
  30.   Do While Not objExec.stdout.AtEndOfStream
  31.    if InStr(objExec.stdOut.ReadLine,"TTL=" )<>0 Then
  32.     Response.Write oDomain.name%><br><%
  33.     Exit Do
  34.    end if
  35.   Loop
  36. end if
  37. next
  38. else
  39.   Response.Write "<p>Entrez un nom de domaine s'il vous plaît</p>"
  40. end if
  41. %>
  42.   </body>
  43. </html>



Ben c'est normal qu'il te dire "entrez un nom de domaine s'il vous plaît". Tu tapes le noms, et zou, tu fais la recherche en cliquant sur le bouton. Le message sera alors remplacé par le résultat de ton script ;)

Reply

Marsh Posté le 23-03-2005 à 07:49:13    

quand je clique après avoir rnetré le nom de domaine, il met met une page d'erreur(comme si il toruvait pas la page)
 
EDIT: Pour information, il s'agit d'une erreur 405
 
REEDRIT: EN surfant ej me suis rendu compte qu'il fallait faire un truc du genre dans le form:action="essai.asp?valeur=valeur1".  Je sais pas commentintrodfuire cela, mais cela à l'air de passer, le problème ets que je l'attribue pas à la bonne variable (domaine)  Tu sais me dire?


Message édité par chepa_jemls le 23-03-2005 à 10:59:26
Reply

Marsh Posté le 23-03-2005 à 13:12:03    

Voilà c'est résolu, en surfant un peu sur internet!
 
J'attends de tester cela  sur le domaine ici

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed