Laden...

Besitz von Verzeichnissen und Dateien

Erstellt von veasel vor 16 Jahren Letzter Beitrag vor 16 Jahren 5.986 Views
V
veasel Themenstarter:in
327 Beiträge seit 2005
vor 16 Jahren
Besitz von Verzeichnissen und Dateien

Hallo,

ich hab da mal wieder ein kleines Problem...
Ich will ein Proggi basteln, dass Profilordner von Servern löscht.

Das Problem, dass sich da bietet ist, dass der Nutzer unter dem das Proggi läuft (DomänenAdmin) nicht der Besitzer der Verzeichnissen ist, sondern ja der Nutzer selbst.
Der Admin kann den Besitz aber übernehmen.
Nur wie mache ich das im Code?

mein Ansatz war:

DirectoryInfo info = new DirectoryInfo(path);
DirectorySecurity dirSec = 
            new DirectorySecurity(info.FullName, AccessControlSections.Owner);
dirSec.SetOwner(new NTAccount("domain\\Administrator"));
info.SetAccessControl(dirSec);

Wenn ich die DirectorySecurity zuweisen will, kommt eine Exception, dass ein nicht autorisierter Vorgang ausgeführt wurde.

Was mache ist falsch?
Die DirectoryInfo ist über UNC Pfad gebunden, liegt es daran?

DANKE

MFG Veasel

V
veasel Themenstarter:in
327 Beiträge seit 2005
vor 16 Jahren

okay..
ich habs mal lokal mit dem Temp Ordner versucht.
also grundsätzlich funktioniert das...bis auf, dass man das rekursiv in allen Verzeichnissen machen muss... 😮(

Kann ich dann meine Anwendung noch irgendwie andere Rechte zuweisen, also in einem anderen Context laufen lassen. Aber wenn ich sie als DomänenAdmin starte, müsste das doch reichen oder nicht?

und der DomänenAdmin darf auch den Besitz des Ordners übernehmen!

Hilfe...

ich versteh das nicht...

MFG Veasel

V
veasel Themenstarter:in
327 Beiträge seit 2005
vor 16 Jahren

okay... an den UNC Pfaden schein es nicht zu liegen, hab es mal lokal mit UNC probiert und es klappt (\pc\c$\temp)

Aber wenn ich es auf dem Server mit dem Admin versuche kommt immernoch diese Fehlermeldung.

nichtautorisierter Vorgang

PS:
ich glaub ich weis warum!
weil der admin keine rechte auf den Ordner hat...aber da beisst sich doch die katze in den schwanz, oder?
wie soll ich denn ein DirectorySecurityObject holen um Rechte zu setzen wenn ich keine Rechte habe... ???

HILFE!!

MFG Veasel

V
veasel Themenstarter:in
327 Beiträge seit 2005
vor 16 Jahren

weis denn keiner Rat??

Schade...

warum frag ich bloß immer so schwierige sachen...? 😮)

MFG Veasel

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo veasel,

viel kann ich dir auch nicht weiter helfen. Aber das Recht, den Besitz zu übernehmen, ist ein eigenes Recht und man kann es haben, ohne sonst irgendwelche rechte an der Datei zu haben. Insofern beißt sich nichts in den Schwanz.

herbivore

V
veasel Themenstarter:in
327 Beiträge seit 2005
vor 16 Jahren

danke für die Antwort...

ja das weis ich auch

das heißt auch irgendwas mit ...OwnerPrevelege... oder so...

der fehler kommt ja auch nicht wenn ich den besitzer setzen will, sondern schon wenn ich mir das DirectorySecurity Object holen will.

ich lasse das Proggi aber unter dem DomänenAdmin laufen und der darf den Besitz übernehmen...
wenn ich das mit der Maus mache, geht das ja wunderschön...

kann ich meiner Anwendung noch irgendwie sagen, dass sie unter einem bestimmten nutzer läuft oder bestimmte nutzerrechte hat?

MFG Veasel

S
489 Beiträge seit 2007
vor 16 Jahren

Ja das geht, ob das aber programmgesteuert geht weiss ich leider nicht. Ansonsten kannste Dir eine Verknüpfung erstellen und dort dann den gewünschten User angeben.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo veasel,

wenn du das Programm als Admin startest, sollte das reichen.

Es gibt aber zwei Arten von Berechtigungen, die gegeben sein müssen. 1) Benutzerberechtigungen (die hast du, denn es geht ja mit der Maus) und 2) Codezugriffsberechtigungen, also dass der Code das auch machen darf.

Siehe auch [Gelöst] Absoluter Pfad in C# ?

herbivore

V
veasel Themenstarter:in
327 Beiträge seit 2005
vor 16 Jahren

hey herbivore,

ja die CAS muss ich doch zum beispiel einstellen wenn ich die anwendung aus dem lan starte (.NET Configuration) aber das mach ich doch gar nicht...oder muss ich auch was einstellen wenn die anwendung im lan was machen will?
also im LAN auf eine Datei zugreifen will.
das ganze mache ich ja über UNC pfade...

wie mache ich das denn?

MFG Veasel

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo veasel,

der muss ich auch was einstellen wenn die anwendung im lan was machen will?

ich bin auch kein Spezialist für CAS. 😦

wie mache ich das denn?

Wie und wo du die Berechtigungen einstellst, findest du über die Links in meinem Link.

herbivore

V
veasel Themenstarter:in
327 Beiträge seit 2005
vor 16 Jahren

Also ich muss das Problem nochmal aufgreifen...

ich habe immernoch das Problem, das diese fehlermeldung kommt...

"Es wurde versucht, einen nicht autorisierten Vorgang auszuführen."

Was soll mir das sagen?

Wie soll ich denn den Besitzer ändern, wenn ich mir nicht das DirecrorySecurity Objekt holen kann?

man find ich das doof... 😁

MFG Veasel