I programmi DOS sono ancora utilizzati nel mondo degli affari. I consigli su come farli funzionare correttamente su una moderna piattaforma informatica sono dilaganti sul Web. Ecco cosa ha funzionato per me.
Il programma DOS a 16 bit con cui dobbiamo lavorare risiede su un server Windows 2003 a 32 bit che sarà presto rimosso. Fino ad allora, una quota del programma è mappata su due macchine client a 32 bit del dominio primario con Group Policy. Un collegamento al file .cmd che avvia il programma viene posizionato manualmente sui client, anche sul dominio primario. Il programma funziona bene su Windows 8.1. Un po’ un compromesso per essere sicuri, ma le macchine verranno aggiornate a Windows 8.1 a 64 bit quando il programma DOS, che funziona dal dominio secondario, verrà ritirato.
La stampa dal programma rappresenta la sfida più grande. Con questo programma vengono utilizzate due diverse stampanti parallele, ma il programma stampa solo su una singola porta e non vi è alcuna possibilità di modificare questo comportamento. È necessario stampare un assegno sulla stampante laser? Deve essere collegato alla porta LPT1. È necessario stampare un dump di dati sulla stampante ad aghi? Deve essere collegato anche alla porta LPT1. Due persone lavorano con questo programma ogni giorno, quindi useremo i loro computer, uno per ogni stampante. Installiamo la prima stampante:
Se il computer ha una porta DB-25 (parallela) fisica è possibile disabilitarla nel BIOS. Windows 8.1 non la supporterà e non ne abbiamo bisogno.
Per collegare la stampante al computer si usa un adattatore per stampante parallela da USB a DB25 modello 16899 USB a DB25. L'adattatore si installa automaticamente e non viene riconosciuto come dispositivo parallelo o porta LPT.
Ora aprire Dispositivi e Stampanti. Fare clic su Aggiungi stampante e selezionare La stampante che voglio non è elencata. Nella finestra di dialogo successiva scegliere Aggiungi una stampante locale o una stampante di rete con impostazioni manuali e, nella finestra di dialogo successiva, Usa una porta esistente. Selezionare una porta stampante virtuale per USB, USB001 o USB002, dall'elenco e non le opzioni della porta LPT.
La prima stampante è una stampante a matrice di punti multimodale Panasonic KX-P1191. La stampante non è elencata nella finestra di dialogo che chiede un driver e l'aggiornamento della lista cliccando su Windows Update non aiuta. Un controllo del sito di supporto Panasonic indica che la stampante non è completamente supportata a questo punto, ma uno specialista del supporto tecnico Panasonic ha aiutato a risolvere il problema che ha portato al driver Epson FX Series 1(80) incluso in Windows 8.1. Funziona perfettamente.
Ora la stampante è installata. Ma è sulla porta USB001 e il programma stamperà solo sulla porta LPT1. La soluzione è relativamente semplice e può essere integrata direttamente nel file batch utilizzato per avviare il programma. Facciamo un po’ di vecchia scuola e facciamo uno scherzo alla nostra stampante: la condivideremo e stamperemo su LPT1 in questo modo.
Clicchiamo con il tasto destro del mouse sulla stampante e scegliamo Proprietà. Condividiamo la stampante, non la elenchiamo nella directory, creiamo un breve nome di condivisione solo per buona misura, e poi ci assicuriamo che l'utente della macchina cliente sia elencato nel Gruppo o nell'area del nome utente sotto la scheda Sicurezza.
Le due persone che stamperanno su queste stampanti creano la mia busta paga, così ho dato loro i diritti di amministrazione del dominio. Questo potrebbe essere stato inutile. Entrambi sono utenti sul dominio primario ma non sul secondario, e non volevo perdere tempo a risolvere il problema dei permessi.
Ora modificate il file batch e utilizzate il ben documentato comando di utilizzo della rete per implementare la soluzione di stampa:
@echo off
::delete the printer
net use lpt1 /delete
::add the printer
net use lpt1 \\COMPUTER\PRINTER /persistent:yes
::fire up the nasty ol' DOS program
<existing syntax used to start the program>
``` &001
Dove COMPUTER è il nome del computer e PRINTER è il nome condiviso della stampante. La procedura ha funzionato altrettanto bene su un secondo computer per la stampante HP LaserJet 1100 utilizzando il driver "HP LaserJet 1100 (MS)" fornito con Windows 8.1.
### -- NOTE --
** Errore di sistema 5:**
Assicurarsi che l'utente sia elencato nella scheda di sicurezza. "Tutti" può essere rimosso. Sono necessari privilegi di amministrazione del dominio per l'utente? Probabilmente no, se tutto è in esecuzione da un dominio.
** Errore di sistema 66:**
Controlla la tua sintassi. Probabilmente hai sbagliato a scrivere il nome del computer, della stampante, o forse hai dimenticato i due punti? È necessario solo un punto, secondo la documentazione Microsoft. L'aggiunta di un punto inutile a lpt1[:] causerà un errore?
Tutto sull'uso della rete [ https://technet.microsoft.com/en-us/library/bb490717.aspx ](https://technet.microsoft.com/en-us/library/bb490717.aspx)