webForumDet fria alternativet

ASP med VBscript

11 svar · 635 visningar · startad av niNe

niNeMedlem sedan maj 2005138 inlägg
#1

Tjo

Sitter o knåpar lite på en site där man ska kunna klicka på en knapp/bild och då ska cmd öppnas och den ska pinga ett visst ip.

Körde enligt följande modell:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c c: & ping 127.0.0.1 & pause"

Detta fungerade ju dock inte.... Får object required på Set wshellraden...

Varför går det inte att köra dessa kommandon via en ASP-VBscriptsite?!

TravoniMedlem sedan okt. 20041 538 inlägg
#2

Byt ut: WScript.CreateObject
mot: Server.CreateObject

Dock måste du ha rättigheter på servern för att köra shell-commandon

niNeMedlem sedan maj 2005138 inlägg
#3

Jag måste göra något fel... Byter ut den mot Server.CreateObject men den länkar ändå bara tillbaks till förstasidan... Kör full access på IISen och har både scripts och executables aktiverat...

@ndersMedlem sedan juni 200026 914 inlägg
#4

Vad menar du med "länkar tillbaks till förstasidan"?
Exakt vad hade du tänkt skulle hända?

Om du nu skulle lyckas exekvera raden i fråga så kommer du nog inte att märka det. Det är ju inte så att ASP-sidan slänger upp ett cmd-fönster...

Edit: Om du vill att klienten ska pinga, så är kan du väl prova att lägga koden på klientsidan i <script>, utan att blanda in ASP.

niNeMedlem sedan maj 2005138 inlägg
#5

Ah, ska prova det..

niNeMedlem sedan maj 2005138 inlägg
#6

Om jag nu ska lägga den i en <script>tagg, hur går jag till väga för att köra den med en länk?

Koden jag vill köra ligger längst upp i tråden...

Det jag vill ska hända är att jag har en söksida, där jag kan söka efter serverar eller klientmaskiner i nätet, och sedan pinga dessa direkt genom sidan. Vill ju då ha ett aktivt CMDfönster eller något annat som jag ser så jag ser att den fungerar.

emissionMedlem sedan dec. 19996 095 inlägg
yohpopsMedlem sedan feb. 20011 102 inlägg
#8

Se nedan inlägg.

yohpopsMedlem sedan feb. 20011 102 inlägg
#9

Kan detta hjälpa?

<html>
<title>Ping</title>
<head>
</head>
<body>
<%
	serverID = Request.QueryString("serverID")
	strServer = Request.QueryString("serverName")
strserverIP=Request.QueryString("serverIP")

		if instr(1,strServer," ")>=0 and strserverIP<>"" then
		if instr(1,strserverIP,",")>0 then
			strserverIP = left(strserverIP,instr(1,strserverIP,",")-1)
		end if
		strServer=strserverIP
	end if
	if strServer <> "" then
		Set objShell = CreateObject("WScript.Shell")
		Set objScriptExec = objShell.Exec("ping -n 4 -w 1000 " & strServer)
		strPingResults = LCase(objScriptExec.StdOut.ReadAll)
		Response.Write replace(replace(replace(strPingResults,vbcrlf,"<br>"),"	","&nbsp;&nbsp;&nbsp;&nbsp;")," ","&nbsp;")
		Set objScriptExec = nothing
		Set objShell = nothing
	else
		Response.Write "No Server."
	end if
%>
<br><input type="button" value="Close" onclick="vbscript:window.close">
</body>
</html>
niNeMedlem sedan maj 2005138 inlägg
#10

Din kod verkar vara något åt det hållet som jag vill ha det... Tyvärr händer ju ingenting när jag kör det... ping.asp?serverIP=192.168.0.1 osv osv... Den bara står o laddar i evigheter....

TravoniMedlem sedan okt. 20041 538 inlägg
#11

Testa att lägga till:
<% Response.Buffer=false %>

Högst upp på sidan.

niNeMedlem sedan maj 2005138 inlägg
#12

Löste problemet... Dock inte med detta script utan ett från ett annat forum.

Hade inte skapat en mapp med skrivrättigheter på webbservern :O

366 ms totalt · 5 externa anrop · cache AV · v20260730165559-full.0b955084
0 ms — hämta statistik (cache)
120 ms — slå upp tråd (db)
0 ms — hämta forumlista (cache)
121 ms — hämta inlägg (db)
122 ms — hämta bilagor (db)