Pagina 1 di 1

[RISOLTO] Unità di rete e installazione

Pubblicato: 10 ottobre 2019 - 10:38
di Herzas
Ciao a tutti, sto lavorando a una nuova installazione di WAPT e per questa vorrei evitare di usare un server di replica. Quindi ho scelto di creare pacchetti WAPT per i miei programmi software più grandi. Qualcosa di abbastanza semplice come: `
def install():
cmd = '\\server_north\software_folder\large_software\setup.exe'`.
Ovviamente, proprio come con la mia solita configurazione, ricevo quel meraviglioso messaggio di errore:
"Impossibile trovare il percorso specificato".
Quindi ho scoperto che: il servizio WAPT viene eseguito con un account di sistema locale (NT_Authority\System) e questo account è complicato per le unità di rete con il mio controller di dominio Samba.
Quindi ho provato la funzione di configurazione della sessione di WAPT e, miracolosamente, funziona.
Tranne, sfortunatamente, funziona solo se l'utente ha i diritti di accesso a quella posizione di rete, se è aperta e se inserisce la password almeno una volta.

Quindi ho un punto di partenza: con il comando
cmd = 'net use * \\serveur_nord\dossierlogiciel\groslogiciel\ /USER:login mdp'
localmente non ci sono problemi, ma tramite wapt si blocca. Probabilmente mi manca un apostrofo o una virgola.

Infine, sono aperto a qualsiasi suggerimento che mi permetta di fare a meno di questi server di replica.

Re: Unità di rete e installazione

Pubblicato: 12 ottobre 2019 - 11:19
di sfontenau
Inserire una password in chiaro in un pacchetto WAPT non è l'ideale.

Vuoi assolutamente farlo tramite SMB?

Ti consiglio di configurare un piccolo server web, come Nginx, Apache o qualcosa di simile, e poi utilizzare wget nel pacchetto.

Re: Unità di rete e installazione

Pubblicato: 14 ottobre 2019 - 08:34
di nliaudat

Codice: Seleziona tutto

import win32wnet

wnet_connect(host, username, password)
#dès la connexion établie, l'accès au dossier est possible.

def wnet_connect(host, username, password):
    unc = ''.join(['\\\\', host])
    try:
        win32wnet.WNetAddConnection2(0, None, unc, None, username, password)
    except Exception, err:
        if isinstance(err, win32wnet.error):
            # Disconnect previous connections if detected, and reconnect.
            if err[0] == 1219:
                win32wnet.WNetCancelConnection2(unc, 0, 0)
                return wnet_connect(host, username, password)
        raise err
Crei un utente wapt-install di sola lettura nella cartella del tuo software senza altri accessi

Un esempio di come selezionare il server più vicino in base al gateway:

Codice: Seleziona tutto

def getdownloadserver():
    #### Get gateway and set depending server
    location = str(get_default_gateways()).split('.')[2]  ## third octet of gateway ip address

    if location == 0 : 
        return "10.0.0.X"
    elif location == 1 : 
        return "10.0.1.X"
    elif location == 2 : 
        return "10.0.2.X"
    else :
        return "10.0.0.X"

Re: Unità di rete e installazione

Pubblicato: 14 ottobre 2019 - 09:15
di sfontenau
Ricordatevi di creare una copia anziché avviare il programma di installazione direttamente dall'unità di rete. Questo eviterà diversi problemi