Aracılığıyla paylaş


Set-Acl

Dosya veya kayıt defteri anahtarı gibi belirtilen bir öğenin güvenlik tanımlayıcısını değiştirir.

Sözdizimi

ByPath EnterprisePublishing

Set-Acl
    [-Path] <String[]>
    [-AclObject] <Object>
    [-ClearCentralAccessPolicy]
    [-PassThru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByInputObject

Set-Acl
    [-InputObject] <PSObject>
    [-AclObject] <Object>
    [-PassThru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByLiteralPath

Set-Acl
    [-AclObject] <Object>
    -LiteralPath <String[]>
    [-ClearCentralAccessPolicy]
    [-PassThru]
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Bu cmdlet yalnızca Windows platformunda kullanılabilir.

Set-Acl cmdlet'i, dosya veya kayıt defteri anahtarı gibi belirli bir öğenin güvenlik tanımlayıcısını, sağladığınız bir güvenlik tanımlayıcısı içindeki değerlerle eşleşecek şekilde değiştirir.

Set-Aclkullanmak için, güvenlik tanımlayıcısını değiştirmek istediğiniz öğeyi tanımlamak için Yol veya InputObject parametresini kullanın. Ardından, uygulamak istediğiniz değerlere sahip bir güvenlik tanımlayıcısı sağlamak için AclObject veya SecurityDescriptor parametrelerini kullanın. Set-Acl sağlanan güvenlik tanımlayıcısını uygular. model olarak AclObject parametresinin değerini kullanır ve öğenin güvenlik tanımlayıcısı içindeki değerleri AclObject parametresindeki değerlerle eşleşecek şekilde değiştirir.

Örnekler

Örnek 1: Bir dosyadan diğerine güvenlik tanımlayıcısı kopyalama

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

Bu komutlar, Dog.txt dosyasının güvenlik tanımlayıcısından Cat.txt dosyasının güvenlik tanımlayıcısına değerleri kopyalar. Komutlar tamamlandığında, Dog.txt ve Cat.txt dosyalarının güvenlik tanımlayıcıları aynıdır.

İlk komut, Get-Acl dosyasının güvenlik tanımlayıcısını almak için Dog.txt cmdlet'ini kullanır. Atama işleci (=), güvenlik tanımlayıcısını $DogACL değişkeninin değerinde depolar.

İkinci komut, Cat.txt ACL'sindeki değerleri Set-Acliçindeki değerlerle değiştirmek için $DogACL kullanır.

Path parametresinin değeri, Cat.txt dosyasının yoludur. AclObject parametresinin değeri, bu örnekte Dog.txt değişkenine kaydedilen $DogACL ACL'sinin modelidir.

Örnek 2: Tanımlayıcı geçirmek için işlem hattı işlecini kullanma

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

Bu komut, bir | komutundaki güvenlik tanımlayıcısını bir Get-Acl komutuna göndermek için işlem hattı işlecini (Set-Acl) kullanması dışında, önceki örnekteki komutla neredeyse aynıdır.

İlk komut, Get-Acl dosyasının güvenlik tanımlayıcısını almak için Dog.txt cmdlet'ini kullanır. Hat işleci (|), Dog.txt güvenlik tanımlayıcısını temsil eden bir nesneyi Set-Acl cmdlet'ine geçirir.

İkinci komut, Set-Acl güvenlik tanımlayıcısını Cat.txtuygulamak için Dog.txt kullanır. Komut tamamlandığında, Dog.txt ve Cat.txt dosyalarının ACL'leri aynıdır.

Örnek 3: Birden çok dosyaya güvenlik tanımlayıcısı uygulama

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

Bu komutlar, File0.txt dosyasındaki güvenlik tanımlayıcılarını C:\Temp dizinindeki tüm metin dosyalarına ve tüm alt dizinlerine uygular.

İlk komut, geçerli dizindeki File0.txt dosyasının güvenlik tanımlayıcısını alır ve = değişkeninde depolamak için atama işlecini ($NewACL) kullanır.

İşlem hattındaki ilk komut, C:\Temp dizinindeki tüm metin dosyalarını almak için Get-ChildItem cmdlet'ini kullanır. Yineleme parametresi, komutunu C:\temp'in tüm alt dizinlerine genişletir. Include parametresi, alınan dosyaları .txt dosya adı uzantısına sahip dosyalarla sınırlar. Zorla parametresi, gizli dosyaları alır ve aksi takdirde dışlanır. (C:\temp\*.txt parametresi dosyalarda değil dizinlerde çalıştığından kullanamazsınız.)

İşlem hattı işleci (|), alınan dosyaları temsil eden nesneleri Set-Acl cmdlet'ine gönderir ve bu da AclObject parametresindeki güvenlik tanımlayıcısını işlem hattındaki tüm dosyalara uygular.

Uygulamada, birden fazla öğeyi etkileyebilecek tüm komutlarla Set-Acl parametresini kullanmak en iyisidir. Bu durumda, işlem hattındaki ikinci komut Set-Acl -AclObject $NewAcl -WhatIfolacaktır. Bu komut, komuttan etkilenecek dosyaları listeler. Sonucu gözden geçirdikten sonra, WhatIf parametresi olmadan komutu yeniden çalıştırabilirsiniz.

Örnek 4: Devralmayı devre dışı bırakma ve devralınan erişim kurallarını koruma

$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

Bu komutlar, var olan devralınan erişim kurallarını korurken üst klasörlerden erişim devralmayı devre dışı bırakır.

İlk komut, Get-Acl dosyasının güvenlik tanımlayıcısını almak için Dog.txt cmdlet'ini kullanır.

Ardından, devralınan erişim kurallarını açık erişim kurallarına dönüştürmek için değişkenler oluşturulur. Bununla ilişkili erişim kurallarını devralmadan korumak için $isProtected değişkenini $trueolarak ayarlayın. Devralmaya izin vermek için $isProtected$falseolarak ayarlayın. Daha fazla bilgi için bkz. erişim kuralı korumasını ayarlama .

Devralınan erişim kurallarını korumak için $preserveInheritance değişkenini $true veya devralınan erişim kurallarını kaldırmak için $false olarak ayarlayın. Ardından erişim kuralı koruması, SetAccessRuleProtection() yöntemi kullanılarak güncelleştirilir.

Son komut, güvenlik tanımlayıcısını Set-Acluygulamak için Dog.txt kullanır. Komut tamamlandığında, Evcil Hayvanlar klasöründen devralınan Dog.txt ACL'leri doğrudan Dog.txtuygulanır ve Evcil Hayvanlar'a eklenen yeni erişim ilkeleri Dog.txterişimini değiştirmez.

Örnek 5: Yöneticilere Dosyanın Tam Denetimini Verme

$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
# Set properties
$identity = "BUILTIN\Administrators"
$fileSystemRights = "FullControl"
$type = "Allow"
# Create new rule
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
$newParams = @{
  TypeName     = 'System.Security.AccessControl.FileSystemAccessRule'
    ArgumentList = $fileSystemAccessRuleArgumentList
}
$fileSystemAccessRule = New-Object @newParams
# Apply new rule
$NewAcl.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl

Bu komut, BUILTIN\Administrators grubuna Dog.txt dosyasının tam denetimini verir.

İlk komut, Get-Acl dosyasının güvenlik tanımlayıcısını almak için Dog.txt cmdlet'ini kullanır.

Sonraki değişkenler, BUILTIN\Administrators grubuna Dog.txt dosyasının tam denetimini vermek için oluşturulur. $identity değişkeni, kullanıcı hesabının adına ayarlanır. $fileSystemRights değişkeni FullControl olarak ayarlanır ve erişim kuralıyla ilişkili işlem türünü belirten FileSystemRights değerlerinden herhangi biri olabilir. $type değişkeni , işleme izin verilip verilmeyeceğini veya reddedilip verilmeyeceğini belirlemek için "İzin Ver" olarak ayarlanır. $fileSystemAccessRuleArgumentList değişkeni, yeni FileSystemAccessRule nesnesi yapılırken geçirilecek bir bağımsız değişken listesidir. Ardından yeni bir FileSystemAccessRule nesnesi oluşturulur ve FileSystemAccessRule nesnesi SetAccessRule() yöntemine geçirilir ve yeni erişim kuralını ekler.

Son komut, güvenlik tanımlayıcısını Set-Acluygulamak için Dog.txt kullanır. Komut tamamlandığında, BUILTIN\Administrators grubu Dog.txttam denetime sahip olur.

Parametreler

-AclObject

İstenen özellik değerlerine sahip bir ACL belirtir. Set-Acl, Yol veya InputObject parametresi tarafından belirtilen öğenin ACL'sini belirtilen güvenlik nesnesindeki değerlerle eşleşecek şekilde değiştirir.

bir Get-Acl komutunun çıkışını bir değişkene kaydedebilir ve ardından AclObject parametresini kullanarak değişkeni geçirebilir veya bir Get-Acl komutu yazabilirsiniz.

Parametre özellikleri

Tür:Object
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:1
Zorunlu:True
İşlem hattından gelen değer:True
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-ClearCentralAccessPolicy

Merkezi erişim ilkesini belirtilen öğeden kaldırır.

Windows Server 2012'de yöneticiler, kullanıcılar ve gruplar için merkezi erişim ilkeleri ayarlamak için Active Directory ve Grup İlkesi'ni kullanabilir. Daha fazla bilgi için bkz. Dinamik Erişim Denetimi: Senaryoya Genel Bakış.

Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:PSPath, LP

Parametre kümeleri

ByPath
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False
ByLiteralPath
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Cf

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Exclude

Belirtilen öğeleri atlar. Bu parametrenin değeri, Path parametresini niteler. *.txtgibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Filter

Sağlayıcının biçiminde veya dilinde bir filtre belirtir. Bu parametrenin değeri, Path parametresini niteler. Joker karakterlerin kullanımı da dahil olmak üzere filtrenin söz dizimi sağlayıcıya bağlıdır. Sağlayıcı, nesneleri aldıktan sonra PowerShell'in filtrelemesini yapmak yerine nesneleri alırken bunları uyguladığından filtreler diğer parametrelerden daha verimlidir.

Parametre özellikleri

Tür:String
Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Include

Yalnızca belirtilen öğeleri değiştirir. Bu parametrenin değeri, Path parametresini niteler. *.txtgibi bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-InputObject

Belirtilen nesnenin güvenlik tanımlayıcısını değiştirir. Nesneyi içeren bir değişken veya nesneyi alan bir komut girin.

Değiştirilecek nesneyi Set-Aclile boru hattına alamazsınız. Bunun yerine, komutunda açıkça InputObject parametresini kullanın.

Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.

Parametre özellikleri

Tür:PSObject
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

ByInputObject
Position:0
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-LiteralPath

Belirtilen öğenin güvenlik tanımlayıcısını değiştirir. Pathaksine, LiteralPath parametresinin değeri tam olarak yazıldığı gibi kullanılır. Hiçbir karakter joker karakter olarak yorumlanmamıştır. Yol kaçış karakterleri içeriyorsa, onu tek tırnak içine alın ('). Tek tırnak işaretleri, PowerShell'in hiçbir karakteri kaçış dizisi olarak yorumlamamasını sağlar.

Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:PSPath

Parametre kümeleri

ByLiteralPath
Position:Named
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-PassThru

Değiştirilen güvenlik tanımlayıcısını temsil eden bir nesne döndürür. Varsayılan olarak, bu cmdlet herhangi bir çıkış oluşturmaz.

Parametre özellikleri

Tür:SwitchParameter
Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-Path

Belirtilen öğenin güvenlik tanımlayıcısını değiştirir. Dosya veya kayıt defteri anahtarı yolu gibi bir öğenin yolunu girin. Joker karakterlere izin verilir.

Set-Acl bir güvenlik nesnesi geçirirseniz (AclObject veya SecurityDescriptor parametreleri kullanarak veya Get-Acl'den Set-Acl'a bir güvenlik nesnesi geçirerek) ve Path parametresini (ad ve değer) atlarsanız Set-Acl güvenlik nesnesine dahil edilen yolu kullanır.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:True
DontShow:False

Parametre kümeleri

ByPath
Position:0
Zorunlu:True
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:True
Kalan bağımsız değişkenlerden elde edilen değer:False

-WhatIf

Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmaz.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Wi

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

ObjectSecurity

Bir ACL nesnesini bu cmdlet'e yöneltebilirsiniz.

CommonSecurityDescriptor

Bu cmdlet'e bir güvenlik tanımlayıcısı yöneltebilirsiniz.

Çıkışlar

None

Varsayılan olarak, bu cmdlet çıkış döndürmez.

FileSecurity

PassThru parametresini kullandığınızda, bu cmdlet bir güvenlik nesnesi döndürür. Güvenlik nesnesinin türü öğenin türüne bağlıdır.

Notlar

Bu cmdlet yalnızca Windows platformlarında kullanılabilir.

Set-Acl cmdlet'i PowerShell FileSystem ve Registry sağlayıcıları tarafından desteklenir. Bu nedenle, dosyaları, dizinleri ve kayıt defteri anahtarlarının güvenlik tanımlayıcılarını değiştirmek için bunu kullanabilirsiniz.