Set-Acl

Módosítja egy adott elem biztonsági leíróját, például egy fájlt vagy egy beállításkulcsot.

Syntax

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

Description

Ez a parancsmag csak a Windows platformon érhető el.

A Set-Acl parancsmag módosítja egy adott elem biztonsági leíróját, például egy fájlt vagy egy beállításkulcsot, hogy megfeleljen a megadott biztonsági leíró értékeinek.

A használatához Set-Aclhasználja az Elérési út vagy az InputObject paramétert annak az elemnek a azonosításához, amelynek a biztonsági leíróját módosítani szeretné. Ezután az AclObject vagy SecurityDescriptor paraméterekkel adjon meg egy biztonsági leírót, amely tartalmazza az alkalmazni kívánt értékeket. Set-Acl A a megadott biztonsági leírót alkalmazza. Modellként az AclObject paraméter értékét használja, és az elem biztonsági leírójának értékeit úgy módosítja, hogy megfeleljenek az AclObject paraméter értékeinek.

Példák

1. példa: Biztonsági leíró másolása egyik fájlból a másikba

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

Ezek a parancsok a Dog.txt fájl biztonsági leírójából a Cat.txt fájl biztonsági leírójára másolja az értékeket. A parancsok befejeződésekor a Dog.txt és Cat.txt fájlok biztonsági leírói azonosak.

Az első parancs a Get-Acl parancsmagot használja a Dog.txt fájl biztonsági leírójának lekéréséhez. A hozzárendelési operátor (=) a biztonsági leírót a $DogACL változó értékében tárolja.

A második parancs Set-Acl a Cat.txt ACL-jének értékeit a benne lévő $DogACLértékekre módosítja.

Az Elérési út paraméter értéke a Cat.txt fájl elérési útja. Az AclObject paraméter értéke az ACL modell, ebben az esetben a változóban $DogACL mentett Dog.txt ACL-je.

2. példa: Leíró átadása a folyamatkezelővel

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

Ez a parancs majdnem megegyezik az előző példában szereplő paranccsal, azzal a kivételrel, hogy egy folyamatkezelő (|) használatával küldi el a biztonsági leírót egy Get-Acl parancsból egy Set-Acl parancsnak.

Az első parancs a Get-Acl parancsmagot használja a Dog.txt fájl biztonsági leírójának lekéréséhez. A folyamatkezelő (|) átad egy objektumot, amely a Dog.txt biztonsági leírót jelöli a Set-Acl parancsmagnak.

A második parancs Set-Acl a Dog.txt biztonsági leíróját alkalmazza a Cat.txt. A parancs befejeződésekor a Dog.txt és Cat.txt fájlok ACL-jei megegyeznek.

3. példa: Biztonsági leíró alkalmazása több fájlra

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

Ezek a parancsok a File0.txt fájlban lévő biztonsági leírókat a könyvtárban és annak összes alkönyvtárában található C:\Temp összes szövegfájlra alkalmazzák.

Az első parancs lekéri a File0.txt fájl biztonsági leíróját az aktuális könyvtárban, és a hozzárendelési operátorral (=) tárolja azt a $NewACL változóban.

A folyamat első parancsa a Get-ChildItem parancsmagot használja a könyvtárban lévő C:\Temp összes szövegfájl lekéréséhez. A Recurse paraméter kiterjeszti a parancsot C:\tempa . Az Include paraméter korlátozza a lekért fájlokat a .txt fájlnévkiterjesztéssel rendelkezőkre. A Force paraméter rejtett fájlokat kap, amelyek egyébként ki lesznek zárva. (Nem használható c:\temp\*.txt, mert a Recurse paraméter könyvtárakon működik, nem fájlokon.)

A folyamatkezelő (|) elküldi a lekért fájlokat képviselő objektumokat a Set-Acl parancsmagnak, amely az AclObject paraméter biztonsági leíróját alkalmazza a folyamat összes fájljára.

A gyakorlatban a WhatIf paramétert érdemes használni az összes Set-Acl olyan parancshoz, amely egynél több elemet érinthet. Ebben az esetben a folyamat második parancsa a következő lenne Set-Acl -AclObject $NewAcl -WhatIf: . Ez a parancs felsorolja a parancs által érintett fájlokat. Az eredmény áttekintése után újra futtathatja a parancsot a WhatIf paraméter nélkül.

4. példa: Öröklés letiltása és örökölt hozzáférési szabályok megőrzése

$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
$isProtected = $true
$preserveInheritance = $true
$NewAcl.SetAccessRuleProtection($isProtected, $preserveInheritance)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl

Ezek a parancsok letiltják a szülőmappák hozzáférés-öröklését, miközben továbbra is megőrzik a meglévő örökölt hozzáférési szabályokat.

Az első parancs a Get-Acl parancsmagot használja a Dog.txt fájl biztonsági leírójának lekéréséhez.

Ezután változók jönnek létre, amelyek az örökölt hozzáférési szabályokat explicit hozzáférési szabályokká alakítják át. Az ezzel társított hozzáférési szabályok öröklés elleni védelméhez állítsa a változót a $isProtected következőre $true: . Az öröklés engedélyezéséhez állítsa a következőre $isProtected : $false. További információkért lásd a hozzáférési szabályok védelmének beállítását ismertető témakört.

Állítsa be a változót az $preserveInheritance$true örökölt hozzáférési szabályok megőrzéséhez vagy $false az örökölt hozzáférési szabályok eltávolításához. Ezután a hozzáférési szabály védelme a SetAccessRuleProtection() metódussal frissül.

Az utolsó parancs az Dog.txt biztonsági leírójának alkalmazását használja Set-Acl . Amikor a parancs befejeződik, a Pets mappából örökölt Dog.txt ACL-jei közvetlenül a Dog.txt lesznek alkalmazva, és a Petshez hozzáadott új hozzáférési szabályzatok nem módosítják a hozzáférést a Dog.txt.

5. példa: A rendszergazdák teljes hozzáférésének biztosítása a fájlhoz

$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
# Set properties
$identity = "BUILTIN\Administrators"
$fileSystemRights = "FullControl"
$type = "Allow"
# Create new rule
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
$fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList
# Apply new rule
$NewAcl.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl

Ez a parancs teljes hozzáférést biztosít a BUILTIN\Rendszergazdák csoportnak a Dog.txt fájlhoz.

Az első parancs a Get-Acl parancsmagot használja a Dog.txt fájl biztonsági leírójának lekéréséhez.

A következő változók úgy jönnek létre, hogy a BUILTIN\Rendszergazdák csoport teljes mértékben átvehesse a Dog.txt fájlt. A $identity változó egy felhasználói fiók nevére van állítva. A $fileSystemRights változó FullControl értékre van állítva, és bármely olyan FileSystemRights érték lehet, amely meghatározza a hozzáférési szabályhoz társított művelet típusát. Az $type "Engedélyezés" változó határozza meg, hogy engedélyezi-e vagy megtagadja-e a műveletet. A $fileSystemAccessRuleArgumentList változó egy argumentumlista, amelyet az új FileSystemAccessRule objektum létrehozásakor kell átadni. Ezután létrejön egy új FileSystemAccessRule objektum, és a FileSystemAccessRule objektumot átadja a SetAccessRule() metódusnak, és hozzáadja az új hozzáférési szabályt.

Az utolsó parancs az Dog.txt biztonsági leírójának alkalmazását használja Set-Acl . A parancs befejeződésekor a BUILTIN\Rendszergazdák csoport teljes mértékben felügyelni fogja a Dog.txt.

Paraméterek

-AclObject

A kívánt tulajdonságértékekkel rendelkező ACL-t ad meg. Set-Acl az Elérési út vagy az InputObject paraméter által megadott elem ACL-jének módosítása a megadott biztonsági objektum értékeinek megfelelően.

Mentheti egy Get-Acl parancs kimenetét egy változóba, majd az AclObject paraméterrel átadhatja a változót, vagy beírhat egy Get-Acl parancsot.

Type:Object
Position:1
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-ClearCentralAccessPolicy

Eltávolítja a központi hozzáférési szabályzatot a megadott elemből.

A Windows Server 2012-től kezdve a rendszergazdák az Active Directory és a Csoportházirend használatával állíthatják be a felhasználók és csoportok központi hozzáférési szabályzatát. További információ: Dinamikus Access Control: Forgatókönyv áttekintése.

Ez a paraméter a Windows PowerShell 3.0-s kiadásban lett bevezetve.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Kihagyja a megadott elemeket. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például *.txt. Helyettesítő karakterek használata engedélyezett.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Szűrőt ad meg a szolgáltató formátumában vagy nyelvén. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. A szűrő szintaxisa, beleértve a helyettesítő karakterek használatát is, a szolgáltatótól függ. A szűrők hatékonyabbak, mint a többi paraméter, mivel a szolgáltató azokat az objektumok lekérésekor alkalmazza ahelyett, hogy a PowerShell a lekérésük után szűri az objektumokat.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-Include

Csak a megadott elemeket módosítja. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például *.txt. Helyettesítő karakterek használata engedélyezett.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Módosítja a megadott objektum biztonsági leíróját. Adjon meg egy változót, amely tartalmazza az objektumot vagy az objektumot lekérő parancsot.

A módosítandó Set-Aclobjektum nem hajtható végre. Ehelyett használja az InputObject paramétert explicit módon a parancsban.

Ez a paraméter a Windows PowerShell 3.0-s kiadásban lett bevezetve.

Type:PSObject
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Módosítja a megadott elem biztonsági leíróját. A Path paramétertől eltérően a Literálpath paraméter értéke pontosan a beírt módon lesz felhasználva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz feloldó karaktereket, akkor tegye szimpla idézőjelek közé ('). Az egyszeres idézőjelek arra utasítják a PowerShellt, hogy ne értelmezze a karaktereket feloldósorozatként.

Ez a paraméter a Windows PowerShell 3.0-s kiadásban lett bevezetve.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Passthru

Egy olyan objektumot ad vissza, amely a módosított biztonsági leírót jelöli. Alapértelmezés szerint ez a parancsmag nem ad kimenetet.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Path

Módosítja a megadott elem biztonsági leíróját. Adja meg egy elem elérési útját, például egy fájl vagy egy beállításkulcs elérési útját. Helyettesítő karakterek használata engedélyezett.

Ha biztonsági objektumot Set-Acl ad át (az AclObject vagy SecurityDescriptor paraméterekkel vagy egy biztonsági objektum Get-Acl-ról Get-Acl-ra Set-Aclvaló átadásával), és kihagyja az Elérési út paramétert (név és érték), Set-Acl a biztonsági objektumban található elérési utat használja.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

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

Egy ACL-objektumot vagy egy biztonsági leírót átirányíthat a következőre Set-Acl: .

Kimenetek

FileSecurity

Alapértelmezés szerint Set-Acl nem hoz létre kimenetet. Ha azonban a Passthru paramétert használja, az létrehoz egy biztonsági objektumot. A biztonsági objektum típusa az elem típusától függ.

Jegyzetek

Ez a parancsmag csak Windows-platformokon érhető el.

A Set-Acl parancsmagot a PowerShell-fájlrendszer és a beállításjegyzék-szolgáltatók támogatják. Így módosíthatja a fájlok, könyvtárak és beállításkulcsok biztonsági leíróit.