Set-Acl
Dosya veya kayıt defteri anahtarı gibi belirtilen bir öğenin güvenlik tanımlayıcısını değiştirir.
Syntax
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>]
Description
Bu cmdlet yalnızca Windows platformunda kullanılabilir.
Set-Acl
Cmdlet, 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.
kullanmak Set-Acl
için Path veya InputObject parametresini kullanarak güvenlik tanımlayıcısını değiştirmek istediğiniz öğeyi belirleyin. Ardından, uygulamak istediğiniz değerleri içeren 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ında bulunan değerleri AclObject parametresindeki değerlerle eşleşecek şekilde değiştirir.
Örnekler
Örnek 1: Güvenlik tanımlayıcısını bir dosyadan diğerine kopyalama
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
Bu komutlar, değerleri Dog.txt dosyasının güvenlik tanımlayıcısından Cat.txt dosyasının güvenlik tanımlayıcısına kopyalar. Komutlar tamamlandığında, Dog.txt ve Cat.txt dosyalarının güvenlik tanımlayıcıları aynıdır.
İlk komut, Dog.txt dosyasının güvenlik tanımlayıcısını almak için cmdlet'ini kullanır Get-Acl
.
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 içindeki $DogACL
değerlerle değiştirmek için kullanırSet-Acl
.
Path parametresinin değeri, Cat.txt dosyasının yoludur. AclObject parametresinin değeri, ACL modelidir ve bu örnekte Dog.txt ACL değişkenine $DogACL
kaydedilir.
Ö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 komuttan Get-Acl
komuta güvenlik tanımlayıcısını göndermek için bir işlem hattı işleci (|
) kullanması dışında, önceki örnekteki komutla Set-Acl
neredeyse aynıdır.
İlk komut, Dog.txt dosyasının güvenlik tanımlayıcısını almak için cmdlet'ini kullanır Get-Acl
. İşlem hattı işleci (|
), cmdlet'ine Dog.txt güvenlik tanımlayıcısını Set-Acl
temsil eden bir nesne geçirir.
İkinci komut, Dog.txt güvenlik tanımlayıcısını Cat.txt uygulamak için kullanır Set-Acl
.
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ı dizindeki C:\Temp
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 atama işlecini (=
) kullanarak değişkeninde $NewACL
depolar.
İşlem hattındaki ilk komut, dizindeki tüm metin dosyalarını almak için Get-ChildItem cmdlet'ini C:\Temp
kullanır. Recurse parametresi komutunu tüm alt dizinlerine C:\temp
genişletir. Include parametresi, alınan dosyaları dosya adı uzantısına .txt
sahip dosyalarla sınırlar. Force parametresi gizli dosyaları alır, aksi takdirde dışlanır. (Recurse parametresi dosyalarda değil dizinlerde çalıştığından kullanamazsınızc:\temp\*.txt
.)
İşlem hattı işleci (|
), alınan dosyaları temsil eden nesneleri cmdlet'ine Set-Acl
gönderir ve bu da AclObject parametresindeki güvenlik tanımlayıcısını işlem hattındaki tüm dosyalara uygular.
Uygulamada, whatif parametresini birden fazla öğeyi etkileyebilecek tüm Set-Acl
komutlarla kullanmak en iyisidir. Bu durumda, işlem hattındaki ikinci komut olacaktır Set-Acl -AclObject $NewAcl -WhatIf
. Bu komut, komutundan etkilenecek dosyaları listeler. Sonucu gözden geçirdikten sonra Komutu WhatIf parametresi olmadan 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, Dog.txt dosyasının güvenlik tanımlayıcısını almak için cmdlet'ini kullanır Get-Acl
.
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ı devralmaya karşı korumak için değişkenini $isProtected
olarak $true
ayarlayın. Devralmaya izin vermek için olarak $false
ayarlayın$isProtected
. Daha fazla bilgi için bkz. Erişim kuralı korumasını ayarlama.
Devralınan $preserveInheritance
erişim kurallarını korumak veya $false
devralınan erişim kurallarını kaldırmak için değişkenini $true
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ı Dog.txt uygulamak için kullanır Set-Acl
. Komut tamamlandığında, Pets klasöründen devralınan Dog.txt ACL'leri doğrudan Dog.txt uygulanır ve Pets'e eklenen yeni erişim ilkeleri erişimi Dog.txt olarak 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
$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
Bu komut BUILTIN\Administrators grubuna Dog.txt dosyasının tam denetimini verir.
İlk komut, Dog.txt dosyasının güvenlik tanımlayıcısını almak için cmdlet'ini kullanır Get-Acl
.
BuiltIN\Administrators grubuna Dog.txt dosyasının tam denetimini vermek için sonraki değişkenler oluşturulur. Değişken $identity
, kullanıcı hesabının adına ayarlanır. $fileSystemRights
Değişken FullControl olarak ayarlanır ve erişim kuralıyla ilişkili işlem türünü belirten FileSystemRights değerlerinden herhangi biri olabilir. " $type
İzin Ver" olarak ayarlanan değişken, işleme izin verilip verilmeyeceğini belirtir. Değişken $fileSystemAccessRuleArgumentList
, yeni FileSystemAccessRule nesnesi oluşturulurken 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ı Dog.txt uygulamak için kullanır Set-Acl
. Komut tamamlandığında BUILTIN\Administrators grubu Dog.txt tam denetime sahip olur.
Parametreler
-AclObject
İstenen özellik değerlerine sahip bir ACL belirtir. Set-Acl
Path 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
komutun çıkışını bir değişkene kaydedebilir ve ardından değişkeni geçirmek için AclObject parametresini kullanabilir veya bir Get-Acl
komut yazabilirsiniz.
Type: | Object |
Position: | 1 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ClearCentralAccessPolicy
Belirtilen öğeden merkezi erişim ilkesini kaldırır.
yöneticiler, Windows Server 2012'te başlayarak, kullanıcılar ve gruplar için merkezi erişim ilkeleri ayarlamak üzere Active Directory ve grup ilkesi kullanabilir. Daha fazla bilgi için bkz. Dinamik Access Control: Senaryoya Genel Bakış.
Bu parametre Windows PowerShell 3.0'da tanıtıldı.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Belirtilen öğeleri atlar. Bu parametrenin değeri Path parametresini niteler. gibi *.txt
bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-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 uyguladığından filtreler diğer parametrelerden daha verimlidir.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
Yalnızca belirtilen öğeleri değiştirir. Bu parametrenin değeri Path parametresini niteler.
gibi *.txt
bir yol öğesi veya deseni girin. Joker karakterlere izin verilir.
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Belirtilen nesnenin güvenlik tanımlayıcısını değiştirir. Nesnesini içeren bir değişken veya nesneyi alan bir komut girin.
nesnesini olarak değiştirilecek Set-Acl
şekilde yöneltemezsiniz. Bunun yerine, komutunda InputObject parametresini açıkça kullanın.
Bu parametre Windows PowerShell 3.0'da tanıtıldı.
Type: | PSObject |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Belirtilen öğenin güvenlik tanımlayıcısını değiştirir. Path'in aksine, 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, tek tırnak işareti ('
içine alın).
Tek tırnak işaretleri PowerShell'e hiçbir karakteri kaçış dizisi olarak yorumlamaması gerektiğini söyler.
Bu parametre Windows PowerShell 3.0'da tanıtıldı.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | 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 çıktı üretmez.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Belirtilen öğenin güvenlik tanımlayıcısını değiştirir. Dosyanın yolu veya kayıt defteri anahtarı gibi bir öğenin yolunu girin. Joker karakterlere izin verilir.
'a Set-Acl
bir güvenlik nesnesi geçirirseniz ( AclObject veya SecurityDescriptor parametrelerini kullanarak veya Get-Acl'den Set-Acl
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.
Type: | String[] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-WhatIf
Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmaz.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Bir ACL nesnesini bu cmdlet'e yöneltebilirsiniz.
Bu cmdlet'e bir güvenlik tanımlayıcısı yöneltebilirsiniz.
Çıkışlar
None
Varsayılan olarak, bu cmdlet çıkış döndürmez.
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, PowerShell dosya sistemi ve kayıt defteri 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.
İlişkili Bağlantılar
Geri Bildirim
Gönderin ve geri bildirimi görüntüleyin