[SOLUCIONADO]averiguar privilegios y en el hilo.

Iniciado por Swain, 31 Julio 2014, 00:38 AM

0 Miembros y 2 Visitantes están viendo este tema.

Swain

Alguno tiene algun codigo simple para saber si tengo o no privilegios de Admin.

(para copiar y modificar datos en c:\\Windows\\System32)

probe varias versiones e codigos de internet, pero la mayoria tenian errores o hechos con MFC  y prefiero una version simple como whoami /priv

Muchas Gracias.
No me sigas.

engel lex

Puedes intentar modificar algo allí y si falla no tienes permisos
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Swain

Muchisimas Gracias, era justo lo que necesitaba

El codigo sacado de Technet Microsoft

bool IsUserAdmin(){
/*++
Routine Description: This routine returns TRUE if the caller's
process is a member of the Administrators local group. Caller is NOT
expected to be impersonating anyone and is expected to be able to
open its own process and process token.
Arguments: None.
Return Value:
   TRUE - Caller has Administrators local group.
   FALSE - Caller does not have Administrators local group. --
*/

BOOL b;
SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
PSID AdministratorsGroup;
b = AllocateAndInitializeSid(
    &NtAuthority,
    2,
    SECURITY_BUILTIN_DOMAIN_RID,
    DOMAIN_ALIAS_RID_ADMINS,
    0, 0, 0, 0, 0, 0,
    &AdministratorsGroup);
if(b)
{
    if (!CheckTokenMembership( NULL, AdministratorsGroup, &b))
    {
         b = FALSE;
    }
    FreeSid(AdministratorsGroup);
}

return(b);
}


Lo unico que ahi no te avisan pero en windows7 sp1 32 bits (en donde compile).
necesitas agregar
#define _WIN32_WINNT 0x500 antes de #include <windows.h>
No me sigas.

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón