Comment puis-je obtenir le nom de groupe de travail d'un ordinateur en utilisant C #?
Question
Je l'ai lu à obtenir avec la classe environnement, mais ne peut pas le trouver.
Merci les gars.
La solution
Vous pouvez le faire avec WMI; ajouter une référence à System.Management.dll et une instruction à l'aide de l'espace de noms System.Management, puis appelez le code suivant:
ManagementObjectSearcher mos = new ManagementObjectSearcher(@"root\CIMV2", @"SELECT * FROM Win32_ComputerSystem"); foreach (ManagementObject mo in mos.Get()) { Console.WriteLine(mo["Workgroup"]); }
Autres conseils
Une façon basée sur la réponse Jono, mais plus court:
public static string GetWorkGroup()
{
ManagementObject computer_system = new ManagementObject(
string.Format(
"Win32_ComputerSystem.Name='{0}'",
Environment.MachineName));
object result = computer_system["Workgroup"];
return result.ToString();
}
J'ai essayé en utilisant les options WMI suggérées ici, mais il est avéré être atrocement lent (parfois plus de 5 secondes) sur ma machine (et plusieurs autres dans mon bureau). Ce qui a fini par travailler pour moi a été l'aide de l'appel API « NetGetJoinInformation » ( PInvoke.net ). Les retours d'appels API très rapidement pour moi et fait exactement ce que je dois.