Set-Acl

Moduuli: Microsoft.PowerShell.Security

Muuttaa määritetyn kohteen, kuten tiedoston tai rekisteriavaimen, suojauskuvaajaa.

Syntax

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

Description

Cmdlet Set-Acl muuttaa määritetyn kohteen, kuten tiedoston tai aregistry-avaimen, suojauskuvaajan vastaamaan antamasi suojauskuvaajan arvoja.

Käyttääksesi Set-Acl-komentoa, käytä Path- tai InputObject-parametria yksilöidessäsi kohteen, jonka turvallisuuskuvaajaa haluat muuttaa. Käytä sitten AclObject- tai SecurityDescriptor-parametreja toimittaaksesi turvakuvaajan, jossa on haluamasi arvot. Set-Acl soveltaa toimitettua turvakuvaajaa. Se käyttää AclObject-parametrin arvoa mallina ja muuttaa kohteen turvakuvaajan arvot vastaamaan AclObject-parametrin arvoja.

Esimerkkejä

Esimerkki 1: Turvakuvaajan kopioiminen tiedostosta toiseen

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

Näillä komennoilla kopioidaan arvot koira.txt-tiedoston turvakuvaajasta kissa.txt-tiedoston turvakuvaajaan. Kun komennot on suoritettu loppuun, Dog.txt- ja Cat.txt-tiedostojen turvakuvaajat ovat identtiset.

Ensimmäisessä komennossa haetaan Dog.txt-tiedoston turvakuvaaja komennolla Get-Acl.Määritysoperaattori (=) tallentaa suojauskuvaajan $DogACL-muuttujan arvoon.

Toisen komennon avulla Set-Acl muutetaan Cat.txt-tiedoston ACL:n arvot $DogACL:n arvoiksi.

Path-parametrin arvo on Cat.txt-tiedoston polku. AclObjectparametrin arvo on mallin ACL, tässä tapauksessa muuttujaan $DogACL tallennettu Dog.txt:n ACL.

Esimerkki 2: Putkioperaattorin käyttäminen kuvaajan välittämiseen

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

Tämä komento on lähes sama kuin edellisen esimerkin komento, paitsi että siinä käytetään apipeline-operaattoria (|) suojauskuvaajan lähettämiseen Get-Acl-komennosta Set-Aclkomennolle.

Ensimmäisessä komennossa käytetään Get-Acl-cmdletia Dog.txt-tiedoston suojauskuvaajan saamiseksi. Pipeline-operaattori (|) välittää Dog.txt-turva-kuvaajaa edustavan objektin Set-Acl-cmdletille.

Toisessa komennossa käytetään Set-Acl-käskyä Dog.txt-tiedoston turva-kuvaajan soveltamiseen Cat.txt-tiedostoon.Kun komento on valmis, Dog.txt- ja Cat.txt-tiedostojen ACL:t ovat identtiset.

Esimerkki 3: Sovelletaan suojauskuvaajaa useisiin tiedostoihin

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

Nämä komennot soveltavat suojauskuvaajia tiedostossa File0.txt-tiedostossa kaikkiin C:\Temphakemistossa ja sen kaikissa alihakemistoissa oleviin tekstitiedostoihin.

Ensimmäisessä komennossa haetaan nykyisessä hakemistossa olevan File0.txt-tiedoston suojauskuvaaja jakäytetään assignment-operaattoria (=) sen tallentamiseen $NewACL-muuttujaan.

Suorituskaaren ensimmäinen komento hakee Get-ChildItem-senttikomennon avulla kaikki hakemistossaC:\Temp olevat tekstitiedostot. Recurse-parametri laajentaa komennon kaikkiinC:\temp:n alihakemistoihin. Include-parametri rajoittaa haettavat tiedostot niihin, joilla on .txt-tiedostonimipäätteinen tiedostotunniste. Force-parametri hakee piilotetut tiedostot, jotka muuten jätettäisiin komennon ulkopuolelle. (Et voi käyttää c:\temp\*.txt-parametria, koska Recurse-parametri toimii hakemistoissa, ei tiedostoissa.)

Putkioperaattori (|) lähettää haettuja tiedostoja edustavat objektit Set-Acl-komentoon, joka soveltaa AclObject-parametrissa olevaa suojauskuvaajaa kaikkiin putkessa oleviin tiedostoihin.

Käytännössä WhatIf-parametrin käyttäminen on parasta kaikissa Set-Acl-komennoissa, jotka voivat koskea useampaan kuin yhteen kohtaan. Tässä tapauksessa toinen komento putkistossa olisi Set-Acl -AclObject $NewAcl -WhatIf. Tässä komennossa luetellaan tiedostot, joihin komento vaikuttaisi. Kun olet tarkastellut tulosta, voit suorittaa komennon uudelleen ilman WhatIf-parametria.

Esimerkki 4: Poista periytyminen käytöstä ja säilytä perityt käyttöoikeussäännöt

$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

Nämä komennot poistavat käyttöoikeuden periytymisen vanhemmista kansioista ja säilyttävät kuitenkin olemassa olevat perityt käyttöoikeussäännöt.

Ensimmäisessä komennossa käytetään Get-Acl-cmdletia, jolla haetaan Dog.txt-tiedoston suojauskuvaaja.

Seuraavaksi luodaan muuttujat, joilla muutetaan perityt käyttöoikeussäännöt nimenomaisiksi käyttöoikeussäännöiksi. Suojaa tähän liittyvät pääsysäännöt periytymiseltä asettamalla muuttujan $isProtected arvoksi $true.Jos haluat sallia periytymisen, aseta muuttujan $isProtected arvoksi $false. Lisätietoja on kohdassaet access rule protection.The $preserveInheritance variable set to $true to preserve inherited access rules; false todemove inherited access rules. Tämän jälkeen pääsysääntöjen suojaus päivitetään metodillaSetAccessRuleProtection().

Viimeisessä komennossa Set-Acl käytetään Set-Acl:n suojauskuvaajaa kohtaan Dog.txt. Kun komento valmistuu, Pets-kansiosta perityt Dog.txt:n ACL:t sovelletaan suoraan Dog.txt:hen, eivätkä Pets-kansioon lisätyt uudet käyttöoikeuskäytännöt muuta Dog.txt:n käyttöoikeuksia.

Esimerkki 5: Myönnetään järjestelmänvalvojille tiedoston täysi hallinta

$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

Komennolla myönnetään BUILTIN\Administrators-ryhmälle täysi hallinta Dog.txt-tiedoston.

Ensimmäisessä komennossa käytetään Get-Acl-cmdletia, jolla haetaan Dog.txt-tiedoston suojauskuvaaja.

Seuraavat muuttujat luodaan, jotta BUILTIN\Administrators-ryhmälle voidaan myöntää Dog.txt-tiedoston täysi hallinta. $identity-muuttuja asetetaan auser-tilin nimeksi. $fileSystemRights-muuttuja, jonka arvoksi on asetettu FullControl, ja se voi olla mikä tahansa FileSystemRights-arvoista, jotka määrittelevät pääsääntöön liittyvän toiminnon tyypin. $type-muuttuja, jonka arvoksi on asetettu ”Allow”, määrittää, sallitaanko vai kielletäänkö toiminto. Muuttuja $fileSystemAccessRuleArgumentListon argumenttiluettelo, joka välitetään uutta FileSystemAccessRule-objektia luotaessa. Sitten luodaan uusiFileSystemAccessRule-objekti, ja FileSystemAccessRule-objekti välitetään metodilleSetAccessRule(), lisää uuden pääsysäännön.

Viimeisessä komennossa käytetään Set-Acl-muuttujaa Set-Acl soveltamaan Dog.txt:n turvakuvaajaa. Kun komento on valmis, BUILTIN\Administrators-ryhmällä on Dog.txt:n täysi hallinta.

Parameters

-AclObject

Määrittää ACL:n, jolla on halutut ominaisuusarvot. Set-Acl Muuttaa Path- tai InputObject-parametrilla määritetyn kohteen ACL:n vastaamaan määritetyn tietoturvaobjektin arvoja.

Voit tallentaa Get-Acl-komennon tulosteen muuttujaan ja siirtää sen jälkeen muuttujan AclObject-parametrin avulla tai kirjoittaa Get-Acl-komennon.

True Accept wildcard characters: False
-ClearCentralAccessPolicy

Poistaa keskitetyn käyttövaltuuskäytännön määritetystä kohteesta.

Windows Server 2012:sta alkaen järjestelmänvalvojat voivat Active Directoryn ja ryhmäkäytäntöjen avulla määrittää käyttäjille ja ryhmille keskitettyjä käyttöoikeuskäytäntöjä. Lisätietoja on kohdassaDynaaminen pääsynvalvonta: Scenario Overview.

Tämä parametri otettiin käyttöön Windows PowerShell 3.0:ssa.

False Accept wildcard characters: False
-Confirm

Kysyy vahvistusta ennen cmdletin suorittamista.

False Accept pipeline input: False Accept wildcard characters: False

