none
Mancato avvio script uscita RRS feed

  • Domanda

  • In un dominio W2K8, ho uno script (collocato in un repository centralizzato) che, scrivendo su un server SQL, tiene traccia degli accessi. Esso viene lanciato da GPO al logout dell'utente, e nel 90% dei casi tutto funziona, così come se lanciato manualmente. In alcuni rari casi invece lo script non viene eseguito (dovrebbe anche cancellare un cookie locale, che invece rimane). Qualcuno ha idea del motivo per cui ciò accade?

    Grazie a coloro che mi risponderanno.


    lunedì 8 luglio 2013 19:45

Risposte

  • Ciao, una domando posta in questi termini potrebbe avere moltissime risposte (file bloccato, file mancante, time-out, etc.). Dovresti dare qualche indicazione in più su quello che realmente esegue lo script e magari, se non è complesso, postarlo.

    Ti consiglio di verificare gli eventi di sistema in concomitanza della mancata esecuzione dello script, verificare se il problema si riscontra con lo stesso utente o gruppo di utenti, oppure dopo qualche operazione specifica (es. esecuzione di un backup).

    Saluti

    Nino 

    • Contrassegnato come risposta Anca Popa lunedì 15 luglio 2013 13:11
    martedì 9 luglio 2013 05:40
    Moderatore
  • Se non hai nessuna evidenza di problemi negli eventi, potresti tentare la strada seguente

    Fixing Group Policy problems by using log files


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    • Contrassegnato come risposta Anca Popa lunedì 15 luglio 2013 13:11
    venerdì 12 luglio 2013 07:51
    Moderatore

