Set-Acl

Modul: PowerShell.Security

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

Syntax

Set-Acl <String> <Object> >] >] 
Set-Acl <PSObject> <Object> >] >] 
Set-Acl -LiteralPath <String> <Object> >] >] 

Description

A Set-Acl cmdlet megváltoztatja egy megadott elem, például egy fájl vagy aregistry kulcs biztonsági leíróját, hogy az megfeleljen az Ön által megadott biztonsági leíró értékeinek.

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

Példák

1. példa: Biztonsági leíró másolása egyik fájlból egy 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ába másolják az értékeket. A parancsok végrehajtása után a Dog.txt és a Cat.txt fájlok biztonsági leírói megegyeznek.

Az első parancs a Get-Acl cmdlet segítségével lekérdezi a Dog.txt fájl biztonsági leíróját.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 a Set-Acl paranccsal módosítja a Cat.txt fájl ACL-jének értékeit a $DogACL-ban szereplő értékekre.

A Path paraméter értéke a Cat.txt fájl elérési útvonala. Az AclObjectparaméter értéke a modell ACL-je, ebben az esetben a Dog.txt ACL-je, ahogyan azt a $DogACL változóba mentette.

2. példa: A csővezeték-operátor használata egy leíró átadásához

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

Ez a parancs majdnem ugyanaz, mint az előző példában szereplő parancs, kivéve, hogy az apipeline operátor (|) segítségével a biztonsági leírót egy Get-Acl parancsból egy Set-Aclparancsba küldi.

Az első parancs a Get-Acl cmdlet segítségével megszerzi a Dog.txt fájl biztonsági leíróját. Apipeline operátor (|) átadja a Dog.txt biztonsági leírót reprezentáló objektumot a Set-Acl cmdletnek.

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

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

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

Ezek a parancsok a biztonsági leírókat a File0.txt fájlra a C:\Tempkönyvtárban és annak összes alkönyvtárában lévő összes szöveges fájlra.

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

A csővezeték első parancsa a Get-ChildItem parancsikonnal a C:\Temp könyvtárban lévő összes szöveges fájlhoz jut el. A Recurse paraméter kiterjeszti a parancsot aC:\temp összes alkönyvtárára. Az Include paraméter a .txt fájlnévkiterjesztéssel rendelkező fájlokra korlátozza a lekérdezett fájlokat. A Force paraméter olyan rejtett fájlokat is megkapja, amelyek egyébként ki lennének zárva. (A c:\temp\*.txt nem használható, mivel a Recurse paraméter könyvtárakra működik, nem fájlokra.)

A csővezeték-operátor (|) elküldi a lehívott fájlokat képviselő objektumokat a Set-Aclcmdletnek, amely az AclObject paraméterben szereplő biztonsági leírót alkalmazza a csővezetékben lévő összes fájlra.

A gyakorlatban a WhatIf paramétert érdemes használni minden olyan Set-Acl parancsnál, amely egynél több elemet érinthet. Ebben az esetben a második parancs a csővezetékben aSet-Acl -AclObject $NewAcl -WhatIf lenne. Ez a parancs felsorolja a parancs által érintett fájlokat. Az eredmény áttekintése után újra lefuttathatja a parancsot a WhatIf paraméter nélkül.

4. példa: Az öröklés letiltása és az ö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 hozzáférés öröklését a szülői mappákból, miközben megőrzik a meglévő örökölt hozzáférési szabályokat.

Az első parancs a Get-Acl cmdlet segítségével lekérdezi a Dog.txt fájl biztonsági leíróját.

Ezután változókat hoz létre az örökölt hozzáférési szabályok explicit hozzáférési szabályokká alakításához. Hogy megvédje a hozzá tartozó hozzáférési szabályokat az örökléstől, állítsa a $isProtected változót $true-re.hogy engedélyezze az öröklést, állítsa a $isProtected változót $false-re. További információért lásd: Hozzáférési szabályok védelme.A $preserveInheritance változó $true értékre állítva megőrzi az örökölt hozzáférési szabályokat; false az örökölt hozzáférési szabályok törléséhez. Ezután a hozzáférési szabály védelme aSetAccessRuleProtection() metódus segítségével frissül.

Az utolsó parancs a Set-Acl segítségével alkalmazza a Dog.txt biztonsági leíróját. Amikor a parancs befejeződik, a Dog.txt-nek a Pets mappából örökölt ACL-jei közvetlenül a Dog.txt-re lesznek alkalmazva, és a Pets mappához hozzáadott új hozzáférési házirendek nem fogják megváltoztatni a Dog.txt hozzáférését.

5. példa: Teljes hozzáférés biztosítása a rendszergazdáknak 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 a BUILTIN\Administrators csoportnak biztosít teljes ellenőrzést a Dog.txt fájlhoz.

Az első parancs a Get-Acl cmdlet segítségével lekérdezi a Dog.txt fájl biztonsági leíróját.

