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 $DogACLEzek 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 $NewAclEzek 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 $NewAclEzek 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 $NewAclEz 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.