-Exclude

Lupaa määritetyt kohteet. Tämän parametrin arvo määrittää Path-parametrin. Syötä apath-elementti tai -kuvio, kuten *.txt. Jokerimerkit ovat sallittuja.

Tyyppi: Merkkijono
Positio: Nimetty
Vakiotieto: Ei mitään
Hyväksyy putkiston syötteen: False
Accept wildcard characters: True
-Filter

Määrittää suodattimen palveluntoimittajan formaatissa tai kielellä. Tämän parametrin arvo kelpuuttaaPath-parametrin. Suodattimen syntaksi, mukaan lukien jokerimerkkien käyttö, riippuu palveluntarjoajasta. Suodattimet ovat tehokkaampia kuin muut parametrit, koska palveluntarjoaja soveltaa niitä objekteja haettaessa sen sijaan, että PowerShell suodattaisi objekteja niiden haun jälkeen.

False Accept wildcard characters: True
-Include

Muuttaa vain määritettyjä kohteita. Tämän parametrin arvo määrittää Path-parametrin.Syötä polkuelementti tai -kuvio, kuten *.txt. Jokerimerkit ovat sallittuja.

Tyyppi: Merkkijono
Positio: Nimetty
Vakiotieto: Ei mitään
Hyväksyy putkiston syötteen: False
Accept wildcard characters: True
-InputObject

Muuttaa määritellyn objektin turvakuvaajan. Anna muuttuja, joka sisältää objektintai komento, joka hakee objektin.

Muutettavaa objektia ei voi piiputtaa osoitteeseen Set-Acl. Käytä sen sijaan InputObject-parametrieksplisiittisesti komennossa.

Tämä parametri otettiin käyttöön Windows PowerShell 3.0:ssa.

Type: PSObject
Position: 0
Default value: None
Accept pipeline input: True
Accept wildcard characters: False
-LiteralPath

Muuttaa määritellyn kohteen turvakuvaajan. Toisin kuin Path, LiteralPath-parametrin arvoa käytetään täsmälleen sellaisena kuin se on kirjoitettu. Mitään merkkejä ei tulkita sulkumerkkeinä. Jos polku sisältää pakomerkkejä, sulje se yksinkertaisiin lainausmerkkeihin (').Yksinkertaiset lainausmerkit kertovat PowerShellille, ettei se tulkitse merkkejä pakosarjoiksi.

Tämä parametri otettiin käyttöön Windows PowerShell 3.0:ssa.

Type: String
Aliases: PSPath
Position: Named
Default value: None
Accept pipeline input: True
Accept wildcard characters: False
-Passthru

Palauttaa objektin, joka edustaa muuttunutta turvakuvaajaa. Oletusarvoisesti tämä cmdlet ei tuota mitään tulostetta.

Type: SwitchParameter
Position: Named
Esimerkkisijoitusarvo: Ei ole
Hyväksyy putkiston syötteen: False
Accept wildcard characters: False
-Path

Muuttaa määritellyn kohteen turvakuvaajan. Syöttää kohteen polun, kuten tiedoston tai rekisteriavaimen polun. Jokerimerkit ovat sallittuja.

Jos annat suojauskohteen Set-Acl:lle (joko käyttämällä AclObject- taiSecurityDescriptor-parametreja tai välittämällä suojauskohteen Get-Acl:stä Set-Acl:lle) ja jätät Path-parametrin (nimi ja arvo) pois, Set-Acl käyttää kyseiseen suojauskohteeseen sisältyvää polkua.

True Accept wildcard characters: True
-WhatIf

Näyttää, mitä tapahtuisi, jos komentokomento suoritetaan. Cmdletia ei suoriteta.

False Accept pipeline input: False Accept wildcard characters: False

Syötteet

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

Voit piiputtaa ACL-objektin tai turvakuvaajan osoitteeseen Set-Acl.

Outputs

FileSecurity

Oletusarvoisesti Set-Acl ei tuota tulostetta. Jos kuitenkin käytät Passthru -parametria,se tuottaa tietoturvaobjektin. Turvaobjektin tyyppi riippuu kohteen tyypistä.

Huomautuksia

Tämä cmdlet on käytettävissä vain Windows-alustoilla.

Set-AclCmdlet Set-Acl tukee PowerShellin tiedostojärjestelmän ja rekisterin tarjoajia. Näin ollen voit käyttää sitä muuttaaksesi tiedostojen, hakemistojen ja rekisteriavainten suojauskuvaajia.

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

Vastaa

Sähköpostiosoitettasi ei julkaista.