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-Acl
komennolle.
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:\Temp
hakemistossa 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 $fileSystemAccessRuleArgumentList
on 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
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.
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.
Kysyy vahvistusta ennen cmdletin suorittamista.
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 |
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.
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 |
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 |
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 |
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 |
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.
Näyttää, mitä tapahtuisi, jos komentokomento suoritetaan. Cmdletia ei suoriteta.
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-Acl
Cmdlet 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