Gestionarea permisiunilor cu PowerShell
Modulul Microsoft.PowerShell.Security include multe cmdleturi încorporate pe care le puteți utiliza pentru a gestiona caracteristicile de securitate de bază pe un computer Windows. Pentru a revizui cmdleturile incluse în acest modul, puteți introduce următoarea comandă:
Get-command -module Microsoft.PowerShell.Security
Pentru a gestiona permisiunile de acces la un fișier sau folder, utilizați următoarele cmdleturi incluse în modulul Microsoft.PowerShell.Security .
Tabelul 1: Cmdleturi incluse în modulul Microsoft.PowerShell.Security
| Cmdlet | Descriere |
|---|---|
| Get-ACL | Acest cmdlet primește obiecte care reprezintă descriptorul de securitate al unui fișier sau al unei resurse. Descriptorul de securitate include listele de control al accesului (ACL) ale resursei. ACL listează permisiunile pe care utilizatorii și grupurile le au pentru a accesa resursa. |
| Set-ACL | Acest cmdlet modifică descriptorul de securitate al unui element specificat, cum ar fi un fișier, un folder sau o cheie de registry, pentru a se potrivi cu valorile dintr-un descriptor de securitate pe care îl furnizați. |
Preluarea permisiunilor de acces
Cmdletul Get-Acl afișează descriptorul de securitate pentru un obiect. De exemplu, puteți prelua descriptorul de securitate pentru un folder numit C:\Folder1. În mod implicit, rezultatul se afișează într-un format de tabel. Dacă direcționați ieșirea într-un format de listă, puteți revizui toate informațiile incluse în descriptorul de securitate.
Get-Acl -Path C:\Folder1|Format-List
Utilizând următoarea comandă, puteți prelua o listă mai detaliată a proprietății access cu drepturile sistemului de fișiere, tipul de control al accesului și setările de moștenire pentru obiectul specificat:
(Get-Acl -Path C:\Folder1).Access
De asemenea, puteți prelua numai anumite proprietăți Access formatate într-un format de tabel, așa cum se arată în următorul exemplu:
(Get-Acl -Path C:\Folder1).Access|Format-Table IdentityReference, FileSystemRights, AccessControlType, IsInherited
Actualizarea permisiunilor de acces la fișiere și foldere
Cmdletul Set-Acl este utilizat pentru a aplica modificări la ACL pe un anumit obiect. Procesul de modificare a permisiunilor de fișier sau folder constă în următorii pași:
- Utilizați Get-Acl pentru a prelua regulile ACL existente pentru obiect.
- Creați un nou FileSystemAccessRule care să fie aplicat obiectului.
- Adăugați noua regulă la setul de permisiuni ACL existent.
- Utilizați Set-Acl pentru a aplica noul ACL la fișierul sau folderul existent.
Următorul exemplu atribuie permisiunea de modificare la C:\Folder1 pentru un utilizator local numit User1.
Primul pas este să declarați o variabilă care include regulile ACL existente pentru Folder1.
$ACL = Get-Acl -Path C:\Folder1
Al doilea pas este crearea unei noi variabile FileSystemAccessRule care specifică specificațiile de acces care trebuie aplicate:
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("User1","Modify","Allow")
Al treilea pas este să adăugați noua regulă de acces la regulile ACL existente pentru Folder1:
$ACL.SetAccessRule($AccessRule)
În cele din urmă, trebuie să aplicați noul ACL la Folder1:
$ACL | Set-Acl -Path C:\Folder1
Notă
De asemenea, puteți configura o regulă de acces pentru a elimina permisiunile Folder1 pentru Utilizator1 prin simpla schimbare a pasului 3 în $ACL.RemoveAccessRule($AccessRule).
Copierea unui descriptor de securitate într-un obiect nou
Dacă doriți să copiați descriptorul de securitate exact într-un obiect nou, puteți utiliza o combinație de comenzi Get-Acl și Set-Acl după cum urmează:
Get-Acl -Path C:\Folder1|Set-ACL -Path C:\Folder2
Aceste comenzi copiază valorile din descriptorul de securitate C:\Folder1 în descriptorul de securitate Folder2. Când comenzile se termină, descriptorii de securitate pentru ambele foldere sunt identici.