Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Fare eseguire in remoto uno script

    Ciao a tutti,
    ho un problema, ho fatto una piccola applicazione asp che risiede sul mio pc, queste pagine sono raggiungibili anche da altri pc nella stessa rete.
    Il codice dovrebbe segnalare il nome della macchina e il nome utente nel momento in cui viene fatto eseguire.
    Il problema è che quando genero le pagine, segna sempre il nome della mia macchina dove risiede lo script...al che avevo pensato di usare questo codice:

    Dim Controller, RemoteScript
    Set Controller = CreateObject("WSHController")
    Set RemoteScript = Controller.CreateScript("1.cmd")
    RemoteScript.Execute

    per aprire una connessione remotam il file 1.cmd, è un file dos:

    echo %computername% >> C:\utente.txt
    echo %username% >> C:\utente.txt

    il problema è che nn funzica, mi da questo tipo di errore:

    Errore di run-time di Microsoft VBScript (0x800A01AD)
    Il componente ActiveX non può creare l'oggetto

    sicuramente c'è qualche baco nel mio ragionamento, qualcunoi mi può aiutare o indicare un altro metodo per raggiungere il mio scopo? sto impazzendo! Grazie Barbara

  2. #2
    Prova a copiare sul server (il tuo pc) e ad eseguire da remoto questo codice, e vedi se ne ricavi le informazioni che ti servono:

    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head>
    <title>Lettura server variables</title>
    </head>
    <body>
    
    <center>
    <table width="90%" border="0" cellpadding='0' cellspacing='0'>
        <%
        For Each name In request.servervariables
    	
        response.write ("<tr><td width='10%' align='left'>" & name & "</td><td align='left'>" & request.servervariables(name) & "</td></tr>")
        next
        %>
    </table>
    </center>
    
    
    </body>
    </html>
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  3. #3
    In particolare dovrebbe interessarti

    REMOTE_ADDR

    che è l'indirizzo IP della macchina collegata....
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  4. #4

    mmm.....

    ho provato..ma nn compare il Nome della macchina e il nome utente collegato in quel momento...

  5. #5
    Il nome della macchina dovresti poterlo ricavare dalla tua configurazione di rete, il nome utente non so..........
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  6. #6
    il problema è che il codice che mi hai dato tu, lo esegue ma sulla mia macchina..per cui sono da capo..

  7. #7

    mmmhh.....

    Teorema avevi ragione...ho utilizzato le Server Variables in questo modo:

    Dim user
    user = Request.ServerVariables("LOGON_USER")
    macchina = Request.ServerVariables("REMOTE_HOST")
    response.Write(macchina)
    response.Write(user)

    il fatto è che user nn ritorna niente e macchina ritorna l'IP e nn il nome del pc, è vero il nome lo posso ricavare ma...deve essere una cosa immediata, se devo stare lì a vedere a quale macchina corrsiponde il tale ip nn finisco piu!
    E poi, nn riesco a capire perchè il nome utente nn me lo scrive..bho...

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il codice che hai postato, se avesse i permessi di esecuzione, segnalerebbe i dati della macchina su cui e' eseguito, ovvero il server, e non quelli dell'utente.

    Prova questo:
    codice:
    NomeMacchina = "" 
    On Error Resume Next 
    ip = Request.ServerVariables("REMOTE_ADDR") 
    Set Shell = Server.CreateObject("Wscript.Shell") 
    Set Fso = Server.CreateObject("Scripting.FileSystemObject") 
    Path = Server.MapPath("/public/Logs/") & "\" & Session.SessionID & ".txt" 
    Shell.run "%comspec% /c tracert " & ip & " > " & Path ,0 , True 
    ' a seconda del sistema operativo del server usare questa:
    ' Shell.run "%comspec% /c nslookup " & ip & " > " & Path ,0 , True 
    set f = Fso.OpenTextFile(Path) 
    
    ' Rilevazione instradamento 
    While not f.AtEndOfStream 
    	Riga = f.Readline 
    	If InStr(Riga,"[")>0 then
    		r = InStr(Riga,"[")
    		l = InStrRev(Riga, " ", r-2)
    		NomeMacchina = Mid(Riga,l+1,r-l-2) 
    '		NomeMacchina = Replace(NomeMacchina,Chr(13)&Chr(10),"") 
    	end if 
    Wend 
    set f = Nothing
    Fso.DeleteFile Path 
    Set Fso = Nothing
    ciao

    ps: per il nome utente, se non si e' autenticato sul server, la vedo proprio brutta... sarebbe una palese violazione della privacy se fosse possibile
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.