none
Utenti, Backup e un gran casino in testa RRS feed

  • Domanda

  • Buongiorno,

    Ho un problema che non so come affrontare quindi chiedo cortesemente il vostro consiglio almeno per poter iniziare a far luce.

    Ho un pc a cui, generalmente, si accede con un utente di dominio che non ha credenziali amministrative, il cui unico scopo è quello di eseguire un programma di magazzino e inventario e, salvo necessità o imprevisti, rimane sempre acceso e sempre loggato con questo utente.

    Questo programma deve eseguire dei backup  periodici e qui sorge il problema che ora tento di spiegarvi nei dettagli.

    Il pc è sotto dominio ma il backup deve essere effettuato su un NAS, l'utente in questione può vedere le cartelle presenti sul NAS ma non accedervi; inoltre per effettuare il backup si vorrebbe utilizzare un utente non di dominio e a complicare ulteriormente il tutto è il modo con cui si vorrebbe effettuarlo.

    La modalità con cui eseguire il backup è tramite un file bat poiché dispongo di un modello di default fornitomi con il programma, così facendo però avrei un testo con scritto, nero su bianco, le credenziali di accesso alla cartella di backup che non voglio assolutamente far conoscere agli utenti.

    Riassumo:

    • Pc aggregato al dominio
    • Accesso con utente di dominio senza credenziali administrator
    • NAS visibile ma non consultabile dal pc tramite l'utente sopra descritto
    • Necessità di effettuare il backup sul NAS, senza cambiare utente nel pc
    • La cartella del NAS richiede le credenziali di un utente non di dominio per poter scrivere
    • Non bisogna far conoscere all'utente le credenziali per la scrittura sul NAS
    • Backup periodico(schedulazione di un file bat?)

    Ringrazio

    A

    mercoledì 26 febbraio 2014 11:44

Risposte

  • Ecco

    :: se la data usa / come separatore
    set bkname=Backup%date:/=%.Bak
    
    echo ... 'C:\***\Backups\%bkname%' WITH NOINIT ...

    e questo sarà l'output

    c:\>... 'C:\***\Backups\Backup25032014.Bak' WITH NOINIT ...


    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! Ricorda di dare un occhio ai link Click Here andHere

    • Contrassegnato come risposta Albiz giovedì 27 marzo 2014 09:56
    martedì 25 marzo 2014 16:21

