0 votes

Commandes Powershell/script pour modifier les permissions NTFS pour des noms de chemin spécifiques

J'utilise l'outil de migration Microsoft Sharepoint pour copier plusieurs centaines de dossiers d'utilisateurs dans le nuage.

Le chemin d'accès à chaque dossier utilisateur est structurellement le même, fondamentalement : \\fileserver\user\ <sorte de variation du nom de l'utilisateur>

Les permissions existantes pour chaque sous-dossier utilisateur, qui sont héritées de \\fileserver\user sont : Contrôle total par les administrateurs de fichiers ; contrôle total par le système ; modification par les utilisateurs authentifiés.

Après avoir terminé la migration, je veux :

  1. Désactiver l'héritage sur chaque dossier utilisateur (certains dossiers à la fois, pas tous à la fois).
  2. Ajoutez seulement 2 ACEs, le groupe Domain Admins avec un contrôle total, et le propriétaire du dossier utilisateur avec Read/List/Execute.
  3. Supprimez tous les autres groupes et utilisateurs qui ont des permissions.

Est-ce que cela se fait mieux avec Powershell, et comment puis-je script cela ?

0voto

postanote Points 3762

Il existe des cmdlets intégrés pour cela et des modules sur le site MS powerShelGallery.com également.

C'est une chose très courante. Bien documenté partout sur le web et dans les vidéos Youtube. Il existe de nombreux exemples de scripts et rien ne vous empêche d'utiliser DOS ' acl .exe' ou d'autres outils similaires dans un script. Il ne s'agit donc pas vraiment d'une question spécifique à PowerShell, puisque vous pourriez également le faire dans un fichier batch ou autre.

Windows batch définit les permissions des fichiers et des dossiers".

"powershell set file and folder permissions" (en anglais)

'powershell set file and folder permissions sharepoint' (en anglais)

Commencez toujours par les fichiers d'aide PowerShell et les exemples qui s'y trouvent.

# Built-in cmdlets
Get-Command -Name '*acl*', '*ntfs*' | 
Format-Table -AutoSize
# Results
<#

CommandType Name                                               Version      Source                         
----------- ----                                               -------      ------                         
...                               
Cmdlet      get-Acl                                            3.0.0.0      Microsoft.PowerShell.Security  
Cmdlet      Set-Acl                                            3.0.0.0      Microsoft.PowerShell.Security  
...                  
Application cacls.exe                                          10.0.19041.1 C:\WINDOWS\system32\cacls.exe  
Application chkntfs.exe                                        10.0.19041.1 C:\WINDOWS\system32\chkntfs.exe
Application dsacls.exe                                         10.0.19041.1 C:\WINDOWS\system32\dsacls.exe 
Application icacls.exe                                         10.0.19041.1 C:\WINDOWS\system32\icacls.exe 
#>

# Get specifics for a module, cmdlet, or function
(Get-Command -Name Get-Acl).Parameters
(Get-Command -Name Get-Acl).Parameters.Keys
Get-help -Name Get-Acl -Examples
# Results
<#
Get-Acl C:\Windows
Get-Acl -Path "C:\Windows\k*.log" | Format-List -Property PSPath, Sddl
Get-Acl -Path "C:/Windows/k*.log" -Audit | ForEach-Object { $_.Audit.Count }
Get-Acl -Path "HKLM:\System\CurrentControlSet\Control" | Format-List
Get-Acl -InputObject (Get-StorageSubsystem -Name S087)
#>
Get-help -Name Get-Acl -Full
Get-help -Name Get-Acl -Online

(Get-Command -Name Set-Acl).Parameters
(Get-Command -Name Set-Acl).Parameters.Keys
Get-help -Name Set-Acl -Examples
# Results
<#
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl
#>
Get-help -Name Set-Acl -Full
Get-help -Name Set-Acl -Online

Find-Module -Name '*acl*', '*ntfs*' | 
Format-Table -AutoSize
# Results
<#

Version     Name                    Repository Description                                                                                                                                       
-------     ----                    ---------- -----------                                                                                                                                       
1.0.1       ACL-Permissions         PSGallery  A couple of ACL utilities, for repairing corrupt permissions and applying permissions for IIS AppPool identities                                  
1.30.1.28   ACLReportTools          PSGallery  Provides Cmdlets for reporting on Share ACLs.                                                                                                     
1.7         ACLHelpers              PSGallery  Modules to help work with ACLs (Access Control Rights)                                                                                            
1.0.1.0     ACLCleanup              PSGallery  A set of tools to help you clean your fileshares access control lists                                                                             
0.1.2       ACLTools                PSGallery  Module for managing NTFS Acls on files and folders                                                                                                
...                                                                                                                    
4.2.6       NTFSSecurity            PSGallery  Windows PowerShell Module for managing file and folder security on NTFS volumes                                                                   
1.4.1       cNtfsAccessControl      PSGallery  The cNtfsAccessControl module contains DSC resources for NTFS access control management.                                                          
1.0         NTFSPermissionMigration PSGallery  This module is used as a wrapper to the popular icacls utility to save permissions to a file and then restore those permissions to a mirror cop...
#>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X