Tutte le risposte

  • Ciao, una domando posta in questi termini potrebbe avere moltissime risposte (file bloccato, file mancante, time-out, etc.). Dovresti dare qualche indicazione in più su quello che realmente esegue lo script e magari, se non è complesso, postarlo.

    Ti consiglio di verificare gli eventi di sistema in concomitanza della mancata esecuzione dello script, verificare se il problema si riscontra con lo stesso utente o gruppo di utenti, oppure dopo qualche operazione specifica (es. esecuzione di un backup).

    Saluti

    Nino 

    • Contrassegnato come risposta Anca Popa lunedì 15 luglio 2013 13:11
    martedì 9 luglio 2013 05:40
    Moderatore
  • Lo script (in realtà un piccolo eseguibile in VB.NET), come ho scritto, invia alcuni semplici dati a un database SQL posto su un server dedicato e normalmente funziona benissimo. Il fatto che nella maggior parte dei casi funzioni regolarmente basta ad escludere alcune delle ipotesi che menzioni: se fosse inesistente non verrebbe mai eseguito, ad esempio. In rari casi non viene eseguito, ma in modo assolutamente casuale, cioè non legato a particolari utenti, gruppi di utenti, pc, orari, operazioni o contesti. Niente compare negli eventi di sistema che possa indicare malfunzionamenti.

    Ho pensato a un ritardo nella risposta della rete, ma non ho idea di dove si possa aumentare il timeout della latenza in questi casi.



    martedì 9 luglio 2013 07:11
  • non hai nessuna traccia di errore nel registro eventi del client ?

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    martedì 9 luglio 2013 15:20
    Moderatore
  • No, assolutamente niente, tutto normale, ma lo script (è un .exe) non viene lanciato.
    martedì 9 luglio 2013 15:50
  • Prova a vedere se può esserti di aiuto questa pagina:

    http://blogs.sysadmin.it/ermannog/archive/2012/05/03/script-di-login-non-eseguiti-saltuariamente.aspx

    Inoltre secondo me dovresti dotare la tua applicazione di un file di log (da eliminare dopo la scrittura eseguita con successo sul database) in modo da poter capire eventualmente esattamente in che punto si è bloccata.

    martedì 9 luglio 2013 16:33
    Moderatore
  • Prova a vedere se può esserti di aiuto questa pagina:

    http://blogs.sysadmin.it/ermannog/archive/2012/05/03/script-di-login-non-eseguiti-saltuariamente.aspx

    l'articolo di Ermanno è relativo agli script di login e non si applica a questo caso dove lo script è di logout e proprio per questo motivo non ci può essere un problema di servizi di rete non avviati.

    ciao.


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    mercoledì 10 luglio 2013 09:21
    Moderatore
  • nel codice hai un

    On Error Resume Next ?


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    mercoledì 10 luglio 2013 09:24
    Moderatore
  • Ciao, Edo

    no, la gestione degli errori avviene mediante delle "Try-Catch", che non segnalano nessun errore.

    mercoledì 10 luglio 2013 10:28
  • l'articolo di Ermanno è relativo agli script di login e non si applica a questo caso dove lo script è di logout e proprio per questo motivo non ci può essere un problema di servizi di rete non avviati.

    ciao.



    Scusate, avevo letto per errore script di login invece di logout.
    mercoledì 10 luglio 2013 13:31
    Moderatore
  • i logout sono sempre "puliti" o qualche utente toglie la presa di corrente ?

    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    giovedì 11 luglio 2013 11:18
    Moderatore
  • No, nei logs di sistema compare la solita sequenza di eventi: arresto dei servizi etc.

    Tutto normale, se non per il fatto che lo script non viene eseguito.

    giovedì 11 luglio 2013 13:46
  • Se non hai nessuna evidenza di problemi negli eventi, potresti tentare la strada seguente

    Fixing Group Policy problems by using log files


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    • Contrassegnato come risposta Anca Popa lunedì 15 luglio 2013 13:11
    venerdì 12 luglio 2013 07:51
    Moderatore
  • Ciao Victor,

    In attesa di ulteriori notizie, evidenzio gli spunti di troubleshooting sopra (potrebbero tornare validi per molti scenari simili).

    Saluti,


    Anca Popa Follow ForumTechNetIt on Twitter

    Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto viene fornito “così come è” e non comporta alcuna responsabilità da parte dell'azienda.

    lunedì 15 luglio 2013 13:10
  • Grazie, Gas.

    Vale anche per Windows 7 / Windows Server 2008 R2?

    lunedì 22 luglio 2013 11:25
  • Per 7 e 2008 cambia (vedi sotto)  . Le verifiche vanno fatte sui client dove gli utenti accendono, 2008 non lo toccherei.

    http://blogs.technet.com/b/askperf/archive/2008/03/11/group-policy-logging-on-windows-vista.aspx

    http://gplogview.codeplex.com/

    http://download.microsoft.com/download/f/2/9/f2973fb5-47f2-4411-8158-2d02d2d46d5b/gpLogView.msi


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    lunedì 22 luglio 2013 11:47
    Moderatore
  • Perfetto, allora consultando i logs degli eventi GPO in Applications and Services Logs\Microsoft\Windows\Group Policy\Operational di un pc che non ha lasciato traccia del logout utente come avrebbe dovuto, vedo:

    Nome registro: Microsoft-Windows-GroupPolicy/Operational
    Origine:       Microsoft-Windows-GroupPolicy
    Data:          25/07/2013 13:30:00
    ID evento:     5018
    Categoria attività:Nessuna
    Livello:       Informazioni
    Parole chiave:
    Utente:        SYSTEM
    Computer:      pc118.multimedia
    Descrizione:
    Script di disconnessione per MULTIMEDIA\213371 completato in 7 secondi.

    In altri termini mi dice che lo script è stato eseguito.

    Questo è già qualcosa, ma allora perché non fa ciò che dovrebbe fare?


    giovedì 25 luglio 2013 16:38
  • Le applicazioni in fase di logoff vengono terminate in automatico dal sistema (? + che una certezza è un dubbio), probabilmente il tuo applicativo è stato prematuramente terminato, i 7 secondi non gli sono bastati...

    Puoi spiegare in dettaglio cosa fa questo exe, si potrebbe ragionare su soluzioni alternative...

    Alternative:
    Per il logon e logoff si potrebbero usare gli eventi di Windows, da questi potresti alimentare il tuo sql, il cookie potrebbe essere cancellato al logon dell'utente da un altro script.

    Analisi:
    Mi chiedo, se un utente stacca il cavo di rete e poi esegue il logoff il tuo exe cosa fa? Sarebbe necessario che scrivesse qualcosa nel fs per non perdere informazioni. Se lo spegne brutalmente ancora qui gli eventi ci aiutano ultimo logon nessun logoff ma troviamo uno spegnimento "accidentale".
    Quanto impiega a completare tutte le operazioni il tuo exe (nel caso peggiore) ? E' transazionale? Le procedure sono atomiche ....

    Tecnologie x lo sviluppo:
    Si potrebbe usare anche MSQM http://technet.microsoft.com/it-it/library/cc732184.aspx ma si finirebbe nell'ambito di sviluppo  (msdn) e non più in quello sistemistico (technet)

    ciao


    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    venerdì 26 luglio 2013 16:56
    Moderatore
  • Ciao Gas,
    cerco di rispondere alle tue domande:

    - Il sistema di tracciamento delle sessioni funziona grazie a due script, uno di login e uno di logout. Il primo verifica sul server MySQL che non ci siano sessioni "aperte" dello stesso utente nello stesso giorno e, in caso negativo, crea un nuovo record. Ciascun record contiene l'identificativo dell'utente, la data, l'orario di inizio della sessione, l'orario di fine sessione e la durata della stessa. Lo script compila i primi tre campi quindi scrive un cookie locale contenente il numero del record stesso.
    L'altro script, quello di logout, che causa il problema, legge dal cookie il numero del record della sessione e lo aggiorna, scrivendo l'orario di fine e calcolando la durata della sessione. Quindi cancella il cookie e visualizza all'utente la durata della sessione svolta.

    - Se il pc viene spento bruscamente o se viene staccato il cavo di rete evidentemente nulla viene scritto sul server MySQL, sicchè la registrazione resta incompleta e devo intervenire manualmente. Gli utenti comunque sono allertati di avvertirmi qualora non ricevessero il messaggio di durata della sessione.

    - Il database è del tipo MyISAM, che non supporta le transazioni.

    - Normalmente gli script vengono completati in circa 5 secondi quello di login e circa 3 quello di logout, ma quando molti utenti accedono contemporaneamente al server MySQL i tempi possono dilatarsi parecchio, quindi in effetti lo script potrebbe essere stato terminato dal sistema. Di default Windows al logout termina tutte le applicazioni in attesa, anche se non so dopo quanto tempo. Ho visto però che esiste una policy che permette di modificare questo comportamento e che in pratica permette a Windows di aspettare fino a quando l'applicazione non risponde. L'ho abilitata e ora vediamo se il problema si ripresenta. Se era un problema di timeout (visto che si propone più facilmente quando tutti gli utenti insieme si disconnettono) questo dovrebbe risolvere.
















    • Modificato Victor Lemarsis martedì 30 luglio 2013 08:47 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    lunedì 29 luglio 2013 09:02