Tutte le risposte

  • Il nas fa parte del dominio? Per non incorrere a problemi ingestibili, tutti gli apparati devono far parte del dominio, incluso il Nas. Al server dai il compito di eseguire il backup, essendo un dominio diamo un senso alla struttura server client, quindi il .bat viene eseguito dal server, macchina che non e'"visibile" agli utenti di rete. Ciao
    mercoledì 26 febbraio 2014 13:47
  • Non dovrebbero esserci grossi problemi a far funzionare il backup come vuoi tu:

    1. crea un utente di dominio es. BackupUsr con diritti di amministrazione sul pc
    2. cambia i permessi al tuo .bat in modo che sia leggibile solo da BackupUsr, system e le altre utenze amministrative, questa operazione renderà il bat e credenziali di scrittura inaccessibili all'utente pc.
    3. pianifica il batch utilizzando l'utente  BackuUsr , vedi qui le istruzioni

    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! Ricorda di dare un occhio ai link Click Here andHere

    • Proposto come risposta GastoneCanali giovedì 27 febbraio 2014 20:57
    mercoledì 26 febbraio 2014 23:33
  • Buongiorno,

    @Win3000: il NAS fa parte del dominio ma ha solo un utente non di dominio che va a scrivere e in merito a questi utenti non posso intervenire al momento; tuttavia se riesci a spiegare nel dettaglio come posso operare sarei ben lieto di apprendere.

    @Gastone: ma se al posto di un nuovo utente uso l'amministratore di dominio posso farlo? ci sono controidicazioni per caso?

    Grazie!

    giovedì 27 febbraio 2014 12:37
  • Non hai il controllo sull'impianto ("..questi utenti non posso intervenire al momento"). Se il NAS è configurato correttamente al dominio, non hai bisogno dell'utente locale del NAS, sposta il .bat sul server. Modifica i percorsi del .Bat e dal server esegui il file (.bat). Ciao
    giovedì 27 febbraio 2014 13:50

  • @Gastone: ma se al posto di un nuovo utente uso l'amministratore di dominio posso farlo? ci sono controidicazioni per caso?

    Non è il massimo. Primo perchè non è neccessario usare utenti amministratori del dominio, se configuri male le permission e qualcuno riesce a leggere il .bat  il dominio non sarà più il tuo! Secondo, quando cambierai la password di amministratore dovrai ricordarti di cambiare la password anche nel task schedulato...

    BackupUsr: solo amministratore del pc e senza scadenza password, è ciò che basta!

    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! Ricorda di dare un occhio ai link Click Here andHere


    giovedì 27 febbraio 2014 20:43
  • Non hai il controllo sull'impianto ("..questi utenti non posso intervenire al momento"). Se il NAS è configurato correttamente al dominio, non hai bisogno dell'utente locale del NAS, sposta il .bat sul server. Modifica i percorsi del .Bat e dal server esegui il file (.bat). Ciao

    Se il NAS è nel domino a quel punto modifichi le permission della share opportunamente e anche l'utente potrà scrivere il backup...

    Se  sposti il  .bat sul server, dovrai comunque pianificarlo con un utente, ti sconsiglio ancora di usare Adminisrator, opta per un utente dedicato ai task painificati su server.

    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! Ricorda di dare un occhio ai link Click Here andHere

    giovedì 27 febbraio 2014 20:53
  • Se il NAS è nel domino a quel punto modifichi le permission della share opportunamente e anche l'utente potrà scrivere il backup...

    Se  sposti il  .bat sul server, dovrai comunque pianificarlo con un utente, ti sconsiglio ancora di usare Adminisrator, opta per un utente dedicato ai task painificati su server.

    Se l'esigenze del topic restano confermate, all'utente del client non dare alcun permesso di scrittura nell'attivita' di Backup. Utilizza un altro utente per tale attivita', cosi risolvi anche "...Non bisogna far conoscere all'utente le credenziali per la scrittura sul NAS". Ciao
    giovedì 27 febbraio 2014 21:42
  • Buongiorno,

    vi illustro quello che ho capito (scusate ma, nel caso non si fosse capito, sono principiante):

    • Ho questo file bat da modificare:
    @echo off
    rem enter new path c:\temp before first backup!
    rem delete old backup:
    cd\
    cd temp
    del Backup.bak
    cd\
    rem enter PC-Name behind -S.... before start of first backup:
    rem Start backup to path c:\temp:
    osql -Slocalhost\sqlexpress -U*** -P*** -d*** -Q"BACKUP DATABASE [***] TO DISK = N'C:\TEMP\BACKUP.BAK' WITH NOINIT , NOUNLOAD , NAME = N'***', NOSKIP , STATS = 10, NOFORMAT " 
    rem enter copy path for additional copy if necessary!
    rem start copy:
    cd\
    cd temp
    copy backup.bak C:\***\Backups\Backup.bak /y
    copy backup.bak F:\***\Backup.bak /y
    rem copy backup.bak "Server:\Path\Backup.bak" /y
    exit
    
    

     File che, secondo il fornitore, deve rimanere nel PC, in cui andrebbe modificata solo l'ultima riga con la posizione della cartella del NAS.

    • Devo creare un utente di dominio con credenziali amministrative che possa scrivere sia sul pc che sulla cartella designata sul NAS
    • Eseguire quanto detto da gastone: "cambia i permessi al tuo .bat in modo che sia leggibile solo da BackupUsr, system e le altre utenze amministrative, questa operazione renderà il bat e credenziali di scrittura inaccessibili all'utente pc".
    • Devo schedulare, secondo il fornitore da PC non da server, l'esecuzione del file opportunamente modificato, senza uscire dal client non admin (Brevemente NA), utilizzando però il nuovo utente di dominio

    A questo punto mi sorge la seguente domanda:

    Se faccio una cosa come questa:

    L'utente NA può continuare a lavorare mentre la schedulazione è in corso?

    Senza offesa ma preferirei mantenere il file bat nel pc, così come suggerito dal fornitore, non vorrei creare problemi. 

    Vi ringrazio per l'aiuto!

    A

    venerdì 28 febbraio 2014 09:31
  • Spero che l'utente per il backup non si chiami realmente Utente BKUP ma UtenteBKUP, a parte questo devi settare come esegui indipendentemente e con privlegi piu elevati. Dato che si tratta di sql server  l'utente potrà lavorare durante il backup, naturalmente sarà tutto rallentato  per l'intera durata e se il pc è molto scarso potrebbe essere difficile lavorare, qui devi valutare tu cosa succede, quanto si rallenta e quanto dura il task. 

    @echo off rem enter new path c:\temp before first backup! rem delete old backup: cd\ cd temp del Backup.bak cd\ rem enter PC-Name behind -S.... before start of first backup: rem Start backup to path c:\temp: osql -Slocalhost\sqlexpress -U*** -P*** -d*** -Q"BACKUP DATABASE [***] TO DISK = N'C:\TEMP\BACKUP.BAK' WITH NOINIT , NOUNLOAD , NAME = N'***', NOSKIP , STATS = 10, NOFORMAT " rem enter copy path for additional copy if necessary! rem start copy: cd\ cd temp copy backup.bak C:\***\Backups\Backup.bak /y :: se la nas è integrata in active directory
    :: e il task pianificato con un utente con i permessi giusti sulla Nas
    :: basterà il seguente comando :: NET USE F: \\NAS\tuaSHARE :: non sarà necessario mettere usr e pwd
    :: :: La riga seguente è per una NAS non integrata in AD NET USE F: \\NAS\tuaSHARE /user:utenteNAS passwordUtenteNAS copy backup.bak F:\***\Backup.bak /y rem copy backup.bak "Server:\Path\Backup.bak" /y exit

    An La prima parte cd \ cd temp è inutile dato che il bk viene salvato in c:\temp

    non capisco perchè fai il bk in c:\temp poi lo copi in C:\***\Backups  tanto vale farlo direttamente in dove deve finire... Sotto ho modificato il bat togliendo i passaggi inutili, gli manca solo un po' di logging(ora di partenza, ore di fine... etc)  e di controllo degli errori (bk non riuscito, mancato collegamento alla nas...)

    @echo off
    rem delete old backup:
    if exist "C:\***\Backups\BACKUP.BAK"    DEL "C:\***\Backups\BACKUP.BAK"
    :: sql bk
    osql -Slocalhost\sqlexpress -U*** -P*** -d*** -Q"BACKUP DATABASE [***] TO DISK = N'C:\***\Backups\BACKUP.BAK' WITH NOINIT , NOUNLOAD , NAME = N'***', NOSKIP , STATS = 10, NOFORMAT " 
    
    :: se la nas è integrata in active directory
    :: NET USE F: \\NAS\tuaSHARE
    :: non sarà necessario mettere usr e pwd
    :: oppure potrai evitare il net use f: e semplicemente usare questo comando
    :: copy "C:\***\Backups\BACKUP.BAK" "\\NAS\tuaSHARE\***\" /Y
     
    :: La riga seguente è necessaria per una NAS non integrata in AD
    NET USE F: \\NAS\tuaSHARE /user:utenteNAS passwordUtenteNAS
    copy "C:\***\Backups\BACKUP.BAK" "F:\***\Backup.bak" /y
    Dato che ti stai cimentando in powershell, continua trasformando questo bat in uno script PS, almeno troverai più supporto online... 

    ciao

    PS: se il fornitore mi contatta, posso dargli qualche consiglio su come migliorare il bat e smetterla di fornire ai suoi clienti del codice obbrobrioso...


    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! Ricorda di dare un occhio ai link Click Here andHere



    venerdì 28 febbraio 2014 10:44
  • Nessuna offesa, e' corretto seguire le loro indicazioni, se non hai un referente IT interno, sono loro che vi forniscono assistenza e hanno conoscenza delle configurazioni. Fai questa prova (non schedulata): - non toccare o modificare .bat, condividi la cartella del .bat(mettilo in un'apposita cartella). - aggiungi un utente dedicato per il backup con permessi di scrittura e accesso esclusivo alla cartella condivisa. - dal server esegui tramite path di rete il .bat Per la schedulazione apri un altro thread che resta utile anche ad altri. Durante il backup solitamente non si consiglia di effettuare attivita' sullo specifico programma in fase di bck: comunque dipende dall'applicativo. Se esegui il .bat dal server non dovrebbe apparire niente sullo schermo del client, questo e' il motivo per cui ti volevo far sportare il file anche sul server. Prova, non e' invasivo come test, se ti soddisfa procedi con la schedulazione. Ciao
    venerdì 28 febbraio 2014 11:14
  • Se la cosa corretta è seguire le indicazioni del fornitore, inutile scrivere qui e dare risposte!

    Fai questa prova (non schedulata): - non toccare o modificare .bat, condividi la cartella del .bat(mettilo in un'apposita cartella). - aggiungi un utente dedicato per il backup con permessi di scrittura e accesso esclusivo alla cartella condivisa. - dal server esegui tramite path di rete il .bat
    ...
    ...
    Se esegui il .bat dal server non dovrebbe apparire niente sullo schermo del client, questo e' il motivo per cui ti volevo far sportare il file anche sul server. Prova, non e' invasivo come test, se ti soddisfa procedi con la schedulazione.

    NON FUNZIONERA' MAI....  non vedrai apparire nulla sul client, ma non avrai il backup!!

    osql -Slocalhost\sqlexpress -U*........

    Ci sono almeno DUE problemi, sul server ci deve essere sql server Client (per avere osql) e il bat VA MODIFICATO (osql -Spcremoto\sqlexpress),  risolti i 2 problemi, potrebbero seguire noie di configurazione della connessione al DB sull porta 1443 o named pipe ...

     


    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! Ricorda di dare un occhio ai link Click Here andHere








    venerdì 28 febbraio 2014 12:59
  • @GastoneCanali, vedo che conosci bene la configurazione dell'utente, sai che non c'è SQL sul server e sicuramente altro ... A questo punto, invece di riempire il post di polemiche "inutili" cerca di dare dell'indicazioni precise e non sommarie, compila il. Bat correttamente ed elenca i passaggi esatti da eseguire. Il consiglio che è stato dato non altera niente, non fa perdere alcun tempo, eseguire un file .bat e' un secondo, meno tempo rispetto a quello che hai scritto. Non sentenziare le indicazioni di altri, su ogni uno di noi ci sarebbe da ridere ... e scrivi i nomi corretti "..SQL server client", i sw hanno un nome preciso! Ti consiglio la lettura del thread "qualità' del forum".
    venerdì 28 febbraio 2014 14:50
  • osql -SLOCALHOST\sqlexpress -U*** -P*** -d*** -Q"BACKUP DATABASE [***] TO DISK = N'C:\***\Backups\BACKUP.BAK' WITH NOINIT , NOUNLOAD , NAME = N'***', NOSKIP , STATS = 10, NOFORMAT " 

    @Win3000: non puoi prendertela se il batch, senza opportune mondifiche, non potrà funzionare se eseguito sul server... così come è fatto funziona solo se eseguito sul client (-Slocalhost).

    Io per le mie risposte mi sono basato sulle uniche cose certe che abbiamo avuto da Alberto:

    • una NAS
    • un pc aggregato al dominio con una qualche versione di Microsoft SQL Server (express ver.??)
    • Il pc ha un sitema operativo >= vista (probabilmente windows 7)
    • un programma sul pc che utilizza SQL...
    • uno user del PC locale che non scrive sulla nas
    • Un generico dominio
    • Un server DC

    Aspettiamo che risponda Albiz, per capire come aiutarlo al meglio.

    Non replicherò più ai tuoi post, si qualificano da soli.

    Ciao Gastone


    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! Ricorda di dare un occhio ai link Click Here andHere




    venerdì 28 febbraio 2014 17:16
  • @Gastone, bene, hai modificato il post. Non cancellarlo tutto ....
    Comunque, non c'è l'ho con lo script, ma con il tono che hai usato.

    Ti contraddici spesso, è richiami all'ordine gli altri :

    • Scrivi "mi sono basato sulle uniche cose certe..." e poi "...qualche versione di Microsoft SQL Server"... "...probabilmente windows 7" ---->cosa c'entra? etc etc
    • Scrivi che "... sul server ci deve essere sql server ..."  aggiungi "potrebbero seguire noie di configurazione della connessione al DB sull porta 1443 o named pipe ... ",
      annunci falsi problemi senza conoscere i settaggi del fw e le configurazioni, all'ultimo riduci il tutto ad uno solo ed evidenziando il localhost, se continui i tuoi interventi si azzerano ...
      Te parli di cose utili e gli altri No?  

    Adesso, ho apprezzato l'eliminazione delle tue espressioni che hai usato nel post, sperando che l'intento è quello di aver compreso il senso del forum.
    Chiudo questa parentesi per ritornare alle funzioni costruttive del forum.

    venerdì 28 febbraio 2014 20:53
  • Buongiorno!

    Innanzitutto vi fornisco un po' di info sul pc in questione:

    • Windows 7 Pro x64
    • Aumentata la RAM a 4GB
    • HD da 160GB
    • SQL express 2008

    In secondo luogo, senza offesa, comprendo la logica del file bat ma preferisco modificare solo la parte indicatami dal fornitore se proprio non strettamente necessario.

    Farò dei test.

    Nel frattempo vi ringrazio!!!

    lunedì 3 marzo 2014 08:37
  • Buongiorno!

    Dopo lungo tempo vi illustro quello che ho fatto:

    1. Ho creato un utente NON di dominio (causa problemi) ma un account locale del pc.
    2. Ho modificato il bat.
    3. Sto tentando di schedularlo

    Non è molto ma sono stato impegnato per un po'

    Grazie!

    Buona giornata

    A

    giovedì 20 marzo 2014 11:49
  • Ehm... domanda stupida...come posso associare il backup alla data?

    ovvero il backup di oggi si deve chiamare backup250314.bak

    quello di domani backup260314.bak etc...

    Grazie!!!

    A

    martedì 25 marzo 2014 12:04
  • Ecco

    :: se la data usa / come separatore
    set bkname=Backup%date:/=%.Bak
    
    echo ... 'C:\***\Backups\%bkname%' WITH NOINIT ...

    e questo sarà l'output

    c:\>... 'C:\***\Backups\Backup25032014.Bak' WITH NOINIT ...


    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! Ricorda di dare un occhio ai link Click Here andHere

    • Contrassegnato come risposta Albiz giovedì 27 marzo 2014 09:56
    martedì 25 marzo 2014 16:21
  • Ehi ragazzi!!!

    GRAZIE!!!!Risolto!!!!

    giovedì 27 marzo 2014 09:57