Schreibberechtigung auf Verzeichnis erteilen

06/02/2008 - 15:34 von Stefan Simon | Report spam
Hallo,

ich erteile dem Standardbenutzer (Build-In-User) Schreibberechtigung auf ein
angegebenes Verzeichnis. Dabei habe ich Administratorberechtigungen. Dennoch
schlàgt die Erteilung der Schreibberechtigung auf einigen Rechnern fehl (auf
meinen hier im Büro natürlich nicht). Weiß jemand, unter welchen Umstànden
keine Schreibberechtigung erteilt werden kann?

Hier noch mein Code. Als Pfad wird ein Verzeichnis angegeben, das ich zuvor
erstellt habe, etwa "C:\Programme\MyApp\Backups"

\\\
Public Shared Function SetWriteAccess(ByVal Path As String, _
ByVal sid As Security.Principal.WellKnownSidType) As Boolean
Try
Dim di As New IO.DirectoryInfo(Path)
Dim Vererbungsflags As _
System.Security.AccessControl.InheritanceFlags
Vererbungsflags = InheritanceFlags.ContainerInherit _
Or InheritanceFlags.ObjectInherit
Dim ds As Security.AccessControl.DirectorySecurity = _
di.GetAccessControl()
Dim rule As New Security.AccessControl.FileSystemAccessRule( _
New Security.Principal.NTAccount(GetNameBySid(sid)), _
Security.AccessControl.FileSystemRights.Modify, _
Vererbungsflags, PropagationFlags.None, _
Security.AccessControl.AccessControlType.Allow)
Dim result As Boolean
Dim result2 As Boolean = ds.ModifyAccessRule( _
Security.AccessControl.AccessControlModification.Set, rule,
result)
di.SetAccessControl(ds)
Catch ex As Exception
End Try
Return WriteAccess(Path)
End Function

Public Shared Function WriteAccess(ByVal vPath As String) As Boolean
Try
Dim vDirInfo As New IO.DirectoryInfo(vPath)
Dim vDirSecur As System.Security.AccessControl.DirectorySecurity
= _
vDirInfo.GetAccessControl()
Dim vACE As
System.Security.AccessControl.AuthorizationRuleCollection = _
vDirSecur.GetAccessRules(True, True, _
GetType(System.Security.Principal.NTAccount))
Dim allow As Boolean = False
For Each vAC As
System.Security.AccessControl.FileSystemAccessRule _
In vACE
allow = allow Or WriteAccess(vAC)
Next
Return allow
Catch ex As Exception
Return False
End Try
End Function
///


tia,
Stefan
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
06/02/2008 - 15:38 | Warnen spam
Hallo Stefan,

"Stefan Simon" schrieb:

schlàgt die Erteilung der Schreibberechtigung auf einigen Rechnern fehl



Und das heißt? Fehlermeldung? Codezeile, die den Fehler verursacht? Das
OS wàre evtl. auch noch interessant.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen