Weboldal keresés

Set-Acl (Microsoft.PowerShell.Security)


Set-Acl

Modul:
Microsoft.PowerShell.Security

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

Szintaxis

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

Leírás

Ez a parancsmag csak Windows platformon érhető el.

A Set-Acl parancsmag módosítja egy megadott elem, például egy fájl vagy egy beállításkulcs biztonsági leíróját, hogy megfeleljen az Ön által megadott biztonsági leíró értékeinek.

A Set-Acl használatához használja az Path vagy az InputObject paramétert annak az elemnek az azonosításához, amelynek biztonsági leíróját módosítani szeretné. Ezután az AclObject vagy a SecurityDescriptor paraméterekkel adja meg az alkalmazni kívánt értékekkel rendelkező biztonsági leírót. A Set-Acl a mellékelt 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, hogy megfeleljenek az AclObject paraméter értékeinek.

Példák

1. példa: Másoljon át egy biztonsági leírót 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 átmásolják az értékeket a Dog.txt fájl biztonsági leírójából a Cat.txt fájl biztonsági leírójába. Amikor a parancsok befejeződnek, a Dog.txt és a Cat.txt fájlok biztonsági leírói megegyeznek.

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ében található értékeket a $DogACL értékeire.

Az Path 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 Dog.txt fájl ACL-je a $DogACL változóba mentve.

2. példa: Használja a csővezeték operátort egy leíró átadásához

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 különbséggel, hogy egy folyamatoperátor (|) segítségével küldi el a biztonsági leírót a Get-Acl parancsból a következőre. egy Set-Acl parancsot.

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 folyamatoperátor (|) átad egy objektumot, amely a Dog.txt biztonsági leírót képviseli a Set-Acl parancsmagnak.

A második parancs a Set-Acl használatával alkalmazza a Dog.txt biztonsági leíróját a Cat.txt fájlra. Amikor a parancs befejeződik, a Dog.txt és a Cat.txt fájlok ACL-jei megegyeznek.

3. példa: Alkalmazzon biztonsági leírót 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ájl biztonsági leíróit alkalmazzák a C:\Temp könyvtárban és annak összes alkönyvtárában található összes szövegfájlra.

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átorral (=) tárolja azt a $NewACL változóban.

A folyamat első parancsa a Get-ChildItem parancsmagot használja a C:\Temp könyvtárban található összes szövegfájl lekéréséhez. A Recurse paraméter kiterjeszti a parancsot a C:\temp összes alkönyvtárára. Az Include paraméter a letöltött fájlok számát a .txt fájlnévkiterjesztésre korlátozza. A Force paraméter rejtett fájlokat kap, amelyek egyébként kizárásra kerülnek. (Nem használhatja a c:\temp\*.txt fájlt, mert a Recurse paraméter könyvtárakon működik, nem fájlokon.)

A folyamatoperátor (|) elküldi a letöltött fájlokat képviselő objektumokat a Set-Acl parancsmagnak, amely az AclObject paraméterben lévő biztonsági leírót alkalmazza. a folyamatban lévő összes fájlhoz.

A gyakorlatban a legjobb, ha a WhatIf paramétert használja az összes Set-Acl parancshoz, amely egynél több elemre is hatással lehet. Ebben az esetben a folyamat második parancsa a Set-Acl -AclObject $NewAcl -WhatIf lenne. Ez a parancs felsorolja azokat a fájlokat, amelyeket a parancs érint. Az eredmény áttekintése után újra futtathatja a parancsot a WhatIf paraméter nélkül.

4. példa: Az öröklődé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 megőrzik a meglévő örökölt 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. Az ehhez kapcsolódó hozzáférési szabályok öröklődés elleni védelméhez állítsa az $isProtected változót $true értékre. Az öröklődés engedélyezéséhez állítsa a $isProtected elemet $false értékre. További információkért tekintse meg a hozzáférési szabályok védelmének beállítása című részt.

Állítsa a $preserveInheritance változót $true értékre az örökölt hozzáférési szabályok megőrzéséhez, vagy $false értékre 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 a Set-Acl használatával alkalmazza a Dog.txt fájl biztonsági leíróját. Amikor a parancs befejeződik, a Dog.txt ACL-jei, amelyeket a Háziállatok mappából örököltek, közvetlenül a Dog.txt fájlra lesznek alkalmazva, és a Pets fájlhoz hozzáadott új hozzáférési szabályzatok nem módosítják a Dog.txt fájlhoz való hozzáférést.

5. példa: Adminisztrátorok teljes ellenőrzése a fájl felett

$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ítja a Dog.txt fájl teljes körű irányítását.

Az első parancs a Get-Acl parancsmagot használja a Dog.txt fájl biztonsági leírójának lekéréséhez.

Következő változók jönnek létre, hogy a BUILTIN\Administrators csoport teljes ellenőrzést biztosítson a Dog.txt fájl felett. 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 FileSystemRights érték lehet, amely meghatározza a hozzáférési szabállyal társított művelet típusát. Az „Engedélyezés” értékre állított $type változó határozza meg, hogy engedélyezi-e vagy megtagadja a műveletet. A $fileSystemAccessRuleArgumentList változó egy argumentumlista, amelyet át kell adni az új FileSystemAccessRule objektum létrehozásakor. Ezután létrejön egy új FileSystemAccessRule objektum, és a FileSystemAccessRule objektumot átadja a SetAccessRule() metódusnak, amely hozzáadja az új hozzáférési szabályt.

Az utolsó parancs a Set-Acl használatával alkalmazza a Dog.txt fájl biztonsági leíróját. Amikor a parancs befejeződik, a BUILTIN\Administrators csoport teljes mértékben birtokolja a Dog.txt fájlt.

Paraméterek

-AclObject

