Set-Acl

Modul: Microsoft.PowerShell.Security

Změní deskriptor zabezpečení zadané položky, například souboru nebo klíče registru.

Syntaxe

Set-Acl <String> <Object> >] >] 
Set-Acl <PSObject> <Object> >] >] 
Set-Acl -LiteralPath <String> <Object> >] >] 

Popis

Kameta Set-Acl změní deskriptor zabezpečení zadané položky, například souboru nebo klíče registru, aby odpovídal hodnotám v deskriptoru zabezpečení, který zadáte.

Pro použití příkazu Set-Acl použijte parametr Path nebo InputObject k identifikaci položky, jejíž bezpečnostní deskriptor chcete změnit. Poté použijte parametry AclObject nebo SecurityDescriptor pro dodání deskriptoru zabezpečení, který obsahuje hodnoty, které chcete použít. Set-Acl použije dodaný bezpečnostní deskriptor. Jako vzor použije hodnotu parametru AclObject a změní hodnoty v deskriptoru zabezpečení položky tak, aby odpovídaly hodnotám v parametru AclObject.

Příklady

Příklad 1: Kopírování deskriptoru zabezpečení z jednoho souboru do druhého

$DogACL = Get-Acl -Path "C:\Dog.txt"Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL

Tyto příkazy kopírují hodnoty z deskriptoru zabezpečení souboru Dog.txt do deskriptoru zabezpečení souboru Cat.txt. Po dokončení příkazů jsou bezpečnostní deskriptory souborů Dog.txta Cat.txt totožné.

První příkaz používá rutinu Get-Acl k získání bezpečnostního deskriptoru souboru Dog.txt.Operátor přiřazení (=) uloží deskriptor zabezpečení do hodnoty proměnné $DogACL.

Druhý příkaz pomocí Set-Acl změní hodnoty v ACL souboru Cat.txt na hodnoty v $DogACL.

Hodnotou parametru Path je cesta k souboru Cat.txt. Hodnota parametru AclObjectparametr je model ACL, v tomto případě ACL souboru Dog.txt, jak je uložen v proměnné $DogACL.

Příklad 2: Použití operátoru pipeline k předání deskriptoru

Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"

Tento příkaz je téměř stejný jako příkaz v předchozím příkladu s tím rozdílem, že používá operátor apipeline (|) k odeslání deskriptoru zabezpečení z příkazu Get-Acl do příkazu Set-Acl.

První příkaz používá rutinu Get-Acl k získání deskriptoru zabezpečení souboru Dog.txt. Operátor pipeline (|) předá objekt, který představuje deskriptor zabezpečení souboru Dog.txt, rutině Set-Acl.

Druhý příkaz použije rutinu Set-Acl k použití deskriptoru zabezpečení souboru Dog.txt na soubor Cat.txt.Po dokončení příkazu jsou ACL souborů Dog.txt a Cat.txt identické.

Příklad 3: Použití deskriptoru zabezpečení na více souborů

$NewAcl = Get-Acl File0.txtGet-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl

Tyto příkazy použijí deskriptory zabezpečení v souboru0.txt na všechny textové soubory v adresáři C:\Temp a všech jeho podadresářích.

První příkaz získá deskriptor zabezpečení souboru File0.txt v aktuálním adresáři a pomocí operátoru přiřazení (=) jej uloží do proměnné $NewACL.

První příkaz v řetězci používá rutinu Get-ChildItem k získání všech textových souborů v adresářiC:\Temp. Parametr Recurse rozšiřuje příkaz na všechny podadresáře adresářeC:\temp. Parametr Include omezuje načtené soubory na ty, které mají příponu názvu souboru .txt. Parametr Force získá skryté soubory, které by jinak byly vyloučeny. (Nelze použít c:\temp\*.txt, protože parametr Recurse pracuje s adresáři, nikoliv se soubory.)

Operátor pipeline (|) odešle objekty představující načtené soubory do Set-Aclcmdlet, který použije bezpečnostní deskriptor v parametru AclObject na všechny soubory v pipeline.

V praxi je nejlepší použít parametr WhatIf u všech příkazů Set-Acl, které mohou ovlivnit více než jednu položku. V tomto případě by druhým příkazem v pipeline byl příkazSet-Acl -AclObject $NewAcl -WhatIf. Tento příkaz obsahuje seznam souborů, které by byly příkazem ovlivněny. Po přezkoumání výsledku můžete příkaz spustit znovu bez parametru WhatIf.

