을 사용하여 설치된 Windows 버전을 확인하는 방법 System.Environment.OSVersion은 설치된 Windows 2003 버전 (Standard, Enterprise, DataCenter)을 나타내지 않습니다..net
관리 코드 만 사용하여이 정보에 액세스 할 수있는 방법이 있습니까?
P/Invoke를 사용하여 GetVersionEx를 호출하고 OSVERSIONINFOEX.wSuiteMask를 검사하여이 정보를 얻을 수 있음을 알고 있지만 더 간단한 해결책을 찾고 있습니다. 하여 Win32_OperatingSystem의 OSProductSuite 속성은 Name 속성보다 신뢰성 보이지만 WMI를 사용
업데이트
는 길을 가야하는 것 같습니다. 다음은 샘플 코드입니다.
ManagementScope scope = new ManagementScope();
ObjectQuery query = new ObjectQuery("SELECT name, csdversion, description, OperatingSystemSKU, OSProductSuite FROM Win32_OperatingSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
{
using (ManagementObjectCollection resultCollection = searcher.Get())
{
foreach (ManagementObject result in resultCollection)
{
foreach (PropertyData propertyData in result.Properties)
{
Debug.WriteLine(
propertyData.Name + ": " +
((propertyData.Value == null) ? "" : propertyData.Value.ToString())
);
}
}
}
}
pinvoke way는 꽤 단순 해 보입니다. – leppie