Megad egy ACL-t a kívánt tulajdonságértékekkel. A Set-Acl módosítja az Path vagy InputObject paraméter által megadott ACL-t, hogy megfeleljen a megadott biztonsági objektum értékeinek.

A Get-Acl parancs kimenetét elmentheti egy változóba, majd az AclObject paraméterrel átadhatja a változót, vagy beírhatja a Get-Acl parancsot. kód> parancsot.

Típus:

Objektum

Pozíció:

1

Alapértelmezett érték:

None

Kívánt:

True

Csővezeték bevitel elfogadása:

True

Helyettesítő karakterek elfogadása:

False

-ClearCentralAccessPolicy

Eltávolítja a központi hozzáférési szabályzatot a megadott elemről.

A Windows Server 2012-től kezdve 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 a felhasználók és csoportok számára. További információkért lásd: 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.

Típus:

SwitchParameter

Pozíció:

Elnevezett

Alapértelmezett érték:

False

Kívánt:

False

Csővezeték bevitel elfogadása:

False

Helyettesítő karakterek elfogadása:

False

-Confirm

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

Típus:

SwitchParameter

Álnevek:

cf

Pozíció:

Elnevezett

Alapértelmezett érték:

False

Kívánt:

False

Csővezeték bevitel elfogadása:

False

Helyettesítő karakterek elfogadása:

False

-Exclude

Kihagyja a megadott elemeket. Ennek a paraméternek az értéke minősíti az Path paramétert. Adjon meg egy elérési út elemet vagy mintát, például *.txt. Helyettesítő karakterek megengedettek.

Típus:

String[]

Pozíció:

Elnevezett

Alapértelmezett érték:

None

Kívánt:

False

Csővezeték bevitel elfogadása:

False

Helyettesítő karakterek elfogadása:

True

-Filter

Szűrőt határoz meg a szolgáltató formátumában vagy nyelvében. Ennek a paraméternek az értéke minősíti az Path paramétert. A szűrő szintaxisa, beleértve a helyettesítő karakterek használatát is, a szolgáltatótól függ. A szűrők hatékonyabbak, mint más paraméterek, mivel a szolgáltató alkalmazza őket az objektumok lekérésekor, ahelyett, hogy a PowerShell szűrné az objektumokat a lekérés után.

Típus:

String

Pozíció:

Elnevezett

Alapértelmezett érték:

None

Kívánt:

False

Csővezeték bevitel elfogadása:

False

Helyettesítő karakterek elfogadása:

True

-Include

Csak a megadott elemeket módosítja. Ennek a paraméternek az értéke minősíti az Path paramétert. Adjon meg egy útvonalelemet vagy -mintát, például *.txt. Helyettesítő karakterek megengedettek.

Típus:

String[]

Pozíció:

Elnevezett

Alapértelmezett érték:

None

Kívánt:

False

Csővezeték bevitel elfogadása:

False

Helyettesítő karakterek elfogadása:

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 egy parancsot, amely lekéri az objektumot.

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

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

Típus:

PSObject

Pozíció:

0

Alapértelmezett érték:

None

Kívánt:

True

Csővezeték bevitel elfogadása:

True

Helyettesítő karakterek elfogadása:

False

-LiteralPath

Módosítja a megadott elem biztonsági leíróját. A Path-től eltérően a LiteralPath paraméter értéke pontosan a beírás szerint kerül felhasználásra. Egyetlen karakter sem értelmezhető helyettesítő karakterként. Ha az elérési út escape karaktereket tartalmaz, tegye idézőjelek közé ('). Az egyszeres idézőjelek azt mondják a PowerShellnek, hogy ne értelmezze a karaktereket escape-szekvenciákként.

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

Típus:

String[]

Álnevek:

PSPath

Pozíció:

Elnevezett

Alapértelmezett érték:

None

Kívánt:

True

Csővezeték bevitel elfogadása:

True

Helyettesítő karakterek elfogadása:

False

-Passthru

Egy objektumot ad vissza, amely a módosított biztonsági leírót képviseli. Alapértelmezés szerint ez a parancsmag nem hoz létre kimenetet.

Típus:

SwitchParameter

Pozíció:

Elnevezett

Alapértelmezett érték:

None

Kívánt:

False

Csővezeték bevitel elfogadása:

False

Helyettesítő karakterek elfogadása:

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 rendszerleíró kulcs elérési útját. Helyettesítő karakterek megengedettek.

Ha egy biztonsági objektumot ad át a Set-Acl-nak (akár az AclObject vagy a SecurityDescriptor paraméterek használatával, akár egy biztonsági objektum átadásával a Get-Acl-ből a Set-Acl értékre), és elhagyja a Path paramétert (név és érték), a Set-Acl azt az elérési utat használja, amely a biztonsági objektum.

Típus:

String[]

Pozíció:

0

Alapértelmezett érték:

None

Kívánt:

True

Csővezeték bevitel elfogadása:

True

Helyettesítő karakterek elfogadása:

True

-WhatIf

Megmutatja, mi történik, ha a parancsmag lefut. A parancsmag nem fut.

Típus:

SwitchParameter

Álnevek:

wi

Pozíció:

Elnevezett

Alapértelmezett érték:

False

Kívánt:

False

Csővezeték bevitel elfogadása:

False

Helyettesítő karakterek elfogadása:

False

Bemenetek

ObjectSecurity

Ebbe a parancsmagba egy ACL objektumot irányíthat.

CommonSecurityDescriptor

Ehhez a parancsmaghoz biztonsági leírót is megadhat.

Kimenetek

Nincs

Alapértelmezés szerint ez a parancsmag 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.

Megjegyzések

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. Mint ilyen, módosíthatja a fájlok, könyvtárak és rendszerleíró kulcsok biztonsági leíróit.

Kapcsolódó cikkek