Příklad 4: Zakázat dědičnost a zachovat zděděná pravidla přístupu

$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

Těmito příkazy se zakáže dědičnost přístupu z nadřazených složek a zároveň se zachovají existující zděděná pravidla přístupu.

První příkaz používá rutinu Get-Acl k získání deskriptoru zabezpečení souboru Dog.txt.

Následuje vytvoření proměnných pro převod zděděných pravidel přístupu na explicitní pravidla přístupu. Chcete-li ochránit související pravidla přístupu před děděním, nastavte proměnnou $isProtected na hodnotu$true.chcete-li dědění povolit, nastavte proměnnou $isProtected na hodnotu $false. Další informace naleznete v části Ochrana pravidel přístupu. proměnnou $preserveInheritance nastavte na $true pro zachování zděděných pravidel přístupu; false pro odstranění zděděných pravidel přístupu. Pak se ochrana pravidel přístupu aktualizuje pomocí metodySetAccessRuleProtection().

Poslední příkaz používá Set-Acl pro použití bezpečnostního deskriptoru to Dog.txt. Po dokončení příkazu budou ACL souboru Dog.txt, které byly zděděny ze složky Pets, aplikovány přímo na soubor Dog.txt a nové zásady přístupu přidané do složky Pets nezmění přístup k souboru Dog.txt.

Příklad 5: Udělení plné kontroly nad souborem Administrators

$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

Tento příkaz udělí skupině BUILTIN\Administrators plnou kontrolu nad souborem Dog.txt.

První příkaz používá rutinu Get-Acl k získání deskriptoru zabezpečení souboru Dog.txt.

Další proměnné jsou vytvořeny pro udělení plné kontroly nad souborem Dog.txt skupině BUILTIN\Administrators. Proměnná $identity nastavená na jméno účtu auser. Proměnná$fileSystemRights nastavená na FullControl a může být libovolnou z hodnotFileSystemRights, která určuje typ operace spojené s pravidlem přístupu. Proměnná $type nastavená na hodnotu „Allow“ určuje, zda má být operace povolena nebo zamítnuta. Proměnná $fileSystemAccessRuleArgumentListje seznam argumentů, který má být předán při vytváření nového objektu FileSystemAccessRule. Poté se vytvoří nový objekt FileSystemAccessRule a objekt FileSystemAccessRule se předá metoděSetAccessRule(), přidá nové pravidlo přístupu.

Poslední příkaz používá Set-Acl k použití bezpečnostního deskriptoru to Dog.txt. Po dokončení příkazu bude mít skupina BUILTIN\Administrators plnou kontrolu nad souborem Dog.txt.

Parameters

-AclObject

Určuje ACL s požadovanými hodnotami vlastností. Set-Acl Změní ACL položky zadané parametrem Path nebo InputObject tak, aby odpovídalo hodnotám v zadaném objektu zabezpečení.

Můžete uložit výstup příkazu Get-Acl do proměnné a pak použít parametr AclObject k předání proměnné nebo zadat příkaz Get-Acl.

Typ: Objekt
Pozice: 1
Výchozí hodnota: Nic
Přijmout vstup z potrubí: True
Accept wildcard characters: False
-ClearCentralAccessPolicy

Odstraní centrální politiku přístupu z uvedené položky.

Počínaje systémem Windows Server 2012 mohou správci používat službu Active Directory a zásady skupiny k nastavení centrálních zásad přístupu pro uživatele a skupiny. Další informace naleznete v částiDynamické řízení přístupu:

Tento parametr byl zaveden v prostředí Windows PowerShell 3.0.

Typ: PřepínačParametr
Pozice: Název
Výchozí hodnota: False
Přijímá vstup z potrubí: False
Accept wildcard characters: False

-Confirm

Před spuštěním rutiny vás vyzve k potvrzení.

Typ: PřepínačParametr
Aliasy: cf
Pozice: Název
Výchozí hodnota: False
Accept pipeline input: False
Accept wildcard characters: False
-Exclude

Vyloučí zadané položky. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek nebo vzor apath, například *.txt. Zástupné znaky jsou povoleny.

