Ciao,
vi aggiorno sul mio primo post: viewtopic.php?f=9&t=2389 , riguardo alla creazione di una stampante.
Lo script suggerito da sfonteneau funziona. Tuttavia, non c'è alcuna configurazione e il mio driver, per impostazione predefinita, sceglie un formato incredibile (8,5 x 11").
Quindi volevo configurarlo, ma queste impostazioni non sono facilmente disponibili (o semplicemente non sono bravo a cercare). Sono riuscito a trovare una soluzione esportando e poi importando una configurazione usando il comando:
- RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Ss /n "Schumann copier 5th floor" /a C:\A4-format.dat
- RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Sr /n "Schumann copier 5th floor" /a C:\A4-format.dat
Modifica: Nota: Ovviamente, eseguo l'esportazione solo una volta, su una macchina già configurata, per ottenere la configurazione di base. Quindi provo a riprodurre l'importazione con /Sr usando un pacchetto wapt.
Tuttavia, il comando funziona solo durante l'importazione quando abbiamo un percorso assoluto. Il test seguente mi porta a questo Conclusione:
Quando sono nel mio prompt dei comandi in c:> e digito l'opzione /a 'A4-format.dat', l'operazione fallisce e si interrompe, ma con /a 'C:/A4-format.dat' funziona e, controllando le proprietà della stampante, il formato è effettivamente cambiato. Il risultato è lo stesso sia che la finestra del prompt dei comandi venga avviata come amministratore o meno.
La mia domanda è:
- Ho frainteso qualcosa nell'esecuzione di printui.exe? Avete della documentazione su come assegnare direttamente le impostazioni della stampante, invece di affidarsi a un file di configurazione?
- Se ho capito bene, quale soluzione dovrei consigliare?
- C'è una cartella sul computer client, per ogni pacchetto wapt, a cui si potrebbe puntare con un percorso assoluto che quindi non cambierebbe per ogni workstation?
- Dovremmo usare una condivisione di rete per archiviare i file sorgente?
- Un'altra soluzione? (Usare un comando per copiare il file sorgente .dat sulle workstation client, ad esempio in c:/source_wapt/fichier.dat, quindi impostare il nuovo percorso assoluto, così (evitando una configurazione generica, ma utilizzando uno script generico.)
[RISOLTO] Pacchetto con requisito di percorso assoluto.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
- dcardon
- Esperto WAPT
- Messaggi: 1908
- Registrazione: 18 giugno 2014 - 09:58
- Ubicazione: Saint Sébastien sur Loire
- Contatto:
Il pacchetto viene decompresso in una directory temporanea con un nome casuale. È possibile recuperare il percorso della directory in cui è stato decompresso utilizzando la variabile `basedir`.
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
Grazie, la variabile basedir è fantastica.
Tuttavia, in definitiva, questo non sembra essere il problema principale.
Nel mio script, che ho preso in prestito in gran parte da sfonteneau per la creazione della stampante, ecco le due righe attive:
- Ho installato la stampante "Schumann Copier 5th floor". Funziona senza problemi.
run(ur'rundll32 printui.dll,PrintUIEntry /if /b "%s" /f %s /r "IP_%s" /m "%s" ' % (nameprinter,path_driver,portprint,name_drivers))
- Dovrebbe importare le impostazioni di stampa "printer-format.dat" nella fotocopiatrice/stampante Schumann. Non funziona da PyScripter.
run(u'printui.exe /Sr /n "Fotocopiatrice Schumann 5° piano" /a /f %s\printer-format.dat' %(basedir))
Ho provato con /f, ma non è cambiato nulla, e ho aggiunto il percorso completo con basedir. Non è cambiato nulla.
Tuttavia, come promemoria, non ci sono problemi nell'usare CMD direttamente, con gli stessi file e gli stessi percorsi. O meglio, non proprio:
Quando compilo il pacchetto e lo carico nel mio repository locale, poi provo a modificarlo ed eseguo un comando sul file printer-format.dat, mi dice "Impossibile completare l'operazione" (per l'importazione). Quindi esporto per sovrascrivere il file e lo importo di nuovo, e funziona.
Ho la sensazione che questo possa essere correlato a un problema di sicurezza di Windows. Ho riscontrato molti errori di questo tipo durante la creazione dei miei pacchetti. A volte trovo soluzioni alternative che sembrano più hack (utilizzando file batch o PowerShell) che soluzioni legittime.
In breve, sto girando in tondo e non capisco i codici di errore che vengono restituiti. Hai qualche suggerimento per migliorarne la comprensione?
Per vostra informazione, ecco la mia funzione di installazione:
Ecco il codice di errore quando eseguo un comando "install" in PyScripter:
Se non sai quali informazioni potrebbero essere davvero importanti per te, sentiti libero di farmi domande se necessario. Pubblico già molto e non vorrei scoraggiare chi potrebbe essere interessato a leggere i miei post.
Tuttavia, in definitiva, questo non sembra essere il problema principale.
Nel mio script, che ho preso in prestito in gran parte da sfonteneau per la creazione della stampante, ecco le due righe attive:
- Ho installato la stampante "Schumann Copier 5th floor". Funziona senza problemi.
run(ur'rundll32 printui.dll,PrintUIEntry /if /b "%s" /f %s /r "IP_%s" /m "%s" ' % (nameprinter,path_driver,portprint,name_drivers))
- Dovrebbe importare le impostazioni di stampa "printer-format.dat" nella fotocopiatrice/stampante Schumann. Non funziona da PyScripter.
run(u'printui.exe /Sr /n "Fotocopiatrice Schumann 5° piano" /a /f %s\printer-format.dat' %(basedir))
Ho provato con /f, ma non è cambiato nulla, e ho aggiunto il percorso completo con basedir. Non è cambiato nulla.
Tuttavia, come promemoria, non ci sono problemi nell'usare CMD direttamente, con gli stessi file e gli stessi percorsi. O meglio, non proprio:
Quando compilo il pacchetto e lo carico nel mio repository locale, poi provo a modificarlo ed eseguo un comando sul file printer-format.dat, mi dice "Impossibile completare l'operazione" (per l'importazione). Quindi esporto per sovrascrivere il file e lo importo di nuovo, e funziona.
Ho la sensazione che questo possa essere correlato a un problema di sicurezza di Windows. Ho riscontrato molti errori di questo tipo durante la creazione dei miei pacchetti. A volte trovo soluzioni alternative che sembrano più hack (utilizzando file batch o PowerShell) che soluzioni legittime.
In breve, sto girando in tondo e non capisco i codici di errore che vengono restituiti. Hai qualche suggerimento per migliorarne la comprensione?
Per vostra informazione, ecco la mia funzione di installazione:
Codice: Seleziona tutto
def install():
if iswin64():
path_driver = r"IT5DSETWin_10110FR\Drivers\PCL6\Win_x64\KOAXTJ__.INF"
name_drivers = "KONICA MINOLTA C287SeriesPCL"
else:
path_driver = r"IT5DSETWin_10110FR\Drivers\PCL6\Win_x86\KOAXTJ__.inf"
name_drivers = "KONICA MINOLTA C287SeriesPCL"
# Delete old printer
run_notfatal('rundll32 printui.dll,PrintUIEntry /n "%s" /dl /q ' % nameprinter)
# Create port lpr or raw
createprinterport_raw(portprint)
# use create lpr if needed
#createprinterport_lpr(portprint,'qu')
# Install printer and drivers
run(ur'rundll32 printui.dll,PrintUIEntry /if /b "%s" /f %s /r "IP_%s" /m "%s" ' % (nameprinter,path_driver,portprint,name_drivers))
run(u'printui.exe /Sr /n "Copieur schumann 5eme etage" /a /f %s\printer-format.dat' %(basedir))Codice: Seleziona tutto
2020-06-11 10:51:51,466 CRITICAL Fatal error in install script: CalledProcessErrorOutput: Command 'printui.exe /Sr /n "Copieur schumann 5eme etage" /a /f c:\\waptdev\\wapt_av-5thFloor-printer-wapt\\printer-format.dat' returned non-zero exit status 1.
Output::
Traceback (most recent call last):
File "C:\Program Files (x86)\wapt\common.py", line 3800, in install_wapt
exitstatus = setup.install()
File "c:\waptdev\wapt_av-5thFloor-printer-wapt\setup.py", line 36, in install
run(u'printui.exe /Sr /n "Copieur schumann 5eme etage" /a /f %s\printer-format.dat' %(basedir))
File "C:\Program Files (x86)\wapt\common.py", line 3570, in run
return ensure_unicode(setuphelpers.run(*arg,**args))
File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 3863, in run
raise CalledProcessErrorOutput(proc.returncode,cmd,''.join(output))
CalledProcessErrorOutput: Command 'printui.exe /Sr /n "Copieur schumann 5eme etage" /a /f c:\\waptdev\\wapt_av-5thFloor-printer-wapt\\printer-format.dat' returned non-zero exit status 1.
Output:
FATAL ERROR : CalledProcessErrorOutput: Command 'printui.exe /Sr /n "Copieur schumann 5eme etage" /a /f c:\\waptdev\\wapt_av-5thFloor-printer-wapt\\printer-format.dat' returned non-zero exit status 1.
Output:
Exit code: 3per l'ordine
Forse deve essere eseguito nel contesto utente? con session-setup
Codice: Seleziona tutto
run(ur'printui.exe /Sr /n "Copieur schumann 5eme etage" /a /f %s\printer-format.dat' %(basedir))
La configurazione della sessione è utile! Dimostra solo che dovrò provare un po' di più tutto ciò che wapt può fare per me.
In questo caso, era correlato, ma non direttamente. È l'eseguibile printui che imposta direttamente il contesto; possiamo modificarlo con i flag alla fine del file di configurazione importato. Ecco la nuova riga che funziona nel contesto utente ed è eseguita correttamente da "def install":
E in realtà, per andare oltre, stavo per imbattermi in un problema: la mia importazione non conterrebbe dati formattati, perché sono necessari dei flag per specificare cosa si desidera esportare. Quindi bisogna esportare con:
E importa con:
Ciò che conta è esportare e importare con la "u" per utilizzare lo stesso contesto.
Ecco l'argomento che mi è stato utile:
https://stackoverflow.com/questions/173 ... ompleted-e
In questo caso, era correlato, ma non direttamente. È l'eseguibile printui che imposta direttamente il contesto; possiamo modificarlo con i flag alla fine del file di configurazione importato. Ecco la nuova riga che funziona nel contesto utente ed è eseguita correttamente da "def install":
Codice: Seleziona tutto
run(ur'printui.exe /Sr /n "Copieur schumann 5eme etage" /a %s\printer-format.dat u' %(basedir))Codice: Seleziona tutto
Rundll32.exe printui.dll,PrintUIEntry /Ss /n "Copieur Schumann 5eme etage" /a printer-format.dat c m uCodice: Seleziona tutto
run(ur'Rundll32.exe printui.dll,PrintUIEntry /Sr /n "Copieur Schumann 5eme etage" /a %s\printer-format.dat c m p r u' %(basedir))Ecco l'argomento che mi è stato utile:
https://stackoverflow.com/questions/173 ... ompleted-e
Grazie mille! Molto utile!
Buongiorno,
Grazie per il codice per la distribuzione e la configurazione delle stampanti.
La distribuzione funziona correttamente, ma quando avvio l'installazione in Pyscripter per testarla, le impostazioni della stampante funzionano solo per il mio account di amministratore di dominio (dominio ads samba).
Tuttavia, se eseguo manualmente la seguente riga di comando nella sessione dell'utente utilizzando cmd
La configurazione si applica correttamente al mio utente.
Forse mi è sfuggita un'impostazione che fa funzionare la distribuzione della stampante ma non la configurazione per gli utenti?
Grazie per il tuo feedback
Grazie per il codice per la distribuzione e la configurazione delle stampanti.
La distribuzione funziona correttamente, ma quando avvio l'installazione in Pyscripter per testarla, le impostazioni della stampante funzionano solo per il mio account di amministratore di dominio (dominio ads samba).
Tuttavia, se eseguo manualmente la seguente riga di comando nella sessione dell'utente utilizzando cmd
Codice: Seleziona tutto
RUNDLL32 PRINTUI.DLL,PrintUIEntry /Sr /n "Copieur Administratif Etage" /a C:\waptdev\tis-install-printer-Administratif_Etage-wapt\disk1\config-CAE.dat uForse mi è sfuggita un'impostazione che fa funzionare la distribuzione della stampante ma non la configurazione per gli utenti?
Grazie per il tuo feedback
