Come trasferire i permessi dei file con PowerShell

Contenuti

Logo Powershell

Mantenere i permessi di condivisione dei file su tutti i server può essere una grande sfida, ma quando si utilizza PowerShell, possiamo automatizzare questa procedura permettendoti di tornare a casa presto.

Quando si esegue una migrazione di file, non dovresti prestare attenzione solo ai file e alla cartella stessa, ma anche i permessi stabiliti su quegli oggetti. In ogni file e cartella potrebbe esserci un diverso insieme di voci di controllo di accesso (ASSO) che compongono un elenco di controllo degli accessi (ACL). A seconda del numero di file che stai migrando, questo può essere molto.

Quando si spostano i file in una nuova posizione, i permessi non vengono sempre con loro. Quando si esegue una migrazione di massa, come file server completi con autorizzazioni complesse, è essenziale mantenere quei permessi con gli oggetti mentre si spostano nella nuova posizione.

Ci sono alcune alternative per farlo.

Uno strumento preferito per eseguire migrazioni di file è robocopia. Robocopia è 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, Cerco regolarmente uno strumento chiamato icacls. Questo è uno strumento che esiste da molto tempo e, Che cosa robocopia, ha molti interruttori, quindi semplifichiamo un po' questo strumento con un po' di PowerShell.

Usa PowerShell per trasferire le autorizzazioni

Anche se puoi usare direttamente l'utilità della riga di comando icacls, non è il più facile da capire. Per rimediare a questo, imparerai a conoscere PowerShell come contenitore per invocare il icacls strumento per semplificare questa procedura a volte opprimente.

Primo, dovremo scaricare uno strumento esistente che è già stato creato per noi. Una delle cose migliori della community di PowerShell è che, generalmente, c'è uno strumento che ci aiuta. In questa circostanza, avremo bisogno di un modulo PowerShell. Questo modulo PowerShell può essere trovato in Galleria PowerShell.

Se hai PowerShell v4 o successivo, avrai già alcuni comandi per prendere velocemente questo modulo.

PS> Find-Module -Name NTFSPermissionMigration | Install-Module

Una volta terminato il codice sopra, ora dovresti avere un nuovo modulo installato sul tuo computer disponibile per l'uso. Una volta completata questa installazione, ora dobbiamo eseguire un comando all'interno del modulo nella cartella contenente tutti i file a cui vorremmo trasferire i permessi.

PS> Save-Acl -FolderPath OLDSERVERFileShare -SaveFilePath C:FilePermissions.txt

Una volta che funziona, dovresti vedere un output simile a questo e iniziare a vedere il file salvato iniziare a crescere.

processed file: OLDSERVERFileShareFile1.txt
processed file: OLDSERVERFileShareFile2.exe
Successfully processed X files; Failed processing 0 files

Quando questo è completo, ora dovresti avere tutti i permessi per i file e le cartelle all'interno del file salvato. Ora, possiamo ripristinare questo file. Nonostante questo, prima che questo accada, assicurati di fare un Esattamente copia tutti i file nella cartella precedente; caso opposto, questo non funzionerà.

Per ripristinare i permessi nel nuovo percorso della cartella, ora useremmo il Restore-Acl comando.

PS> Restore-Acl -RestoreToFolderPath NEWFILESERVERFileShare -PermissionFilePath C:FilePermissions.txt
Successfully processed XXX files; Failed processing 0 files

Una volta che questo è completo, Tutte le autorizzazioni NTFS dovrebbero essere rispecchiate dalla cartella di origine e dalla nuova cartella di destinazione!!

Riepilogo

L'utilizzo di un modulo Community PowerShell gratuito e un po' di magia di scripting può rendere il compito travolgente di spostare le autorizzazioni NTFS da un server a un altro un gioco da ragazzi.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.