Comment puis-je obtenir le nom de groupe de travail d'un ordinateur en utilisant C #?

StackOverflow https://stackoverflow.com/questions/2708610

  •  01-10-2019
  •  | 
  •  

Question

Je l'ai lu à obtenir avec la classe environnement, mais ne peut pas le trouver.

Merci les gars.

Était-ce utile?

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.

Regardez pour un exemple. Vous devrez utiliser P / Invoke.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top