2011-09-11 14 views
5

Voglio mostrare i miei utenti (e io) quali sono i loro privilegi sono e dare loro la possibilità di elevare il loro privilegio (o qualcun altro a) prima di eseguire il comando MakeSymbolicLink .finestre privilegio 7 per l'utente e di sicurezza

Il comando di riga di comando equivalente (mklink) richiede l'elevazione delle autorizzazioni. Voglio dare ai miei utenti molte scorciatoie funzionali attraverso una fitta serie di directory. I collegamenti comprendono dischi e file system remoti.

WHAT è il modo canonico programmatico (C# o C++) per estrapolare le impostazioni di sicurezza e un privilegio per un particolare utente durante l'accesso?

+1

Buona domanda anche se potresti voler accettare più risposte alle tue domande prima che ti aspetti che le persone ti aiutino. – Tim

+0

possibile duplicato di [come si può facilmente verificare se l'accesso è negato per un file in .NET?] (Http://stackoverflow.com/questions/265953/how-can-you-easily-check-if-access-is -denied-for-a-file-in-net) –

+0

Per chiamare GetNamedSecurityInfo, il privilegio SE_SECURITY_NAME deve essere abilitato per il processo chiamante. SE_BACKUP_NAME e SE_RESTORE_NAME sono probabilmente OK per GetFileSecurity. Ma di nuovo, se hai invocato questi privilegi, molto probabilmente non hai un problema di accesso negato da affrontare. Se si intende eseguire un account con privilegi minimi, è possibile informare l'utente di quale autorizzazione è negata su quale file/cartella e cosa fare (ad es. Sopra l'elevatore della spalla o l'utente dello switch). –

risposta

0

È possibile utilizzare WMI e toccare in Win32_LogicalFileSecuritySetting o alcune altre tabelle ed enumerare le autorizzazioni in base alle posizioni del percorso file UNC o locale.

Lo spazio dei nomi System.DirectoryServices in C# consente inoltre di enumerare le autorizzazioni su un determinato utente.

Quindi hai un paio di lezioni.

0

È possibile trovare un'implementazione in C++ di ciò che si sta cercando nell'articolo CodeProject seguente: Riding the Vista UAC elevator, up and down. Semplifica l'acquisizione del livello di elevazione attuale e crea nuovi processi in un diverso livello di elevazione. Cose davvero belle, che funzionano anche con Windows 7.

+0

esaminerà. Usare C# ma può interoperare (credo). –

Problemi correlati