[Win32/C(++)] Zugriff auf NTFS als Administrator

Rene Albrecht

Erfahrenes Mitglied
Hi,

folgendes Problem: ich habe CIFS-Freigaben für verschiedene Kunden auf einem Windows Server 2003 eingerichtet. Kunde 1 kommt jetzt als Besitzer des Shares auf die Idee, die Berechtigung so zu ändern, dass nur er Zugriff darauf hat. Jegliche Systemarbeiten hierauf sind für mich als Admin jetzt unmöglich, da ich (ohne den Besitz der Ordner/Dateien zu übernehmen) keinen Zugriff darauf habe. Jetzt habe ich gesehen, dass es Tools (z.B. TotalAccess Disk) gibt, die Zugriff auf solche Ordner/Dateien ermöglichen. Ich möchte Dateieigenschaften für statistische Erhebungen in eine Datenbank schreiben, habe aber auf einige Ordner/Dateien keinen Zugriff.

Hat vielleicht von Euch jemand Ideen, wie ich soetwas programmiertechnisch lösen kann?

Gruß
René
 
Für statistische Erhebungen von NTFS-Partitionen mit unzugänglichen Dateien kann man z.B. Knoppix starten und dann ein C/C++ Programm laufen lassen um alles durchzusuchen, aber das ist es wohl nicht, was du brauchst oder?
 
Nein, es handelt sich um einen produktiven Fileserver in der Firma. Den kann ich nicht einfach mal eben rebooten... :(

Hab allerdings einen Weg gefunden: Da ich Administrator bin, brauch ich mir (theoretisch) lediglich das "SeBackupPrivilege" aktivieren. Das sollte so gehen (noch nicht getestet):

Code:
HANDLE hToken;
TOKEN_PRIVILEGES tPrivs;

// Access Token der Logon Session ermitteln
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, &hToken))
    printf ("   Fehler bei OpenProcessToken: %d\n",GetLastError());

// SeBackupPrivilege aktivieren
if (!LookupPrivilegeValue(NULL, "SeBackupPrivilege", &tPrivs.Privileges[0].Luid))
    printf ("   Fehler bei LookupPrivilegeValue: %d\n",GetLastError());
tPrivs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
tPrivs.PrivilegeCount = 1;

// Logon Session mit neuem Token aktualisieren
if (!AdjustTokenPrivileges(hToken, FALSE, &tPrivs, 0, (PTOKEN_PRIVILEGES)NULL, 0))
    printf ("   Fehler bei AdjustTokenPrivileges: %d\n",GetLastError());
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück