none
stampanti problematiche... RRS feed

  • Domanda

  • Ho letto un sacco di forum e argomenti vari riguardo a 2003 server con i servizi terminal e la stampa con stampanti RDP. La mia conclusione è che 2003 ha molti problemi a gestire la stampa RDP nonostante si faccia attenzione ad installare i driver specifici o geerici a 64 bit per il sistema operativo (il mio è un 2003 R2 64bit) e sui client (xp o 7 a 32bit o 64). 

    Il problema comune è che lo spooler di stampa ogni tanto si "intasa" anche solo con una stampa di pochi 200/300 Kb per un motivo non definito e va a bloccare tutti i processi di stampa, rallentando in modo inspiegabile il server. Si riavvia lo spooler e magicamente tutto torna OK. raramente ho dovuto riavviare il server.

    Ho fatto un .bat che riavvia lo spooler tutte le sere ma non serve a nulla, ho provato ad installare UPHcleaner (su consiglio di qualcuno) ma purtroppo non ho potuto verificarne l'eventuale efficacia in quanto non c'è verso di installarlo ... il processo di installazione si blocca verso la fine e lo devo interrompere e anche dopo il riavvio del server non si riesce a caricare.... mentre altri programmi vengono installati senza problemi.

    Sul server sono installate localmente solo 2 stampanti, una PDF e una laserjet 4, tutte le altre stampanti (circa un 20 modelli diversi) vengono aggiunte dalle 10/12 connessioni RDP allo spooler di stampa del server nel quale sono caricati i driver. mi è capitato spesso di entrare di sera, con gli user tutti disconnessi, e trovare nello spooler decine e decine di stampanti ancora presenti e dulicate (anche tripleicate, quadruplicate, ecc) da sessioni RDP precedenti (gli ID sessione erano diversi ma la stampante la stessa, probabilmente a causa di sessioni non chiuse correttamente).

    Esiste il modo di far eliminare queste stamanti dopo la disconnessione? con il riavvio dello spooler questo non avviene, serve: o una cancellazione "manuale" oppure un riavvio del server. Probabilmente con UPHcleaner questo problema sarebbe risolto in quanto, se non ho capito male, dovrebbe cancellare tutti i temporanei delle sessioni senza lasciarle appese, giusto? Nel caso c'è una buona anima che mi sa dare un consiglio o un comando per forzare una installazione di UPHcleaner a 64 bit? O il modo di forzare la chiusura delle sessioni? nelle politiche user e macchina ho inserito degli accorgimenti (es dopo 3 ore chiudi la sessione se disconessa ... ma questo non avviene comunque).

    Altrimenti ho paura che la mia unica soluzione sarà quella di provare ad utilizzare un software di terze parti per la stampa con RDP senza driver specifici.

    Vi ringrazio e mi scuso se ho postato l'ennesima richiesta riguardo questo problema che però, attualmente, è ancora senza una "sentenza" definitiva... eheheh...

    grazie ancora.


    spackmeier

    venerdì 20 aprile 2012 23:40

Risposte

  • Ciao, oltre quello detto da Nino (OT: ciao Nino come va?). Posso darti un'altra dritta. Mi succedeva la stessa cosa da un cliente che ha un gestionale che usa in terminal server (in questo caso si chiama Wondel) che usa VB come librerie. Ignoro il motivo ma se la stampante installata sul server si chiama \\nomepc\nomeprinter oppure anche solo nomeprinter complesso (tipo hp3350_aio) il gestionale, random blocca lo spooler. Cambiando l'installazione delle stampanti e mettendole come stampante locale con percorso di rete e nome semplice tipo HPLASERJET si è risolto tutto. Ora magari non è il tuo caso, ma è da valutare, perchè alcuni gestionali soprattutto adattati nel tempo spesso fanno un po i capricci con gli spooler dove ci sono anche stampanti pdf poi se non sono perfetti di loro si bloccano in maniera randomica.

    P.S Il problema si verificava anche se sul server erano installate stampanti non più esistenti sulla rete nel momento in cui lanciavi la stampa e cercava la printer. Pulendo tutto e lasciando solo quelle effettive sulla rete (senza l'autodiscovery) con nomi semplici non si è più bloccato da 6 mesi a questa parte.

    A.

    • Contrassegnato come risposta spackmeier lunedì 30 aprile 2012 16:55
    sabato 21 aprile 2012 09:30
    Moderatore
  • Lo script lo puoi pianificare la notte...

    anzi pianifichi il seguente RRDP-Session.cmd  ho aggiunto anche il riavvio dello spooler. Ma temo che non risolva, l'operazione dovrebbe essere equivalente al reset impostato con i criteri locali. Ma tentar non nuoce.

    Non ho capito se sei riuscito ad installare UPHcleaner x64 dal link che ti avevo dato. 

    @echo off
    :: RRDP-Session.cmd
    :: Reset all Rdp sessione
    :: by Gas
    setlocal
    :: *** fermo lo spool
    sc stop spooler
    for /f "tokens=2 delims=# " %%S in ('query session^|findstr "#"') do (
      echo Reset session: %%S
      rwinsta rdp-tcp#%%S
      )
    :: *** avvio lo spooler
    sc start spooler


    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!


    martedì 24 aprile 2012 19:50
    Moderatore

Tutte le risposte

  • Ciao Spackmeier, un pò troppi problemi su sto server :)

    Se proviamo a suddividere il problema in problemi più elementari forse ne tiriamo fuori qualcosa.

    • Io partirei chiedendoti di dare qualche info all'infrastruttura, in particolare al num si server ed ai ruoli installati.
    • Seconda domanda, gli utenti che si connettono in terminal lo fanno attraverso PC di dominio o sono esterni
    • Puoi postare le impostazioni utilizzate per settare la disconnessione dei client
    • Ovviamente i drivers installati sul server coincidono perfettamente in versione/release a quelli installati sui client

    Saluti

    Nino

    sabato 21 aprile 2012 06:11
    Moderatore
  • Ciao, oltre quello detto da Nino (OT: ciao Nino come va?). Posso darti un'altra dritta. Mi succedeva la stessa cosa da un cliente che ha un gestionale che usa in terminal server (in questo caso si chiama Wondel) che usa VB come librerie. Ignoro il motivo ma se la stampante installata sul server si chiama \\nomepc\nomeprinter oppure anche solo nomeprinter complesso (tipo hp3350_aio) il gestionale, random blocca lo spooler. Cambiando l'installazione delle stampanti e mettendole come stampante locale con percorso di rete e nome semplice tipo HPLASERJET si è risolto tutto. Ora magari non è il tuo caso, ma è da valutare, perchè alcuni gestionali soprattutto adattati nel tempo spesso fanno un po i capricci con gli spooler dove ci sono anche stampanti pdf poi se non sono perfetti di loro si bloccano in maniera randomica.

    P.S Il problema si verificava anche se sul server erano installate stampanti non più esistenti sulla rete nel momento in cui lanciavi la stampa e cercava la printer. Pulendo tutto e lasciando solo quelle effettive sulla rete (senza l'autodiscovery) con nomi semplici non si è più bloccato da 6 mesi a questa parte.

    A.

    • Contrassegnato come risposta spackmeier lunedì 30 aprile 2012 16:55
    sabato 21 aprile 2012 09:30
    Moderatore
  • Purtroppo la stampa con sistemi operativi a x64 risulta spesso critica, i driver sono relativamente "giovani" con poca storia alle spalle e potrebbero avere problemi di stabilità.

    Riguardo uphclean non sono un sostenitore, ma sembra che possa servire. Qui trovi la versione x64 (la x32 non è utilizzabile con so x64)
    http://blogs.technet.com/b/uphclean/archive/2008/10/31/uphclean-v2-0-build-2-0-49-0-beta-for-64-bit-platform-operating-system.aspx

    Se vuoi, puoi provare ad aggiungere al tuo script queste poche linee che resettano tutte le sessioni rdp aperte (anche se le  GPO dovrebbero bastare)

    @echo off
    :: RRDP-Session.cmd
    :: Reset all Rdp sessione
    :: by Gas
    setlocal
    for /f "tokens=2 delims=# " %%S in ('query session^|findstr "#"') do (
      echo Reset session: %%S
      rwinsta rdp-tcp#%%S
      )

    Ciao

    Gas



    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!


    sabato 21 aprile 2012 13:23
    Moderatore
  • Gentilissimo, questa situazione è molto semplice:

    • un server 2003 64Bit r2 (no dominio) con utenti caricati localmente che permette la connessione RDP a circa 10/12 utenti per utilizzare un gestionale installato localmente e che lavora, sempre localmente, su un DB sql.
    • Gli utenti si collegano tramite RDP al server con loro computer, no dominio, oltre al fatto che il server stesso non ha dominio. ovviamente lo user e la pwd di accesso hanno un minimo di complessità.
    • questa terza domanda è un po' piu complessa, ho impostato nelle politiche locali e nel profilo utente di teminare una sessione disconnessa dopo 3 ore, di limitare una sessione inattiva a 3 ore e di disconnettere la sessione quando si raggiunge il limite o la connessione è interrotta. Ripeto queste impostazioni si possono settare sia allo user (cosa che ho fatto) sia nei criteri locali "configurazione computer/modelli amministrativi/componenti di Windows/servizi Terminal/sessioni"
    • I driver sono allineati altrimenti la stampante non viene vista, ho disabilitato le fallback perchè altrimenti venivano portate tutte le stampanti locali (e ci sono alcuni client che ne hanno un sacco) quindi adesso solo quelle che servono e nel caso vengono installate con il driver generico sul pc client.

    Spero di averti dato tutte le informazioni richieste.


    spackmeier


    • Modificato spackmeier martedì 24 aprile 2012 15:27
    martedì 24 aprile 2012 15:21
  • La tua è una ottima osservazione e ti ringrazio. Sul mio server ho installato localmente solo una laserjet4 plus su porta parallela (realmente la stampante non c'è ma il sistemista mi ha consigliato di lasciarla altrimenti il gestione impazzisce se non trova neache una stampante....) e anche una stampante PDF. Le altre stampanti arrivano tutte tramite RDP.

    A questo proposito ho disabilitato le fallback e lasciato solo quelle che usano un driver generico presente in windows server 2003 64bit oppure delle quali ho installato un driver specifico scaricato dal sito del produttore.

    In merito alle stampanti con nomi complessi... lo sono tutte ma essendo collegate localmente al pc o al limite tramite una scheda di rete (ma sempre collegate al pc) vengono portate nel server tramite RDP e sono quindi dirette. Ho però che user che hanno una sola stampante USB che è condivisa sul pc e installata sul secondo pc ed entrambi vanno in RDP sul server, quindi il secondo pc che lancia la stampa dal server fa questo giro: server terminal, Pc2, Pc1 e stampa via USB. Ho detto al cliente di non stampare da questa macchina, vediamo come si comporta.

    Ti faccio sapere!


    spackmeier

    martedì 24 aprile 2012 15:27
  • Ti ringrazio, vista la difficoltà che ho avuto nell'installarlo vorrei evitare di pasticciare e riprovare.

    Detto questo sarei interessato a provare il tuo script, come lo posso utilizzre? Lo metto in un file .bat e lo eseguo (magari di notte) tramite le operazioni pianificate?

    Effettivamente ho pianificato un .bat che mi riavvia lo spooler tutte le notti tanto per pulire, ma spesso mi trovo stampanti di vecchie sessioni ancora attive nello spooler e non vengono rimosse se non riavvio il server. Ho controllato ma non c'è modo di riavviare i servizi terminal in modo manuale e il tuo script potrebbe risolvere il problema al posto dell'UPHcleaner ... il problema è solo capire il modo corretto e piu efficace per utilizzarlo.

    grazie.


    spackmeier

    martedì 24 aprile 2012 15:31
  • Lo script lo puoi pianificare la notte...

    anzi pianifichi il seguente RRDP-Session.cmd  ho aggiunto anche il riavvio dello spooler. Ma temo che non risolva, l'operazione dovrebbe essere equivalente al reset impostato con i criteri locali. Ma tentar non nuoce.

    Non ho capito se sei riuscito ad installare UPHcleaner x64 dal link che ti avevo dato. 

    @echo off
    :: RRDP-Session.cmd
    :: Reset all Rdp sessione
    :: by Gas
    setlocal
    :: *** fermo lo spool
    sc stop spooler
    for /f "tokens=2 delims=# " %%S in ('query session^|findstr "#"') do (
      echo Reset session: %%S
      rwinsta rdp-tcp#%%S
      )
    :: *** avvio lo spooler
    sc start spooler


    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!


    martedì 24 aprile 2012 19:50
    Moderatore
  • bello questo script, quindi lo incolto in un .bat e lo faccio eseguire in operazioni pianificate? non ho privato a installare il programma, avevo provato 2 versioni per il 64 bit ma non si installava ... se il tuo script va ... meglio! giovedì lo aggiungo e vediamo cosa fa. senti da dove posso iniziare per programmare questi script? vorrei imparare, hai qualche suggerimento? grazie, vi faccio sapere prossimamente!

    spackmeier

    martedì 24 aprile 2012 22:20
  • Mettigli l'estensione .cmd allo script .

    Per gli script ecco qua

    Informazioni sugli script
    http://technet.microsoft.com/it-it/scriptcenter/dd793612.aspx

    Scripting vbscript
    http://msdn.microsoft.com/en-us/library/ms950396.aspx

    Using batch files
    http://technet.microsoft.com/en-us/library/bb490869.aspx

    for DOS, OS/2, Windows 95/98, NT 4, 2000 and XP...
    http://www.robvanderwoude.com/batchfiles.php

     Ciao Gas


    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!

    martedì 24 aprile 2012 22:58
    Moderatore
  • Ok adesso lo implemento e lo metto sul server per farlo eseguire durante la notte.

    Se per caso lo provo durante il giorno, a parte il riavvio dello spooler che causerebbe un certo disagio agli user che stanno lavorando, cosa succede alle sessioni in uso? Vengono reimpostate e quindi tutte disconnesse oppure lo script lavora solo su quelle chiuse e sospese?

    grazie.


    spackmeier

    giovedì 26 aprile 2012 09:45
  • Ho inserito il tuo script come mi hai indicato, ovvero copiato in un file txt, rinominato il .cmd e inserito in una pianificazione.

    Tra l'altro ho anche una bella sessione disconnessa che non si deve essere chiusa bene ed è li sospesa ormai da 1 oretta... verifico se questa sera la butta giu.

    Ti aggiorno, grazie.


    spackmeier

    giovedì 26 aprile 2012 13:54
  • Ciao,

    Intanto mi permetto di cambiare il tipo del thread visto che la discussione è ancora in corso e fino ad ulteriori notizie (speriamo che siano buone).

    Grazie a tutti dell’interessamento,


    Anca Popa Follow ForumTechNetIt on Twitter

    La Conferenza Italiana sulla Virtualizzazione

    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. 

    venerdì 27 aprile 2012 10:35
  • Ok come meglio crede, grazie.

    Ho provato lo script, sembra funzionare anche se lo spooler presentava ancora delle stampanti non rimosse dopo la disconnessione.

    L'ho lanciato mentre ero connesso al server in RDP e mi ha giustamente buttato fuori, poi mi sono riloggato e lo spooler non era ripartito, ho dovuto farlo ripartire a mano. Nel caso posso eventualmente usare ,sempre facendolo partire dalla operazioni pianificate, solo il primo script per il reset delle connessioni?

    @echo off
    :: RRDP-Session.cmd
    :: Reset all Rdp sessione
    :: by Gas
    setlocal
    for /f "tokens=2 delims=# " %%S in ('query session^|findstr "#"') do (
      echo Reset session: %%S
      rwinsta rdp-tcp#%%S
      )

    e qualche minuti dopo riavviare lo spooler da riga di comando, che ne dici? tenedo i due processi separati non si dovrebbe bloccare. In ogni caso il tuo script dovrebbe resettare tutte le connessioni terminal quindi dovrebbero ripartire tutte da un ID basso (1 -2 -3 ecc..) corretto? Perchè se così fosse ho notato che le sessioni che si sono avviare oggi partono tutti dal 30 in avanti come id, mentre quando riavvio il server partono dalla 1.

    Grazie e buon ponte a chi lo fa, io lunedì sono online!


    spackmeier

    venerdì 27 aprile 2012 11:10
  • L'ho lanciato mentre ero connesso al server in RDP e mi ha giustamente buttato fuori, poi mi sono riloggato e lo spooler non era ripartito, ho dovuto farlo ripartire a mano. Nel caso posso eventualmente usare ,sempre facendolo partire dalla operazioni pianificate, solo il primo script per il reset delle connessioni?

    Il secondo script era stato pensato per non essere eseguito in una sessione terminal:

    1. ferma lo spooler sc stop spooler
    2. chiude tutte le sessioni rdp (se lanciato da una sessione rdp lo script non riesce a teminare, viene interrotto dalla chiusura forzata e non raggiunge il punto 3 ecco spiegato perchè hai trovato lo spooler non avviato )
    3. riavvia lo spooler sc start spooler

    In ogni caso il tuo script dovrebbe resettare tutte le connessioni terminal quindi dovrebbero ripartire tutte da un ID basso (1 -2 -3 ecc..) corretto?

    Corretto, il mio script chiude tutte le sessioni, non resetta il servizio di conseguenza i relativi contatori non sono azzerati

    Ho scritto un batch che forza il riavvio di terminal server (in 2003 non è stato previsto) appena finisco il test lo pubblico...


    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!


    venerdì 27 aprile 2012 19:57
    Moderatore
  • SI certo, io l'ho pianificato con terminal server ma l'ho fatto eseguire di notte dall'administrator locale. Ho provato a farlo partire da terminal per vedere cosa succedeva ma effettivamente, ora che ci penso, si blocca in quanto lo spooler viene avviato dopo e chiudendo RDP giustamente perde la sessione e i relativi dati.

    Detto questo è un paio di giorni che il tuo script gira e per ora, tutte le mattina, il servizio RDP è ripartito regolare e anche lo spooler.

    Mi rimane però un problema sulle stampanti in quanto alcune, dopo la disconnessione del client, non vengono cancellate dallo spooler di stampa e mi restano ad oggi 2-3 stampanti con lo stesso nome riportate da sessioni precedenti. Questo numero tendenzialmente salirà con il passare dei giorni.

    Il sistema per cancellarle è: manualmente oppure riavviando il server (il riavvio dello spooler non le cancella).

    Ho chiesto agli utenti e mi hanno detto che qualche volta capita che la sessione non si disconnette ma resta appesa, quindi dopo qualche minuto di attesa chiudono con la x la sessione RDP "in disconnessione" oppure spengono il loro pc (chiudendo RDP). Per questo motivo credo che la sessione resta appesa e restano "collegate le stampanti".

    Cosa si può fare per questo? Non credo dipenda dal client anche se sembra che siano sempre gli stessi 2/3 utenti ad avere maggiormente il problema mentre per gli altri capita di rado.... credo sia il server al quale resta appeso qualche servizio... tu cosa ne pensi? Tieni anche presente che i profili degli utenti sono uguali per tutti.

    Grazie.


    spackmeier

    lunedì 30 aprile 2012 09:46
  • Proverei con altri driver a vedere se i problemi si ripetono

    Appena posso metto lo script che forza il riavvio di TS

    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!

    lunedì 30 aprile 2012 15:12
    Moderatore
  • Guarda ho seguito l'indicazione di Vannini e non sto facendo stampare da una postazione che usava il collegamento ad una stampante condivisa via Wireless su un pc che la utilizza collegata USB, il tutto tenedo presente che è una macchina uso "home" senza driver 64 bit, quindi uso dei generici HP.

    Da allora, oltre a questo, ho inserito anche il tuo script e non ho avuto blocchi (scongiuri scongiuri ecc...) heheheee... speriamo!

    In ogni caso sto valutando di cambiare tecnologia per la stampa passando a software di print che comprimono i dati e sostituiscono lo spooler locale.

    Aggiorno la situazione per verificare se il tutto si è stabilizzato.

    Grazie.


    spackmeier

    lunedì 30 aprile 2012 16:58
  • In ogni caso sto valutando di cambiare tecnologia per la stampa passando a software di print che comprimono i dati e sostituiscono lo spooler locale.

    Se i problemi sono di stabilità, dubito fortemente che sia una soluzione, ma solo una rogna su rogna! Se invece  hai dei problemi di performance su sedi remote con poca banda, potebbe diventare anche una opzione percorribile.

    Ciao Gas

      

    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!

    lunedì 30 aprile 2012 17:43
    Moderatore
  • A dir la verità con un sistema di print tramite dei driver di "default" o "standard", tipo ThinPrint ecc, dovrei risolvere il problema delle stampanti che alla fine è quello che mi blocca il server. Il sistema lavora con un driver generico che porta i dati, sempre tramite la sessione rdp, al client e sulla stampante locale quindi non utilizza lo spooler del server (che si blocca se ci sono anomalie!).

    Oltre a questo permette una stampa piu rapida in quanto non esplode il file come fa lo spooler del server che poi invia al client RDP per la stampa... ma manda il file direttamente, è poi il client che lo elabora quindi lo spooler del server non fa praticamente nulla.

    Almeno questo è quello che mi ha spiegato il tecnico con il quale sto prendendo contatti per capire il funzionamento e soprattutto il costo.... loro me lo consigliano in quanto ottimizza molto la banda, permette stampe rapide e risolve i problemi di spooler di stampa. Se lo provo sicuramente ve lo faccio sapere!


    spackmeier

    mercoledì 2 maggio 2012 09:14
  • Oggi è successa una anomalia, lo spooler non è ripartito e il motivo, secondo me, è una stampa lanciata su una ptr Hp di una vecchia sessione che ho provato a cancellare ed è rimasta appena in "eliminazione" sia per quanto riguarda la coda sia per la eliminazione della stampa.

    Ho anche verificato una cosa interessante, le stampanti replicate e che non vengono cancellate sono tutte HP. Altre stampanti di altre marche non si comportano in questo modo... per esempio ho un pc che sistematicamente lascia connessa una Hp 2020 ogni volta che si disconnette, ma ha anche una sharp che non viene mai rilasciata. Allo stesso modo altri utenti.

    Potrebbe essere un problema specifico delle Hp? proverò a fare un aggiornamento del driver....

    spackmeier


    • Modificato spackmeier giovedì 3 maggio 2012 09:45
    giovedì 3 maggio 2012 09:45