2014-09-11 32 views
17

Klasör izinlerini uygulamada "varsayılan" seçenekleri kullanmaya çalışıyorum; Bununla, bir klasör için 'Özellikler' içinde "Tam Kontrollü, Yazma, Oku, vb" kullanarak kastediyorum.PowerShell Klasör İzinlerini Ayarlamak İçin

şu komut kullanıcıyı eklemek için çalışır, ancak "Özel İzinler" geçerlidir - klasörün özellikleri menüsünde görünür olanlar için onay kutuları değil olanlar:

$Acl = Get-Acl "\\R9N2WRN\Share" 

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule ("user","FullControl","Allow") 

$Acl.SetAccessRule($Ar) 
Set-Acl "\\R9N2WRN\Share" $Acl 

Ne am Yanlış mı yapıyorum lütfen?

cevap

32

FileSystemAccessRule() yapıcı düzeltmeleri devralma Belirlenmesi Bu, aşağıdaki tadil edilmiş kodu ("FullControl" ve "Allow" arasına yerleştirilmiş iki yeni constuctor parametrelerini dikkat edin) ile gösterildiği gibi. Eğer bir FileSystemAccessRule Eğer InheritanceFlags özelliği Yok olarak ayarlandığında sahip şekilde oluştururken. GUI içinde this topic

göre

$Acl = Get-Acl "\\R9N2WRN\Share" 

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("user", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow") 

$Acl.SetAccessRule($Ar) 
Set-Acl "\\R9N2WRN\Share" $Acl 

", bu Uygula bir ACE tekabül kutusu "Bu Klasör Sadece", ve bu giriş türünü Gelişmiş ayarlarında görüntülenmesi gerekir. "

Değişikliği test ettim ve işe yarıyor, ancak tabi ki kredi, bu konudaki cevabı MVP'ye göndermekten kaynaklanıyor.

0

seti izinleri (Dosya/Dizin) için PowerShell kullanarak başka örnek:

Doğrulayın izinleri

"C: \ file.txt"-Acl alın |

args = "herkes", "FullControl", "Allow $: "\ file.txt C" *

$ = Get-ACL ACL

herkes

için tam izinleri uygulamak fl "

$ accessRule = Yeni-Nesne System.Security.AccessControl.FileSystemAccessRule $ args

$ acl.SetAccessRule ($ accessRule)

$ acl |

Umut bu

yardımcı olur: "\ file.txt C"-Acl Set