Delen via


Set-Acl

Hiermee wijzigt u de beveiligingsdescriptor van een opgegeven item, zoals een bestand of een registersleutel.

Syntax

ByPath (Standaard)

Set-Acl
    [-Path] <String[]>
    [-AclObject] <Object>
    [[-CentralAccessPolicy] <String>]
    [-ClearCentralAccessPolicy]
    [-Passthru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]

ByInputObject

Set-Acl
    [-InputObject] <PSObject>
    [-AclObject] <Object>
    [-Passthru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]

ByLiteralPath

Set-Acl
    [-AclObject] <Object>
    [[-CentralAccessPolicy] <String>]
    -LiteralPath <String[]>
    [-ClearCentralAccessPolicy]
    [-Passthru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]

Description

De Set-Acl-cmdlet wijzigt de beveiligingsdescriptor van een opgegeven item, zoals een bestand of een registersleutel, zodat deze overeenkomt met de waarden in een beveiligingsdescriptor die u opgeeft.

Als u Set-Aclwilt gebruiken, gebruikt u de parameter Path of InputObject om het item te identificeren waarvan u de beveiligingsdescriptor wilt wijzigen. Gebruik vervolgens de parameters AclObject of SecurityDescriptor om een beveiligingsdescriptor op te geven met de waarden die u wilt toepassen. Set-Acl past de beveiligingsdescriptor toe die wordt opgegeven. Hierbij wordt de waarde van de parameter AclObject als model gebruikt en worden de waarden in de beveiligingsdescriptor van het item gewijzigd zodat deze overeenkomt met de waarden in de parameter AclObject.

Voorbeelden

Voorbeeld 1: Een beveiligingsdescriptor kopiëren van het ene bestand naar het andere

$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL

Met deze opdrachten worden de waarden uit de beveiligingsdescriptor van het Dog.txt-bestand gekopieerd naar de beveiligingsdescriptor van het Cat.txt-bestand. Wanneer de opdrachten zijn voltooid, zijn de beveiligingsdescriptors van de Dog.txt- en Cat.txt-bestanden identiek.

De eerste opdracht maakt gebruik van de Get-Acl-cmdlet om de beveiligingsdescriptor van het Dog.txt-bestand op te halen. De toewijzingsoperator (=) slaat de beveiligingsdescriptor op in de waarde van de $DogACL variabele.

De tweede opdracht gebruikt Set-Acl om de waarden in de ACL van Cat.txt te wijzigen in de waarden in $DogACL.

De waarde van de parameter Path is het pad naar het Cat.txt-bestand. De waarde van de parameter AclObject is de ACL van het model, in dit geval de ACL van Dog.txt zoals opgeslagen in de $DogACL variabele.

Voorbeeld 2: De pijplijnoperator gebruiken om een descriptor door te geven

Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"

Deze opdracht is bijna hetzelfde als de opdracht in het vorige voorbeeld, behalve dat er een pijplijnoperator wordt gebruikt om de beveiligingsdescriptor van een Get-Aclcommand naar een Set-Acl opdracht te verzenden.

De eerste opdracht maakt gebruik van de cmdlet Get-Acl om de beveiligingsdescriptor van het Dog.txt-bestand op te halen. De pijplijnoperator (|) geeft een object door dat de Dog.txt beveiligingsdescriptor aan de Set-Acl cmdlet vertegenwoordigt.

De tweede opdracht gebruikt Set-Acl om de beveiligingsdescriptor van Dog.txt toe te passen op Cat.txt. Wanneer de opdracht is voltooid, zijn de ACL's van de Dog.txt- en Cat.txt-bestanden identiek.

Voorbeeld 3: Een beveiligingsdescriptor toepassen op meerdere bestanden

$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl

Met deze opdrachten worden de beveiligingsdescriptors in het File0.txt-bestand toegepast op alle tekstbestanden in de map C:\Temp en alle bijbehorende submappen.

Met de eerste opdracht wordt de beveiligingsdescriptor van het File0.txt-bestand in de huidige map opgehaald en wordt de toewijzingsoperator (=) gebruikt om het op te slaan in de $NewACL variabele.

De eerste opdracht in de pijplijn maakt gebruik van de Get-ChildItem cmdlet om alle tekstbestanden op te halen in de map C:\Temp. De parameter Recurse breidt de opdracht uit naar alle submappen van C:\temp. De parameter Include beperkt de bestanden die zijn opgehaald aan bestanden met de bestandsnaamextensie '.txt'. De Force parameter haalt verborgen bestanden op, die anders zouden worden uitgesloten. (U kunt 'c:\temp*.txt' niet gebruiken, omdat de parameter Recurse- werkt in mappen, niet op bestanden.)

De pijplijnoperator (|) verzendt de objecten die de opgehaalde bestanden vertegenwoordigen naar de cmdlet Set-Acl, waarmee de beveiligingsdescriptor in de parameter AclObject wordt toegepast op alle bestanden in de pijplijn.

In de praktijk kunt u het beste de parameter WhatIf gebruiken met alle Set-Acl opdrachten die van invloed kunnen zijn op meer dan één item. In dit geval is de tweede opdracht in de pijplijn 'Set-Acl -AclObject $NewAcl -WhatIf'. Met deze opdracht worden de bestanden vermeld die worden beïnvloed door de opdracht. Nadat u het resultaat hebt gecontroleerd, kunt u de opdracht opnieuw uitvoeren zonder de WhatIf parameter.

Parameters

-AclObject

Specificeert een ACL met de gewenste eigenschapswaarden. Set-Acl wijzigt de ACL van het item dat is opgegeven door de Path of InputObject parameter zodat deze overeenkomt met de waarden in het opgegeven beveiligingsobject.

U kunt de uitvoer van een Get-Acl opdracht opslaan in een variabele en vervolgens de parameter AclObject gebruiken om de variabele door te geven of een Get-Acl opdracht typen.

Parametereigenschappen

Type:Object
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:1
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-CentralAccessPolicy

Hiermee wordt het centrale toegangsbeleid van het item tot stand brengen of gewijzigd. Voer de CAP-id of beschrijvende naam in van een centraal toegangsbeleid op de computer.

Vanaf Windows Server 2012 kunnen beheerders Active Directory en groepsbeleid gebruiken om centraal toegangsbeleid in te stellen voor gebruikers en groepen. Zie Dynamisch toegangsbeheer: Scenariooverzichtvoor meer informatie.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ByPath
Position:2
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False
ByLiteralPath
Position:2
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-ClearCentralAccessPolicy

Hiermee verwijdert u het centrale toegangsbeleid uit het opgegeven item.

Vanaf Windows Server 2012 kunnen beheerders Active Directory en groepsbeleid gebruiken om centraal toegangsbeleid in te stellen voor gebruikers en groepen. Zie Dynamisch toegangsbeheer: Scenariooverzichtvoor meer informatie.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ByPath
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False
ByLiteralPath
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Confirm

Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Cf

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Exclude

Hiermee worden de opgegeven items weggelaten. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of -patroon in, zoals '*.txt'. Wildcards zijn toegestaan.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Filter

Hiermee specificeert u een filter in de taal of indeling van de provider. De waarde van deze parameter komt in aanmerking voor de parameter Path. De syntaxis van het filter, inclusief het gebruik van jokertekens, is afhankelijk van de provider. Filters zijn efficiënter dan andere parameters, omdat de provider deze toepast bij het ophalen van de objecten in plaats van PowerShell de objecten te laten filteren nadat ze zijn opgehaald.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Include

Alleen de opgegeven items worden gewijzigd. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of -patroon in, zoals '*.txt'. Wildcards zijn toegestaan.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-InputObject

Hiermee wijzigt u de beveiligingsdescriptor van het opgegeven object. Voer een variabele in die het object of een opdracht bevat waarmee het object wordt opgehaald.

U kunt het object dat moet worden gewijzigd, niet doorsluisen naar set-Acl-. Gebruik in plaats daarvan de parameter InputObject expliciet in de opdracht.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Parametereigenschappen

Type:PSObject
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

ByInputObject
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-LiteralPath

Hiermee wijzigt u de beveiligingsdescriptor van het opgegeven item. In tegenstelling tot Pad, wordt de waarde van de parameter LiteralPath exact gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escape-tekens bevat, zet het dan tussen enkele aanhalingstekens. Enkele aanhalingstekens zorgen ervoor dat PowerShell geen tekens als escapesequenties interpreteert.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:PSPath

Parametersets

ByLiteralPath
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Passthru

Hiermee wordt een object geretourneerd dat de beveiligingsdescriptor vertegenwoordigt die is gewijzigd. Deze cmdlet genereert standaard geen uitvoer.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Path

Hiermee wijzigt u de beveiligingsdescriptor van het opgegeven item. Voer het pad naar een item in, zoals een pad naar een bestand of registersleutel. Wildcards zijn toegestaan.

Als u een beveiligingsobject doorgeeft aan Set-Acl (met behulp van de AclObject of SecurityDescriptor parameters of door een beveiligingsobject door te geven van Get-Acl naar Set-Acl), laat u de parameter Path (naam en waarde) weg, Set-Acl gebruikt het pad dat is opgenomen in het beveiligingsobject.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

ByPath
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-UseTransaction

Bevat de opdracht in de actieve transactie. Deze parameter is alleen geldig wanneer een transactie wordt uitgevoerd. Zie about_Transactions voor meer informatie.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:usetx

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-WhatIf

Toont wat er zou gebeuren wanneer de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Wi

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

System.Security.AccessControl.ObjectSecurity, System.Security.AccessControl.CommonSecurityDescriptor

U kunt een ACL-object of een beveiligingsdescriptor doorsluisen naar Set-Acl.

Uitvoerwaarden

FileSecurity

Standaard genereert Set-Acl geen uitvoer. Als u echter de parameter Passthru gebruikt, wordt er een beveiligingsobject gegenereerd. Het type van het beveiligingsobject is afhankelijk van het type item.

Notities

De Set-Acl cmdlet wordt ondersteund door de PowerShell-bestandssysteem- en registerproviders. Als zodanig kunt u deze gebruiken om de beveiligingsdescriptors van bestanden, mappen en registersleutels te wijzigen.