Zugriffsrechte

31/03/2009 - 10:33 von Albert Andersson | Report spam
Hallo zusammen

Ich muss auf einem Laufwerk die Zugriffsrechte setzen, weil aus welchen
gründen auch immer nach einer Installation die User keine Rechte auf dem
Laufwerk D haben. (Nur Read & Execute + List Folder Contents + Read)

Der Code den ich Nutze habe ich mir im Internet zusammengesucht.
Für mich schaut er richtig aus ... kapier also nicht was falsch làuft.

ZIEL: Der user "Everyone" oder "Jeder" usw. soll die rechte
"FullControl" erhalten.

Ist Everyone nicht in der Liste wird er Hinzugefügt, erhàlt allerdings
die Rechte "Special Permission"

Wenn Everyone bereits in der Liste ist, passiert nichts.

Hier mein CODE:

System.Security.Principal.SecurityIdentifier sid = new
System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.WorldSid,
null);
System.Security.Principal.NTAccount acct =
sid.Translate(typeof(System.Security.Principal.NTAccount)) as
System.Security.Principal.NTAccount;

string strEveryoneAccount = acct.ToString();

DriveInfo drive = new DriveInfo("d");
DirectoryInfo rootDir = drive.RootDirectory;
DirectorySecurity rootDirSec = rootDir.GetAccessControl();

FileSystemAccessRule rule = new FileSystemAccessRule(
strEveryoneAccount,
FileSystemRights.FullControl,
AccessControlType.Allow
);

rootDirSec.AddAccessRule(rule);
rootDir.SetAccessControl(rootDirSec);

Ausgeführt wird das bei mir mit Lokalen Admin rechten.

Wàr schön wenn mir jemand helfen könnte.

Grüsse
Albert
 

Lesen sie die antworten

#1 Albert Andersson
31/03/2009 - 11:44 | Warnen spam
Lösung:

FileSystemAccessRule rule = new FileSystemAccessRule(
strEveryoneAccount,
FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit |
InheritanceFlags.ContainerInherit,
PropagationFlags.None,
AccessControlType.Allow
);



Albert Andersson schrieb:
Hallo zusammen

Ich muss auf einem Laufwerk die Zugriffsrechte setzen, weil aus welchen
gründen auch immer nach einer Installation die User keine Rechte auf dem
Laufwerk D haben. (Nur Read & Execute + List Folder Contents + Read)

Der Code den ich Nutze habe ich mir im Internet zusammengesucht.
Für mich schaut er richtig aus ... kapier also nicht was falsch làuft.

ZIEL: Der user "Everyone" oder "Jeder" usw. soll die rechte
"FullControl" erhalten.

Ist Everyone nicht in der Liste wird er Hinzugefügt, erhàlt allerdings
die Rechte "Special Permission"

Wenn Everyone bereits in der Liste ist, passiert nichts.

Hier mein CODE:

System.Security.Principal.SecurityIdentifier sid = new
System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.WorldSid,
null);
System.Security.Principal.NTAccount acct =
sid.Translate(typeof(System.Security.Principal.NTAccount)) as
System.Security.Principal.NTAccount;

string strEveryoneAccount = acct.ToString();

DriveInfo drive = new DriveInfo("d");
DirectoryInfo rootDir = drive.RootDirectory;
DirectorySecurity rootDirSec = rootDir.GetAccessControl();

FileSystemAccessRule rule = new FileSystemAccessRule(
strEveryoneAccount,
FileSystemRights.FullControl,
AccessControlType.Allow
);

rootDirSec.AddAccessRule(rule);
rootDir.SetAccessControl(rootDirSec);

Ausgeführt wird das bei mir mit Lokalen Admin rechten.

Wàr schön wenn mir jemand helfen könnte.

Grüsse
Albert

Ähnliche fragen