A következő változók létrehozásával a BUILTIN\Administrators csoport teljes ellenőrzést kap a Dog.txt fájlhoz. A $identity változót az auser fiók nevére állítottuk be. A$fileSystemRights változó a FullControl értékre van állítva, és lehet aFileSystemRights értékek bármelyike, amely meghatározza a hozzáférési szabályhoz tartozó művelet típusát. Az $type változó “Allow”-ra állítva, hogy meghatározza, hogy a műveletet engedélyezze vagy megtagadja. A $fileSystemAccessRuleArgumentList változóaz új FileSystemAccessRule objektum létrehozásakor átadandó argumentumlista. Ezután egy újFileSystemAccessRule objektum jön létre, és a FileSystemAccessRule objektumot átadja aSetAccessRule() metódusnak, hozzáadja az új hozzáférési szabályt.

Az utolsó parancs a Set-Acl segítségével alkalmazza a Dog.txt biztonsági leíróját. Amikor a parancs befejeződik, a BUILTIN\Administrators csoportnak teljes ellenőrzése lesz a Dog.txt felett.

Parameters

-AclObject

Meghatároz egy ACL-t a kívánt tulajdonságértékekkel. Set-Acl Megváltoztatja a Path vagy InputObject paraméter által megadott elem ACL-jét, hogy az megfeleljen a megadott biztonsági objektumban lévő értékeknek.

Egy Get-Acl parancs kimenetét elmentheti egy változóba, majd az AclObjectparamé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

Törli a központi hozzáférési szabályzatot a megadott elemről.

A Windows Server 2012-től kezdődően a rendszergazdák az Active Directory és a csoportházirend segítségével központi hozzáférési házirendeket állíthatnak be felhasználók és csoportok számára. További információért lásd: Dinamikus hozzáférés-szabályozás: Scenario Overview.

Ez a paraméter a Windows PowerShell 3.0-ban került bevezetésre.

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

A cmdlet futtatása előtt megerősítést kér.

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

Kizárja a megadott elemeket. Ennek a paraméternek az értéke minősíti a Path paramétert. Adja meg az apath elemet vagy mintát, például *.txt. A helyettesítő karakterek engedélyezettek.

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ében. Ennek a paraméternek az értéke minősíti aPath paramétert. A szűrő szintaxisa, beleértve a helyettesítőjelek használatát, a szolgáltatótól függ. A szűrők hatékonyabbak, mint más paraméterek, mivel a szolgáltató az objektumok lekérdezésekor alkalmazza őket, ahelyett, hogy a PowerShell szűrné az objektumokat a lekérdezés után.

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 minősíti a Path paramétert.Adjon meg egy útvonalelemet vagy mintát, például *.txt. Jokerjelek használata megengedett.

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 objektumotvagy egy parancsot, amely megszerzi az objektumot.

A módosítandó objektumot nem lehet Set-Acl-be pipázni. Ehelyett használja kifejezetten az InputObject paramétert a parancsban.

Ez a paraméter a Windows PowerShell 3.0-ban került bevezetésre.

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-tól eltérően aLiteralPath paraméter értéke pontosan a beírt módon kerül felhasználásra. A karakterek nem értelmezhetők vadkártyaként. Ha az elérési útvonal escape-karaktereket tartalmaz, zárja azt egyszerű idézőjelekbe (').Az egyszerű idézőjelek azt jelzik a PowerShell számára, hogy ne értelmezzen semmilyen karaktert escape-szekvenciaként.

Ez a paraméter a Windows PowerShell 3.0-ban került bevezetésre.

Type: String
Alias: PSPath
Pozíció: Named
Default value: None
Accept pipeline input: True
Accept wildcard characters: False
-Passthru

Visszaad egy objektumot, amely a módosított biztonsági leírót képviseli. Alapértelmezés szerint ez a cmdlet nem generál 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 útvonalát, például egy fájl vagy egy beállításkulcs elérési útvonalát. Wildcards engedélyezett.

Ha egy biztonsági objektumot ad át a Set-Acl-nek (akár az AclObject vagy aSecurityDescriptor paraméterek használatával, akár a Get-Acl-ből a Set-Acl-nek), és elhagyja a Path paramétert (név és érték), a Set-Acl a biztonsági objektumban szereplő elérési utat használja.

Type: String
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: True
-WhatIf

Mutatja, mi történne, ha a cmdlet futna. A cmdlet nem fut le.

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

Inputs

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

A Set-Acl-be ACL objektumot vagy biztonsági leírót pipázhat.

Kimenetek

FileSecurity

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

Jegyzetek

Ez a cmdlet csak Windows platformokon érhető el.

A Set-Acl cmdletet a PowerShell fájlrendszer- és registryszolgáltatók támogatják. Így a fájlok, könyvtárak és beállításjegyzékkulcsok biztonsági leíróinak módosítására is használható.

  • Get-Acl
  • FileSystemAccessRule
  • ObjectSecurity.SetAccessRuleProtection
  • FileSystemRights

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.