Typ: Řetězec
Pozice: Název
Výchozí hodnota: Nic
Přijímá vstup z potrubí: False
Accept wildcard characters: True
-Filter

Určuje filtr ve formátu nebo jazyku poskytovatele. Hodnota tohoto parametru kvalifikuje parametrPath. Syntaxe filtru, včetně použití zástupných znaků, závisí na poskytovateli. Filtry jsou efektivnější než jiné parametry, protože poskytovatel je použije při načítání objektů, místo aby PowerShell filtroval objekty po jejich načtení.

Typ: Řetězec
Pozice: Název
Výchozí hodnota: Jedna
Přijmout vstup z potrubí: False
Accept wildcard characters: True
-Include

Mění pouze zadané položky. Hodnota tohoto parametru kvalifikuje parametr Path. zadejte prvek nebo vzor cesty, například *.txt. Zástupné znaky jsou povoleny.

Typ: Řetězec
Pozice: Název
Výchozí hodnota: Nulová
Přijímá vstup z potrubí: False
Accept wildcard characters: True
-InputObject

Změní bezpečnostní deskriptor zadaného objektu. Zadejte proměnnou, která obsahuje objektnebo příkaz, který získá objekt.

Objekt, který má být změněn, nelze zadat do roury Set-Acl. Místo toho použijte v příkazu explicitně parametr InputObject.

Tento parametr byl zaveden v prostředí Windows PowerShell 3.0.

Typ: PSObject
Pozice: 0
Výchozí hodnota: None
Přijmout vstup do potrubí: True
Accept wildcard characters: False
-LiteralPath

Změní bezpečnostní deskriptor zadané položky. Na rozdíl od parametru Path se hodnota parametruLiteralPath použije přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako náhradní znaky. Pokud cesta obsahuje znaky escape, uzavřete ji do jednoduchých uvozovek ('). jednoduché uvozovky říkají prostředí PowerShell, aby neinterpretovalo žádné znaky jako escape sekvence.

Tento parametr byl zaveden v prostředí Windows PowerShell 3.0.

Tento parametr byl zaveden v prostředí Windows PowerShell 3.0.

Typ: Řetězec
Aliasy: PSPath
Pozice: Název
Výchozí hodnota: Nic
Přijímá vstup do potrubí: True
Accept wildcard characters: False
-Passthru

Vrací objekt, který představuje změněný bezpečnostní deskriptor. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

Typ: PřepínačParametr
Pozice: Název
Výchozí hodnota: Jedna
Přijímá vstup do potrubí: False
Accept wildcard characters: False
-Path

Změní bezpečnostní deskriptor zadané položky. Zadejte cestu k položce, například cestu k souboru nebo klíči registru. Jsou povoleny zástupné znaky.

Předáte-li Set-Acl objekt zabezpečení (buď pomocí parametrů AclObject neboSecurityDescriptor, nebo předáním objektu zabezpečení z Get-Acl do Set-Acl) a vynecháte-li parametr Path (název a hodnotu), Set-Acl použije cestu, která je obsažena v tomto objektu zabezpečení.

Typ: Řetězec
Pozice: 0
Výchozí hodnota: None
Přijímá vstup do potrubí: True
Accept wildcard characters: True
-WhatIf

Ukazuje, co se stane, pokud se rutina spustí. Rutina se nespustí.

Typ: PřepínačParametr
Aliasy: wi
Pozice: Název
Výchozí hodnota: False
Accept pipeline input: False
Accept wildcard characters: False

Inputs

System.Security.AccessControl.ObjectSecurity, System.Security.AccessControl.CommonSecurityDescriptor

Do Set-Acl můžete připojit objekt ACL nebo bezpečnostní deskriptor.

Výstupy

FileSecurity

Ve výchozím nastavení Set-Acl negeneruje žádný výstup. Pokud však použijete parametr Passthru,vygeneruje objekt zabezpečení. Typ objektu zabezpečení závisí na typu položky.

Poznámky

Tato rutina je k dispozici pouze na platformách Windows.

Krutina Set-Acl je podporována zprostředkovateli souborového systému a registru prostředí PowerShell. Proto ji můžete použít ke změně deskriptorů zabezpečení souborů, adresářů a klíčů registru.

  • Get-Acl
  • FileSystemAccessRule
  • ObjectSecurity.SetAccessRuleProtection
  • FileSystemRights

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.