Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RÉCUPÉRATION SID UTILISATEUR À PARTIR DE SON NOM


Information sur la source

Description

Mon problème est de supprimer tous les documents récents de tous les utilisateurs.
Pour l'utilisateur courant, cela est simple :
HKCU\\SOFTWARE\\Microsoft\\Windows\\Currentversion\\Explorer\\Shell Folders
avec la clé 'Recent'
maintenant avec le nom d'un autre compte, comment faire ?

Tout simplement par la base des registres dans le HKEY_USERS\\S-1-5-...
Le tout etant à partir d'un nom, d'obtenir le SID.

Le code suivant fonctionne seulement pour les utilisateurs locaux donc si qql'1 veut apporter la modif pour gérer aussi les controlleur de domaine ;p

Ce n'est pas non plus super rapide.
n'obuliez pas de rajouter la reference à votre projet
 

Source

  • using System.Management;
  • namespace glcSystem
  • {
  • public class glcSystemUtil
  • {
  • /// <summary>
  • /// Return the SID associated to a username
  • /// </summary>
  • /// <param name="_oUsername">SID of username to get.</param>
  • /// <returns>Return a string like S-1-5-21-1844237615-73586283-725345543-1003</returns>
  • public static string GetUserSID (string _oUsername)
  • {
  • ManagementObjectSearcher query;
  • ManagementObjectCollection queryCollection;
  • // local scope
  • ConnectionOptions co = new ConnectionOptions();
  • co.Username = _oUsername;
  • ManagementScope msc = new ManagementScope ("\\root\\cimv2",co);
  • string queryString = "SELECT * FROM Win32_UserAccount where name='" +co.Username +"'";
  • SelectQuery q = new SelectQuery (queryString);
  • query = new ManagementObjectSearcher(msc, q);
  • queryCollection = query.Get();
  • string res = String.Empty;
  • foreach(ManagementObject mo in queryCollection)
  • {
  • // there should be only one here!
  • res+= mo["SID"].ToString();
  • }
  • return res;
  • }
  • }
  • }
using System.Management; 

namespace glcSystem
{
public class glcSystemUtil
{

/// <summary>
/// Return the SID associated to a username
/// </summary>
/// <param name="_oUsername">SID of username to get.</param>
/// <returns>Return a string like S-1-5-21-1844237615-73586283-725345543-1003</returns>
public static string GetUserSID (string _oUsername) 
{ 
  ManagementObjectSearcher	query; 
  ManagementObjectCollection	queryCollection; 

  // local scope 
  ConnectionOptions co    = new ConnectionOptions(); 
  co.Username	    = _oUsername; 
  ManagementScope msc = new ManagementScope ("\\root\\cimv2",co); 
  string queryString	    = "SELECT * FROM Win32_UserAccount where name='" +co.Username  +"'"; 
  SelectQuery q    	    = new SelectQuery (queryString); 
  query 		    = new ManagementObjectSearcher(msc, q); 
  queryCollection	    = query.Get(); 
  string res	                    = String.Empty; 
			
  foreach(ManagementObject mo in queryCollection)
  { 
    // there should be only one here! 
    res+= mo["SID"].ToString(); 
  } 
  return res; 
} 

}
}

Conclusion

fonctionnement simple :

using glcSystem;


string oSID;
oSID = glcSystemUtil.GetUserSID ("MyUsername");
 

Commentaires et avis

signaler à un administrateur
Commentaire de scoubidou944 le 11/03/2004 23:40:44

Et comme ca rame et qu'il vaut mieux stocker le résultat quelque part voici le source enfin les 4 lignes de code ;p

Hashtable oUsername2SID = new Hashtable();

oUsername2SID.Add ("Vincent", "S-1-5");
oUsername2SID.Add ("Scoubidou", "S-1-5-11111");

string oResult;
oResult = (string)oUsername2SID["Scoubidou"];

// oResult vaudra "S-1-5-11111"
// ATTENTION A LA CASSE sinon ca renvoi null

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Récupération d'UN seul message [ par LeHulk ] Bonjour,Nous créons une application qui doit récupérer des données stockées dans Exchange. Nous travaillons avec les objet MAPI. Nous arrivons à nous Récupération du contenu d'un site [ par ttornade ] Bjr tout le monde,je voudrais savoir s'il existe des objects en c# qui me permettent de rècupérer le contenu d'une page html à l'intérieur des frames Récupération des propriétés d'un fichier vidéo [ par taharban ] Je cherche à récupérer par programme les propriétés d'un fichier vidéo (.avi). Par exemple, résolution, durée, codecs.J'ai pensé à utiliser un Metafil récupération du résumé d'un fichier image [ par LeGnuff ] Bonjour j'aurai aimé savoir s'il y a un moyen en C# de récupérer les informations stockées dans un fichier image sous Windows XP (dans Propriétés =&gt [Appli Windows][c#] Récupération de données dans un fichier xls [ par Julos59 ] Bonjour,voila je cherche comment récuperer des données dans un fichiers xls.Ca ne doit pas être bien difficile je pense mais comme je débute, ce n'est HHHHHHHHHHHHELM ME......ENVOIE DE MESSAGE [ par sg_kan ] HI..........Voila mon probléme je voudrait envoyé un mail avec des piéces jointes mais je n'y arrive pas voici le code que j'ai mis mais la page ne se Récupération de la Form conteneur d'un composant non graphique [ par yoannd ] Bonjour les gens,Alors voila, je suis en train d'essayer de créer un petit composant non graphique (comme le composant OpenFileDialog par exemple). Le C#:Récupération d'une donnée par un double-click dans datagrid [ par mictou ] Bonjour,J'ai un datagrid connecté à un tableau dans un SGBD. J'aimerais pouvoir récupérer la valeur d'une des colonnes dans une variable lorsque je fa Récupération de la largeur d'une colonne [ par YodaCs ] Bonjour, J'essaye en vain de recupérer la largeur d'une colonne juste après l'avoir modifiée.je recupere les largeurs de mes colonnes par ts.GridColum DataGrid : récupération de valeur [ par aurelie ] Voilà, j'ai encore un problème sur ma datagrid. J'ai rempli ma datagrid avec une datatable (jusqu'ici pas de souci), et selon certaine condition, j'ai


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.