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
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
.
