17. januar 2002 - 15:13
Der er
1 kommentar og
1 løsning
RegSaveKey probelmer med Privilege
Når jeg prøver at læse i registry, får jeg følgende fejlmeddelse
\"A reguired privilege is not held by the client\"
Jeg er lokaladministrator på maskinen, som bla. har SE_BACKUP_NAME rettigheder som der står i MSDN at man skal have..
På forhånd tak
18. januar 2002 - 22:11
#1
Hejsa :)
Jeg tror jeg har fundet løsningen til dit problem:
Nu håber jeg virkelig at du har VisualStudio6, for det MSDN der følger med er det eneste sted jeg har kunnet finde knowledge-base artiklen der forklarer grunden til problemet, jeg kan ikke engang finde den online hos microsoft...
Det er artikel: Q106383
Som jeg har forstået det, giver SE_BACKUP_NAME ikke brugeren, de endelige, backup rettigheder.
I bund og grund går det ud på at der skal oprettes et \'sequrity token\' for at få lov til at lave backup af filer. Det nødvendige token bliver dog ikke oprettet automatisk blot fordi brugeren får SE_BACKUP_NAME rettigheden. Det skal du selv gøre i programmet...
Hvis du ikke har adgang til Q106383-artiklen har jeg snuppet kode-eksemplet, så du har noget mere håndgribeligt, der viser hvordan det gøres :)
static HANDLE hToken;
static TOKEN_PRIVILEGES tp;
static LUID luid;
// Enable backup privilege.
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
LookupPrivilegeValue(NULL, \"SeBackupPrivilege\", &luid);
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
// Insert your code here to save the registry keys/subkeys.
// Disable backup privilege.
AdjustTokenPrivileges(hToken, TRUE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
Jeg håber du kan bruge min forklaring (Eller kan finde artiklen) for det er ikke det nemmeste at forklare, når man ikke selv bruger det, og derfor ikke kender til det ;)
21. januar 2002 - 07:56
#2
Jeg takker for hjælpen, mbulow.
Og lukker spørgsmålet, og følger din anvisning fra det andet spørgs mål, endnu en gang tak