Administrer tilladelser med PowerShell

Fuldført

Modulet Microsoft.PowerShell.Security indeholder mange indbyggede cmdlet'er, som du kan bruge til at administrere de grundlæggende sikkerhedsfunktioner på en Windows-computer. Hvis du vil gennemse de cmdlet'er, der er inkluderet i dette modul, kan du angive følgende kommando:

Get-command -module Microsoft.PowerShell.Security

Hvis du vil administrere adgangstilladelser til en fil eller mappe, skal du bruge følgende cmdlet'er, der er inkluderet i modulet Microsoft.PowerShell.Security.

Tabel 1: Cmdlet'er, der er inkluderet i Microsoft.PowerShell.Security-modulet

Cmdlet- beskrivelse
Get-Acl- Denne cmdlet henter objekter, der repræsenterer sikkerhedsbeskrivelsen for en fil eller ressource. Sikkerhedsbeskrivelsen indeholder ressourcens adgangskontrollister (ACL'er). ACL viser de tilladelser, som brugere og grupper skal have for at få adgang til ressourcen.
Set-Acl- Denne cmdlet ændrer sikkerhedsbeskrivelsen for et angivet element, f.eks. en fil, mappe eller en registreringsdatabasenøgle, så den svarer til værdierne i en sikkerhedsbeskrivelse, som du angiver.

Henter adgangstilladelser

Cmdlet'en Get-Acl viser sikkerhedsbeskrivelsen for et objekt. Du kan f.eks. hente sikkerhedsbeskrivelsen for en mappe med navnet C:\Folder1. Outputtet vises som standard i et tabelformat. Hvis du sender outputtet til et listeformat, kan du gennemse alle de oplysninger, der er inkluderet i sikkerhedsbeskrivelsen.

Get-Acl -Path C:\Folder1|Format-List

Ved hjælp af følgende kommando kan du hente en mere detaljeret liste over adgangsegenskaben med filsystemrettigheder, adgangskontroltype og nedarvningsindstillinger for det angivne objekt:

(Get-Acl -Path C:\Folder1).Access

Du kan også kun hente bestemte Access-egenskaber, der er formateret i et tabelformat, som vist i følgende eksempel:

(Get-Acl -Path C:\Folder1).Access|Format-Table IdentityReference, FileSystemRights, AccessControlType, IsInherited

Opdaterer tilladelser til fil- og mappeadgang

Cmdlet'en Set-Acl bruges til at anvende ændringer på ACL'en på et bestemt objekt. Processen til ændring af fil- eller mappetilladelser består af følgende trin:

  1. Brug Get-Acl- til at hente de eksisterende ACL-regler for objektet.
  2. Opret en ny FileSystemAccessRule, der skal anvendes på objektet.
  3. Føj den nye regel til det eksisterende ACL-tilladelsessæt.
  4. Brug Set-Acl- til at anvende den nye ACL på den eksisterende fil eller mappe.

I følgende eksempel tildeles tilladelsen Rediger til C:\Folder1- for en lokal bruger med navnet User1.

Det første trin er at deklarere en variabel, der indeholder de eksisterende ACL-regler for Folder1.

$ACL = Get-Acl -Path C:\Folder1

Det andet trin er at oprette en ny FileSystemAccessRule-variabel, som angiver de adgangsspecifikationer, der skal anvendes:

$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("User1","Modify","Allow")

Det tredje trin er at føje den nye adgangsregel til de eksisterende ACL-regler for Folder1:

$ACL.SetAccessRule($AccessRule)

Endelig skal du anvende den nye ACL på Folder1:

$ACL | Set-Acl -Path C:\Folder1

Seddel

Du kan også konfigurere en adgangsregel for at fjerne Folder1 tilladelser for User1 ved blot at ændre trin 3 til $ACL.RemoveAccessRule($AccessRule).

Kopierer en sikkerhedsbeskrivelse til et nyt objekt

Hvis du vil kopiere den nøjagtige sikkerhedsbeskrivelse til et nyt objekt, kan du bruge en kombination af kommandoerne Get-Acl og Set-Acl på følgende måde:

Get-Acl -Path C:\Folder1|Set-ACL -Path C:\Folder2

Disse kommandoer kopierer værdierne fra sikkerhedsbeskrivelsen for C:\Folder1 til sikkerhedsbeskrivelsen for Folder2. Når kommandoerne er fuldført, er sikkerhedsbeskrivelserne for begge mapper identiske.