Il mantenimento di autorizzazioni di condivisione di file tra server può essere una grande sfida, ma l’utilizzo di PowerShell, siamo in grado di automatizzare questo processo permettendo di andare a casa presto.
Quando si esegue qualsiasi file di migrazione, non solo è necessario considerare le cartelle e i file stessi, ma anche il set di autorizzazioni di tali oggetti. Su ogni file e cartella, potenzialmente, potrebbero essere un diverso insieme di Voci di Controllo di Accesso (Ace) che compongono un Elenco di Controllo di Accesso (ACL). A seconda di quanti file si sta eseguendo la migrazione, questo può essere un sacco.
Quando si spostano i file in una nuova posizione, le autorizzazioni non vengono sempre con loro. Quando si fa una massiccia migrazione come file server con un intricato sistema di autorizzazioni in atto, è importante per mantenere le autorizzazioni con gli oggetti che si muovono in una nuova posizione.
Ci sono alcuni modi per fare questo.
Uno strumento preferito per eseguire la migrazione di file è robocopy. Robocopy è un ottimo strumento con un sacco di campane e fischietti, ma può essere complicato da usare e potrebbe non funzionare in tutte le situazioni. Quando questo accade, io di solito guardare in uno strumento chiamato icacls. Questo è uno strumento che è stato intorno per un lungo periodo di tempo e, come robocopy, ha un sacco di opzioni, quindi cerchiamo di semplificare questo strumento un po ‘ con alcune PowerShell.
Utilizzo di PowerShell per il Trasferimento di Autorizzazioni
Anche se è possibile utilizzare il icacls utilità della riga di comando direttamente, non è la più facile da capire. Per rimediare a questo, si sta andando a conoscere un PowerShell come un wrapper per richiamare l’icacls strumento per semplificare a volte questo processo scoraggiante.
Primo luogo, abbiamo bisogno di scaricare un strumento esistente che è già creato per noi. Una delle grandi cose circa la PowerShell comunità è che c’è di solito uno strumento esistente là fuori per noi. In questo caso, stiamo andando a bisogno di un modulo di PowerShell. Questo modulo di PowerShell può essere trovato in PowerShell Galleria.
Se si dispone di PowerShell v4 o più tardi, ti hanno già alcuni comandi per afferrare questo modulo rapidamente.
PS> Trova-Module-Name NTFSPermissionMigration | Installare-Modulo
Una volta che il codice di cui sopra è fatto, ora si dovrebbe avere un nuovo modulo installato sul vostro computer disponibili per l’uso. Una volta che l’installazione è fatto, ora abbiamo bisogno di eseguire un comando all’interno del modulo contro la cartella contenente tutti i file che ci piacerebbe trasferimento di autorizzazioni.
PS> Salva-Acl -FolderPath \\OLDSERVER\FileShare -SaveFilePath C:\FilePermissions.txt
Una volta che questo viene eseguito, si dovrebbe vedere un output simile a questo e cominciare a capire che salvare il file inizia a crescere.
elaborazione di file: \\OLDSERVER\FileShare\File1.txt
elaborazione di file: \\OLDSERVER\FileShare\File2.exe
Trattati con successo X files; Impossibile l’elaborazione di file di 0
Quando questo è completo, si dovrebbe ora avere tutte le autorizzazioni per file e cartelle all’interno del file di salvataggio. Ora, siamo in grado di ripristinare questo file. Prima che questo accada, però, essere sicuri di fare una copia esatta di tutti i file all’interno della cartella precedente, altrimenti non funziona.
Per ripristinare le autorizzazioni per il nuovo percorso della cartella, ci sarebbe ora il Ripristino-Acl di comando.
PS> Ripristina-Acl -RestoreToFolderPath \\NEWFILESERVER\FileShare -PermissionFilePath C:\FilePermissions.txt
Trattati con successo XXX file; Impossibile l’elaborazione di file di 0
Una volta che questo è completo, tutte le autorizzazioni NTFS dovrebbe essere riflesso dalla cartella di origine e la cartella di destinazione!
Riepilogo
Utilizzando una comunità libera di PowerShell e un po ‘ di scripting magica in grado di trasformare un compito di spostare le autorizzazioni NTFS da un server all’altro un pezzo di torta.