Hoe de Overdracht van het Bestand Machtigingen met PowerShell

Het handhaven van het bestand machtigingen voor delen op verschillende servers kan een grote uitdaging, maar door het gebruik van PowerShell, we kunnen het automatiseren van dit proces zodat u vroeg naar huis.

Bij het doen van een bestand migratie, moet u niet alleen rekening houden met de bestanden en de map zelf, maar ook de permissies die ingesteld zijn op deze objecten. Op elk bestand en elke map kan mogelijk een andere set van Access Control Entries (ACEs) in een Access Control List (ACL). Afhankelijk van hoeveel bestanden u migreert, dit kan een hoop.

Bij het verplaatsen van bestanden naar een nieuwe locatie, de machtigingen niet altijd met hen komen. Bij het doen van een massale migratie net als de hele file servers met ingewikkelde machtigingen in de plaats, is het belangrijk om te houden van deze machtigingen met de objecten verplaatst naar de nieuwe locatie.

Er zijn een paar manieren om dit te doen.

Een favoriete tool uit te voeren bestand migraties is robocopy. Robocopy is een geweldig hulpmiddel met veel toeters en bellen, maar het kan ingewikkeld zijn om te gebruiken en werkt mogelijk niet in alle situaties. Wanneer dit gebeurt, zal ik meestal op zoek naar een tool genaamd icacls. Dit is een tool die is rond voor een lange tijd, en net als robocopy, heeft een veel schakelaars, dus laten we het vereenvoudigen van deze tool een beetje met een aantal PowerShell.

Gebruik PowerShell om de Overdracht van Rechten

Hoewel u kunt gebruik maken van de icacls command-line utility rechtstreeks gebruiken, het is niet de makkelijkste te begrijpen. Om dit te verhelpen, je gaat om te leren over een PowerShell als een wrapper te roepen van de icacls tool om dit te vereenvoudigen soms ontmoedigend proces.

Eerst zullen we nodig hebben om te downloaden op een bestaande tool die al zijn gemaakt voor ons. Een van de grote dingen over het PowerShell gemeenschap is dat er meestal een bestaande tool die er zijn om ons te helpen. In dit geval gaan we naar een PowerShell module. Dit PowerShell module kan worden gevonden in de PowerShell Gallery.

Als u PowerShell v4 of later, je hebt al een aantal commando ‘ s in te grijpen in deze module snel.

PS – > Zoeken-Module -Naam NTFSPermissionMigration | Install-Module

Zodra de code hierboven is gedaan, moet u nu een nieuwe module is geïnstalleerd op uw computer beschikbaar is voor gebruik. Nadat deze installatie is gedaan, nu moet het uitvoeren van een opdracht binnen van de module tegen de map met alle bestanden die we willen overbrengen machtigingen op.

PS – > Opslaan-Acl -FolderPath \\OLDSERVER\Bestandsshare -SaveFilePath C:\FilePermissions.txt

Zodra dit is uitgevoerd, ziet u een uitvoer gelijkaardig aan deze en beginnen in te zien dat bestand opslaan beginnen te groeien.

verwerkt het bestand: \\OLDSERVER\FileShare\File1.txt
verwerkt het bestand: \\OLDSERVER\FileShare\File2.exe
Met succes verwerkt X-bestanden; Mislukte het verwerken van 0 bestanden

Wanneer dit is voltooid, moet u nu alle machtigingen voor bestanden en mappen binnen het bestand opslaan. Nu, wij kunnen dit bestand herstellen. Voordat dit gebeurt, maar zorg ervoor dat u een exacte kopie van alle bestanden in de oude map, anders zal dit niet werken.

Om te herstellen van de rechten naar de nieuwe map pad, we willen nu via de Restore-Acl opdracht.

PS> Restore-Acl -RestoreToFolderPath \\NEWFILESERVER\Bestandsshare -PermissionFilePath C:\FilePermissions.txt
Met succes verwerkt XXX bestanden; Mislukte het verwerken van 0 bestanden

Zodra deze is voltooid, worden alle NTFS-machtigingen moeten worden gespiegeld uit de bron map en de nieuwe doelmap!

Samenvatting

Met behulp van een gratis community PowerShell module en een beetje scripting magic kan weer een ontmoedigende taak zijn van het verplaatsen van NTFS-machtigingen van de ene server naar de andere een stuk van cake.


Posted

in

by

Tags: