C# Besitzer einer Datei ändern ohne SetAccessControl()?

2 Antworten

Schaust dir evtl. mal das an: https://blog.salamandersoft.co.uk/index.php/2009/10/setting-the-owner-of-files-and-directories-in-c/

Pack die dort "erhältliche" Klasse in dein Projekt und ändere deinen Codeschnipsel wie folgt ab:

UnmanagedCode.GiveRestorePrivilege();
NTAccount account = new NTAccount("DOMÄNE", "Administrator");
FileInfo fileInfo = new FileInfo("C:\\Windows\GanzWichtigeDatei.xyz");
FileSecurity fileSecurity = file.GetAccessControl();
fileSecurity.SetOwner(account);
file.SetAccessControl(fileSecurity);

Könnte funktionieren... ^^

Du meinst, dass durch die "GiveRestorePrivilege()" Methode dann das "GetAccessControl()" und "SetAccessControl()" klappen könnte?

0

Also die Doku sagt, du könntest diese Exception auch bekommen, wenn die Datei Read-Only ist. Überprüfe doch mal, ob das Flag gesetzt ist...

...vlt. musst du den neuen Owner danach noch als AccessRule eintragen mit FileSecurity.AddAccessRule().

Der Read-Only Tag ist bei der Datei nicht gesetzt, und der Fehler tritt trotz AddAccessRule()-Methode weiterhin auf.

0
@JaskiHax

Hmm na dann kann ich dir auch nicht weiterhelfen. Ich weiß nur, dass Windoof auch so manchmal recht schrullig sein kann, wenn es um die Übernahme von Dateien geht. Ich hatte da auch schon im Explorer manchmal so meine Probleme, wo nicht das erwartete Ergebnis zu Stande kam... Gerade wenn es um die Übernahme von Dateien von "System" geht.

0

Okay trotzdem danke für die Antwort. Hat denn jemand anders eine Idee?

1

Kennt jemand ein Forum bei dem man sein Code hochladen kann um Fragen beantwortet, Code bewertet und um hilfe zubekommen(Unity, C#)?

...zur Frage

C# - Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird?

Hallo, ich habe ein Problem mit meiner programmierten Anwendung. Immer wenn ich auf den Erstellen-Button klicke kommt in einer textBox die Meldung:

Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Code:

private void buttonErstellen_Click(object sender, EventArgs e)
		{
			OpenFileDialog ofd = new OpenFileDialog();
			ofd.Filter = "XML|*.xml";
			if (ofd.ShowDialog() == DialogResult.OK)
			{
				try
				{
					textBoxPfad.Text = Path.GetDirectoryName(ofd.FileName);
					DeserializeXml(ofd.FileName);
				}
				catch (Exception exception)
				{
					textBoxStatus.Text = exception.Message;
				}
			}
		}
    public void DeserializeXml(string fileName)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(PersonenKonfiguration));
        XmlReader xmlFileReader;
        
        try
        {
            Person personen = new Person { Name = "Mustermann", Vorname = "Max", Wohnort = "Musterstadt" };
            
            xmlFileReader = XmlReader.Create(fileName);
            StreamWriter writer = new StreamWriter(fileName);
            serializer.Deserialize(xmlFileReader);
            writer.Write(personen);
            textBoxStatus.Text = "Validierung abgeschlossen.";
        }
        catch (Exception ex)
        {
            textBoxStatus.Text = ex.Message;
        }
    }

...zur Frage

mit csharp zahl in microsoft access datenbank aufaddieren?

Immer wenn ich enter drücke wird 100 einem vorhandenem Wert in der Datenbank hinzugefügt. Ich habe bereits den sql Update Set Befehl und benötige nun eine Funktion für das Drücken der Enter Taste, die eine Variable zurückgibt, welche ich dann in den sql Befehl anfügen kann.

...zur Frage

Windows System bzw TrustedInstaller Dateien modifizieren?

Ich suche nach einer möglichkeit Dateien im system32 ordner umzubennen. Das soll ohne admin rechte funktionieren (ich weiß, sehr ambitioniert) Also am besten wäre es über ne batch, also cmd, oder phython. Was aber auch gut wäre wäre eine datei die beim booten ausgeführt wird und die datei modifiziert bevor windows läd und das blockt. Leider habe ich damit keine Erfahrung, in was schreibt man da, C, assembler ? Naja, danke schon mal, LG Twizzy

...zur Frage

Prozentzahlen Win7 hinten und in Win10 vorne?

Hallo,

bei meinem C# Programm werden, beim Update auf die Windows 10 Versionbzw in der Virtuellen Maschine, die Prozentzahlen vor der Zahl statt dahinter angezeigt.

Habt ihr Gründe dafür im Kopf?

MfG.

Marcel

...zur Frage

Wie kann ich mir auf Windows 10 admin rechte geben?

Hii ich kann mir nichts runterladen. Bei Edge steht Wende Sie sich an den Besitzer dieser Datei oder einen Admin, um diese Berechtigung zu erhalten. Ich bin der einigste User auf den PC

...zur Frage

Was möchtest Du wissen?