Batch: migrazione verso UltraVNC 1.0.6.0 (PRE)

| |

Batch: migrazione verso UltraVNC 1.0.6.0 (PRE) 1Ricordate il post riguardante la migrazione di massa verso UltraVNC? Ho avuto modo di notare un comportamento anomalo da un cliente. Il concetto si riassume in: “Winvnc.exe va in crash ogni qual volta si tenta di aprire una finestra di Explorer” (non il browser, l’esplora risorse di Windows ;)) … nella casistica migliore si otteneva un freeze della finestra client per poi subire il “Socket error” nel caso in cui si tentasse la riconnessione.

Provate ad immaginare la felicità dell’utente ogni qual volta c’era da avviare un PsKill da remoto per buttare giù i processi appesi di winvnc.exe nell’attesa di avviarne uno nuovo funzionante …

Tentando di non migrare più postazioni possibili (dove ho appositamente lasciato RealVNC 4 o UltraVNC 1.0.2) e tenendo sotto costante controllo il forum di UltraVNC sono arrivato a testare il server (ed il viewer) della versione 1.0.6.0, non ancora ufficialmente rilasciata (quindi, prendetela come un “as-is” senza troppe garanzie, personalmente posso dirvi che funziona correttamente).

# cambio di programma

A monte c’era una richiesta più complessa dell’ultima volta. Lo script andrà inserito al logon, tra una mappatura di disco di rete ed una stampante per capirci, ciò vuol dire che dovrà essere capace di confrontare la versione del PC con quella sul server e decidere di aggiornare solo nel caso in cui quest’ultima sia più recente della prima controllata. Per questo motivo ho deciso di ricontrollare lo script, migliorarlo laddove fosse possibile e inserire il nuovo controllo a monte per abbandonare il batch nel caso in cui questo risulti “inutile“. Vediamo nello specifico le modifiche …

Il codice iniziale era stato pubblicato qui:

dev.gxware.org/?15

contrariamente al nuovo pubblicato invece su:

dev.gxware.org/?17

Il controllo che si occupa di confrontare la versione del server e –di conseguenza– decidere il da farsi è il seguente:

fc %programfiles%\UltraVNC\winvnc.exe \\NOME_FILESERVER\Install\Workstation\uvnc_silent\1060_pre\winvnc.exe > nul
IF ERRORLEVEL 1 goto STOPSERVIZI

fc” è un comando riconosciuto da DOS, la documentazione è disponibile a questo indirizzo:

computerhope.com/fchlp.htm

Permette di confrontare due file (qualsiasi) permettendomi così di capire se la versione del server è pari a quella della macchina locale e reagendo –di conseguenza– diversamente a seconda della risposta ottenuta. Il “goto STOPSERVIZI” viene infatti richiamato solo ed esclusivamente se il risultato del confronto dice che le versioni differiscono tra di loro.

L’altra modifica è presto detta / fatta, si tratta dell’installazione full di una versione 1.0.5.6 riconosciuta come stable dagli sviluppatori del tool di controllo remoto, alla quale verranno poi modificate “a cuore aperto” le versioni di server e client portandole sul ramo “pre” della prossima 1.0.6.0:

:INSTALL
echo.
echo *** Installazione nuova versione UltraVNC ***
echo.
if not exist %programfiles%\UltraVNC mkdir %programfiles%\UltraVNC\
copy \\NOME_FILESERVER\Install\Workstation\uvnc_silent\ultravnc.ini "%programfiles%\UltraVNC"
"\\NOME_FILESERVER\Install\Workstation\uvnc_silent\UltraVNC_1.0.5.6_Setup.exe" /verysilent /loadinf=\\NOME_FILESERVER\Install\Workstation\uvnc_silent\ultravnc.inf

echo.
echo *** Sovrascrittura con file pre-release 1060 ***
echo.
cd %programfiles%\UltraVNC
move winvnc.exe winvnc.exe.bak
move vncviewer.exe vncviewer.exe.bak
copy \\NOME_FILESERVER\Install\Workstation\uvnc_silent\1060_pre\winvnc.exe %programfiles%\UltraVNC\
copy \\NOME_FILESERVER\Install\Workstation\uvnc_silent\1060_pre\vncviewer.exe %programfiles%\UltraVNC\
cd \
cd %programfiles%\UltraVNC
start winvnc.exe
goto FINE

Chiaramente lo script verrà eseguito –ancora una volta– come amministratore di dominio, così che l’utente non debba “metterci mouse” durante il processo. Il file di configurazione gli verrà passato proprio come prima (in caso di nuova installazione o disinstallazione e passaggio a nuova versione) e ad installazione terminata sarà immediatamente possibile utilizzare il prodotto.

Stavolta non ho rilasciato il pacchetto completo e pronto da utilizzare, potete modificare il vecchio batch incollando il codice rilasciato in /dev e scaricare i file della 1.0.6.0 da questa discussione sul forum di UVNC.

Non mi resta che augurarvi buon lavoro :)

ancora una volta grazie a $cliente (lui sa chi) per avermi fatto divertire nella ricerca e nello sviluppo di soluzioni a lui adatte :)

L'articolo potrebbe non essere aggiornato

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Gioxx's Wall

Se hai correzioni o suggerimenti puoi lasciare un commento nell'apposita area qui di seguito o contattarmi privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! Satispay / PayPal / Buy Me A Coffee / Patreon

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Commento
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
RSS Week #61: letture per il weekend - Matteo Moro
11/07/2009 10:02

[…] Batch: migrazione verso UltraVNC 1.0.6.0 (PRE) […]