Megosztás a következőn keresztül:


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

ByPath (Alapértelmezett)

Set-Acl
    [-Path] <String[]>
    [-AclObject] <Object>
    [-ClearCentralAccessPolicy]
    [-PassThru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByInputObject

Set-Acl
    [-InputObject] <PSObject>
    [-AclObject] <Object>
    [-PassThru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByLiteralPath

Set-Acl
    [-AclObject] <Object>
    -LiteralPath <String[]>
    [-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 Set-Aclhasználatához használja a Path vagy 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 olyan 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 az elem biztonsági leírójában szereplő értékeket az AclObject paraméter értékeinek megfelelően módosítja.

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 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 a Set-Acl használatával módosítja a Cat.txt ACL-jének értékeit az $DogACLértékeire.

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

2. példa: Használja a pipeline operátort egy leíró átadására

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

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 folyamatműködtető (|) átad egy objektumot, amely a Dog.txt biztonsági leírót jelöli a Set-Acl parancsmagnak.

A második parancs alkalmazza a Set-Acl biztonsági leíróját Cat.txt-re a Dog.txt használatával. 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 C:\Temp könyvtár összes szövegfájljára é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 a $NewACL változóban.

A folyamat első parancsa a Get-ChildItem parancsmagot használja az C:\Temp könyvtár összes szövegfájljának lekéréséhez. A Recurse paraméter kiterjeszti a parancsot a C:\tempösszes alkönyvtárára. A 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. (A C:\temp\*.txtnem használható, mert a Recurse paraméter nem fájlokon, hanem könyvtárakon működik.)

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

A gyakorlatban a legjobb, ha a WhatIf paramétert használja az összes olyan Set-Acl parancsgal, amely több elemet is érinthet. Ebben az esetben a folyamat második parancsa 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 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éstől való védelméhez állítsa a $isProtected változót $trueértékre. Az öröklés engedélyezéséhez állítsa $isProtected$falseértékre. További információért lásd: hozzáférési szabályvédelmének beállítása.

Állítsa a $preserveInheritance változót $true az ö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édelmének frissítése a SetAccessRuleProtection() metódussal történik.

Az utolsó parancs Set-Acl használatával alkalmazza a biztonsági leírót Dog.txtszámára. A parancs végrehajtásakor a Pets mappából örökölt Dog.txt ACL-jeit közvetlenül a Dog.txt-re alkalmazzuk, és a Pets mappához hozzáadott új hozzáférési szabályzatok nem módosítják a Dog.txtelérését.

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
$newParams = @{
  TypeName     = 'System.Security.AccessControl.FileSystemAccessRule'
    ArgumentList = $fileSystemAccessRuleArgumentList
}
$fileSystemAccessRule = New-Object @newParams
# Apply new rule
$NewAcl.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl

Ez a parancs biztosítja a BUILTIN\Rendszergazdák csoport teljes hozzáférését 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 azért jönnek létre, hogy a BUILTIN\Rendszergazdák csoport teljes mértékben szabályozhassa a Dog.txt fájlt. A $identity változó egy felhasználói fióknevére van állítva. A $fileSystemRights változó FullControl értékre van állítva, és a FileSystemRights értékek bármelyike lehet, amely meghatározza a hozzáférési szabályhoz társított művelet típusát. A $type "Engedélyezés" értékre állított változó határozza meg, hogy engedélyezi-e vagy megtagadja-e a műveletet. Az $fileSystemAccessRuleArgumentList változó argumentumlistát ad át az új FileSystemAccessRule objektum létrehozásakor. Ezután létrejön egy új FileSystemAccessRule objektum, és a FileSystemAccessRule objektumot a rendszer átadja a SetAccessRule() metódusnak, hozzáadja az új hozzáférési szabályt.

Az utolsó parancs Set-Acl használatával alkalmazza a biztonsági leírót Dog.txtszámára. Amikor a parancs befejeződik, a BUILTIN\Rendszergazdák csoport teljes mértékben ellenőrzést kap a Dog.txtfelett.

Paraméterek

-AclObject

A kívánt tulajdonságértékekkel rendelkező ACL-t ad meg. Set-Acl a Elérési út vagy 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.

Paramétertulajdonságok

Típus:Object
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:1
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PSPath, LP

Paraméterkészletek

ByPath
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
ByLiteralPath
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Confirm

Megerősítést kér a parancsmag futtatása előtt.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Cf

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Exclude

Kihagyja a megadott elemeket. Ennek a paraméternek az értéke a 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Filter

A szűrőt a szolgáltató formátumában vagy nyelvén adja meg. Ennek a paraméternek az értéke a 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.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Include

Csak a megadott elemeket módosítja. Ennek a paraméternek az értéke a 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-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ó objektumot nem lehet átirányítani a Set-Acl-ra. Ehelyett használja az InputObject paramétert explicit módon a parancsban.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Paramétertulajdonságok

Típus:PSObject
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ByInputObject
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték: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íráskor lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út escape karaktereket tartalmaz, tedd egyes idézőjelbe ('). Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:PSPath

Paraméterkészletek

ByLiteralPath
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 ad át Set-Acl (vagy az AclObject vagy SecurityDescriptor paraméter használatával, vagy egy biztonsági objektum Get-Acl-ről Set-Acl) való átadására, és kihagyja a 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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

ByPath
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-WhatIf

Megjeleníti, mi történne, ha a parancsmag futna. A parancsmag nem fut.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Wi

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

ObjectSecurity

Ehhez a parancsmaghoz ACL-objektumot is be lehet csövezni.

CommonSecurityDescriptor

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.

FileSecurity

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