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álathoz Set-Acl
használja az Elérési út vagy az InputObject paramétert annak az elemnek a azonosításához, amelynek 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 megadott biztonsági leírót alkalmazza. Az AclObject paraméter értékét használja modellként, és módosítja az elem biztonsági leírójának értékeit az AclObject paraméter értékeinek megfelelően.
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ának értékeit a Cat.txt fájl biztonsági leírójára másolja. Amikor a parancsok befejeződnek, a Dog.txt és a Cat.txt fájlok biztonsági leírói azonosak.
Az első parancs a Get-Acl
parancsmaggal lekéri 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 Set-Acl
a Cat.txt ACL-jének értékeit a következő $DogACL
értékre 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 a modell ACL-je, 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ővel (|
) küldi el a biztonsági leírót egy Get-Acl
parancsból egy Set-Acl
parancsnak.
Az első parancs a Get-Acl
parancsmaggal lekéri a Dog.txt fájl biztonsági leíróját. 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 azonosak.
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 lévő C:\Temp
összes szövegfájlra és annak összes alkönyvtárára 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átor (=
) használatával 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 a parancs minden alkönyvtárára C:\temp
. 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, nem fájlokon működik.)
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 minden olyan parancsmal Set-Acl
használni, amely több elemet is érinthet. Ebben az esetben a folyamat második parancsa a következő lesz 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: 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őmappákból, miközben továbbra is megőrzik a meglévő öröklődő hozzáférési szabályokat.
Az első parancs a Get-Acl
parancsmaggal lekéri a Dog.txt fájl biztonsági leíróját.
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éstől való 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 be $isProtected
a következőt $false
: . További információkért lásd a hozzáférési szabályok védelmének beállítását.
Állítsa be a változót $true
az $preserveInheritance
ö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
. A parancs befejeződésekor a Pets mappából öröklő Dog.txt ACL-jei közvetlenül a Dog.txt lesznek alkalmazva, és a Háziállatokhoz hozzáadott új hozzáférési szabályzatok nem módosítják a Dog.txt elérését.
5. példa: A Rendszergazda istratorok 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\Rendszergazda istrators csoportnak a Dog.txt fájlhoz.
Az első parancs a Get-Acl
parancsmaggal lekéri a Dog.txt fájl biztonsági leíróját.
A következő változók úgy jönnek létre, hogy a BUILTIN\Rendszergazda istrators csoport teljes mértékben szabályozhassa 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ó azt határozza meg, hogy engedélyezi 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 objektum átkerül a SetAccessRule() metódusba, 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
. Amikor a parancs befejeződik, a BUILTIN\Rendszergazda istrators 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óban, majd az AclObject paraméterrel átadhatja a változót, vagy beírhat egy Get-Acl
parancsot.
Type: | Object |
Position: | 1 |
Default value: | None |
Required: | True |
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ályzatait. További információ: Dinamikus hozzáférés-vezérlés: Forgatókönyv áttekintése.
Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | 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 |
Required: | 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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
A szűrőt a szolgáltató formátumában vagy nyelvén adja meg. 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, 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 beolvasásakor alkalmazza ahelyett, hogy a PowerShell a lekérésük után szűri az objektumokat.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
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 |
Required: | False |
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-Acl
objektum nem hajtható végre. Ehelyett használja az InputObject paramétert kifejezetten a parancsban.
Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Módosítja a megadott elem biztonsági leíróját. A Path-tal ellentétben a LiteralPath paraméter értéke pontosan a beírt módon lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz feloldó karaktereket, csatolja egy idézőjelbe ('
).
Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.
Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Passthru
Olyan objektumot ad vissza, amely a módosított biztonsági leírót jelöli. Ez a parancsmag alapértelmezés szerint nem hoz létre kimenetet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
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 (vagy az AclObject vagy SecurityDescriptor paraméterek használatával, vagy egy biztonsági objektum get-Acl-ből get-Acl-be Set-Acl
való továbbítá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 |
Required: | True |
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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bevitelek
Ehhez a parancsmaghoz ACL-objektumot is be lehet csövezni.
Ehhez a parancsmaghoz egy biztonsági leírót is be lehet csövezni.
Kimenetek
None
Ez a parancsmag alapértelmezés szerint nem ad vissza kimenetet.
A PassThru paraméter használatakor ez a parancsmag egy biztonsági objektumot ad vissza. 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.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: