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-Acl
parancsba 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:\Temp
kö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-Acl
cmdletnek, 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
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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
.