지정된 드라이브에 제품을 찾으십시오 (예 : 윈도우 7 프로) 드라이브 D에 : D:\Windows\System32\license.rtf
윈도우 버전은 내가 어떤 OS 버전을 찾으려면
을 통해 파고없이 저를하게됩니다 System.Management 네임 스페이스 내에서 클래스가 있는가 지정된 로컬 드라이브 문자에서 OS 버전을 찾으십니까?
지정된 드라이브에 제품을 찾으십시오 (예 : 윈도우 7 프로) 드라이브 D에 : D:\Windows\System32\license.rtf
윈도우 버전은 내가 어떤 OS 버전을 찾으려면
을 통해 파고없이 저를하게됩니다 System.Management 네임 스페이스 내에서 클래스가 있는가 지정된 로컬 드라이브 문자에서 OS 버전을 찾으십니까?
//This will help you detect the version of the OS for NT based system, if ntoskrnl.exe doesnt exist its ME/95/98
var DriveLetter = "D"; //D drive.
var pathTontoskrnl = string.Format("{0}:\\{1}", DriveLetter, "\\Windows\System32\ntoskrnl.exe");
if (!File.Exists(pathTontoskrnl))
{
Console.WriteLine("Windows ME/95/98");
}
var versionInfo = FileVersionInfo.GetVersionInfo(pathTontoskrnl);
string version = versionInfo.ProductVersion;
if (version.StartsWith("5.1"))
{
Console.WriteLine("XP");
}
//4.x: NT 4.x
//5.0: Win2k
//5.1: WinXP
//5.2: Win2003 or XP-x64
//6.0: WinVista
//6.1: Win7
//6.2; Win8
//6.3: Win8.1
//6.4: Win10 ??? (not sure)
이 방법은 효과가 있지만 불행히도 Windows 7 pro VS Windows 7 Home Premium과 같은 OS 버전의 차이점을 확인하는 데는 버전 번호를 사용할 수 없습니다. 다른 버전을 식별 할 수있는 다른 방법이 있습니까? – Simon
Windows가 "* :/Windows /"가 아닌 디렉토리에 설치되는 경우에도 실패합니다. –
올바른 이유는 pathTontoskrnl이 Windows의 설치 디렉토리를 전달하려는 경우에 기반하여 구성 할 수있는 이유입니다. –
컴퓨터의 OS가 문제의 드라이브에서 실행되고 있지 않다면 간단한 방법이 아닙니다. Windows는 자신을 인식하고 있습니다. 라이센스 파일과 같은 지표를 찾아야합니다. 유스 케이스 란 무엇입니까? 드라이브에 OS를 설치하고 실행하지 않는 이유는 무엇입니까? –
해당 드라이브의 로컬 컴퓨터 레지스트리 하이브를 C#으로로드 한 다음 레지스트리의 마커를 확인할 수 있습니다. – john
license.rtf 파일에 유용한 정보가 보이지 않습니까? Windows 폴더 아래에 바이너리를 가져 와서 버전 (예 :'\ Windows \ explorer.exe')을 얻은 다음 버전 매핑 -> https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions – npocmaka