Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
AIUTO eseguire file .bat in rete
venerdì 18 luglio 2008 - 11.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
ven 18 lug 2008 - 11:33
Ciao a tutti,
mi servirebbe eseguire un file .bat situata nella rete. Mi spiego meglio:
Dispongo di un WEBSERVER con su Windows XP Pro e IIS istallati;
ho creato una Button in una pagina aspx con il seguente codice
Dim WshShell
Dim User_Corrente As String = UCase(Session.Item("User"))
WshShell = CreateObject("WScript.Shell")
WshShell.Run("\\WEBSERVER\Cartella_Prova\message.bat", 1)
WshShell = Nothing
Nel file message.bat ho scritto semplicemente x prova Calc.exe, questo per far aprire la calc di windows.
In locale funziona tutto, una volta pubblicato se clicco sul button non succede niente.
In cosa sbaglio?
Grazie in anticipo
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
ven 18 lug 2008 - 11:44
>Ciao a tutti,
Ciao
>mi servirebbe eseguire un file .bat situata nella rete.
>Mi spiego meglio:
>Dispongo di un WEBSERVER con su Windows XP Pro e IIS istallati;
>ho creato una Button in una pagina aspx con il seguente codice
>
> Dim WshShell
>Dim User_Corrente As String = UCase(Session.Item("User"))
> WshShell = CreateObject("WScript.Shell")
>WshShell.Run("\\WEBSERVER\Cartella_Prova\message.bat", 1)
> WshShell = Nothing
>
>Nel file message.bat ho scritto semplicemente x prova Calc.exe,
>questo per far aprire la calc di windows.
>
Questo codice è agganciato al click lato client giusto?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
ven 18 lug 2008 - 12:08
In che senso?
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
ven 18 lug 2008 - 12:36
>In che senso?
Quando inserisci un bottone in una pagina web puoi associargli due tipologie di eventi click:
- quello lato client: agganci un javascript o un vbscript per explorer da eseguire direttamente all'interno del browser
- quello lato server: la pagina effettua un post su server dove tu puoi eseguire del codice
Se la chiamata al bat la fai lato client allora, considerando il tuo bat attuale, la calcolatrice sul client e l'utente potrà vederla, ma se la esegui lato server l'utente non vedrà assolutamente niente.
La scelta di usare una soluzione o l'altra dipende dal risultato che ti aspetti. Ovvimente se fai una prova sullo stesso pc, quindi browser e webserver sulla stessa macchina vedrai i risultati della chiamata anche se la effettui lato server, ma semplicemente perchè hai tutto sul tuo pc. In un ambiente di produzione il webserver è su un'altra macchina.
Puoi descriverci che cosa vorresti fare con il bat che lanci?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
ven 18 lug 2008 - 14:23
<<Quando inserisci un bottone in una pagina web puoi associargli due tipologie di eventi click:
- quello lato client: agganci un javascript o un vbscript per explorer da eseguire direttamente all'interno del browser
- quello lato server: la pagina effettua un post su server dove tu puoi eseguire del codice
Se la chiamata al bat la fai lato client allora, considerando il tuo bat attuale, la calcolatrice sul client e l'utente potrà vederla, ma se la esegui lato server l'utente non vedrà assolutamente niente.>>
Infatti, pubblicando il sito, aprendolo come http//localhost/AppProva, quindi lato server non vedo nulla, clicco sul bottone e non esegue nulla.
<<Puoi descriverci che cosa vorresti fare con il bat che lanci?>>
Io devo realizzarlo lato server, questa è un bat di prova, che apre un'applicazione semplice che è il Calc.
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
ven 18 lug 2008 - 14:36
>Io devo realizzarlo lato server, questa è un bat di prova, che
>apre un'applicazione semplice che è il Calc.
Per lanciare un bat allora usa il metodo Process.Start del framework:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx
Devi poi verificare di avere i permessi per lanciare il bat ed eventualmente richiama un processo che fa la copia di un file invece che la calcolatrice, così riesci a verificare meglio che sia stato eseguito correttamente.
Un link che potrebbe esserti utile:
http://support.microsoft.com/kb/555134
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
ven 18 lug 2008 - 15:53
Credevo di fare una prova semplice. Passiamo al caso specifico. Adesso nel mio caso specifico ho un'altro problema. Riepilogo come è la mia situazione. Possiedo un WEBSERVER che vi ho già descritto prima le caratteristiche. Le operazioni devono essere effettuate su un'altro pc, chiamato PCDATI, qui sono situate tabelle che utilizzo per diverse operazioni, e fin qui tutto ok.
Il bath mi serviva per eseguire un programma TTS che dal testo converte in audio, salvando il tutto sul PCDATI.
Quando richiamo il file bat mi da il seguente errore:
"Errore durante l'accesso: nome utente sconosciuto o password non valida. (Eccezione da HRESULT: 0x8007052E)"
In questo caso non mi serve nessuna apertura di file come nel bat di prova ma solo l'eseguzione di questo bat.
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
ven 18 lug 2008 - 16:25
Penso che tu abbia dei permessi di accesso al file. I due pc sono in un dominio?
Se si puoi utilizzare l'impersonate di asp.net (
http://msdn.microsoft.com/en-us/library/aa292118.aspx
) e utilizzare un utente di rete che ha i permessi per poter lanciare il bat sull'altro server.
Altrimenti cambia il tipo di approccio. Lancia un bat sul tuo webserver che poi richiama il comando sul server remoto, magari sfruttando il comando runas e specificando utente e password per lanciare il comando correttamente
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
ven 18 lug 2008 - 16:51
forse non ho specificato che sono un principiante in materia, mi scuso x l'ignoranza ma non ci sto capendo nulla.
Io L'operazione Impersonate = "True" ed la replica di un account con autorizzazioni da administrator l'avevo gia fatto per potermi collegare al database in rete su PC-DATi e dopo tante prove sono riuscito ad effettuare query sul db.
Adesso x il bat ho il problema simile, in cosa sto sbagliando?
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
lun 21 lug 2008 - 09:42
>forse non ho specificato che sono un principiante in materia,
>mi scuso x l'ignoranza ma non ci sto capendo nulla.
>
>Io L'operazione Impersonate = "True" ed la replica di un account
>con autorizzazioni da administrator l'avevo gia fatto per potermi
>collegare al database in rete su PC-DATi e dopo tante prove sono
>riuscito ad effettuare query sul db.
>
>Adesso x il bat ho il problema simile, in cosa sto sbagliando?
L'utente che hai specificato per l'impersonate è un utente di dominio o un'administrator locale?
Hai controllato che username e password fossero corretti? Il fatto che dica "nome utente sconosciuto o password non valida" mi fa sorgere qualche dubbio..
Se sei in dominio si tratta di verificare i permessi di accesso al file della share, altrimenti se non sei in dominio dobbiamo valutare come poter gestire la situazione
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
lun 21 lug 2008 - 11:27
L'utente che hai specificato per l'impersonate è un utente di dominio o un'administrator locale?
Non ho realizzato nessun dominio, la mia è una reta molto semplice: 2 PC collegati in rete locale, PC-DATI e WEBSERVER, facenti parte di uno stesso gruppo di lavoro. L'account administrator del PC-DATI sono 2, "administrator con PW prova_pw" ed un altro account creato proprio per IIS ASPNET senza password.
Io nella cartella condivisa la visualizzo regolarmente, anche perchè ho memorizzato all'accesso Account e password. Poi per in permessi di accesso io all'utente che utilizzo ho dato livello administrator con possibilità di lettura e modifica.
Giusto un dubbio, quando mi collego alla cartella condivisa via web, con quale account mi collega? Non è quello che ho creato in IIS?
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
lun 21 lug 2008 - 12:03
Se specifichi l'impersonate puoi impostare anche lo username e la password dell'utente che vuoi impersonificare. Comunque essendo due pc distinti non in dominio l'utente rimarrebbe locale. A scopo informativo sul sito del supporto microsoft trovi un esempio su come fare l'impersonate da codice solo per una determinata chiamata (ad esempio l'esecuzione del bat), senza far girare tutto il sito con quell'utente (
http://support.microsoft.com/kb/306158
).
Mi spiego meglio. Sul pc che contiene il bat hai creato un utente. Questo utente ha i permessi per accedere al file. Supponiamo ad esempio che l'utente si chiami WebIIS.
Il tuo problema adesso è far girare l'applicazione web con un utente che possa accedere all'altro pc. Se sul web specifichi i dati dell'utente WebIIS ti dirà che l'utente non esiste, ed in effetti sul web server non esiste un utente con quelle credenziali perchè è stato creato sull'altro pc.
Una prova che puoi fare è quella di creare un utente identico anche sul webserver (stessa username e stessa password) e impostare questo utente come utente da impersonificare.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
lun 21 lug 2008 - 15:59
Continua a darmi lo stesso errore, non so che fare!!!
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 23 lug 2008 - 11:05
Ho formattato il Web Server e ho dato come account lo stesso del PC-DATI così quando comunicano non c'è bisogno di inserire utente e password.
Il problema persiste. cosa devo fare, non so dove sbattere la testa...
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
mer 23 lug 2008 - 12:53
Fai una prova banale, prova ad entrare sul web server con l'utente con cui stai facendo girare asp.net e prova a lanciare il bat per vedere cosa succede
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
gio 24 lug 2008 - 11:31
Dalla rete eseguendo il Bat funziona benissimo....
rossimarko
Profilo
| Guru
1.173
messaggi | Data Invio:
gio 24 lug 2008 - 12:10
Un tentativo che puoi fare è chiamare un comando locale (un bat o un vbs) che poi si occupi di fare la chiamata remota con un comando runas.
Cerca in rete qualche script vbs o qualche tool che ti faccia specificare la password tipo questi:
http://www.softtreetech.com/24x7/archive/53.htm
,
http://www.sysadmin.it/pages/script/script.asp?ID=136
e fai delle prove.
Prima verifica che vada lanciandolo manualmente e poi prova ad eseguirlo dal processo asp.net (ovviamente deve essere salvato il locale sul webserver)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !