เหตุใด Windows 10 จึงส่งคืนหมายเลขเวอร์ชัน 6.3


8

บน Windows 10 รหัส VB.NET เอาท์พุทEnvironment.OS.VersionString Microsoft Windows NT 6.3.9600.0ตามเอกสารของ Microsoftหมายเลขเวอร์ชันของ Windows 10 คือ10.0อะไรทำไม VB.NET จึงจดจำ Windows 10 เป็น Windows 8.1

ฉันทำsysteminfo | findstr /C:"OS"ในพรอมต์คำสั่งและส่งคืนค่าที่ถูกต้อง10.0.10240 N/A Build 10240ภายใต้ "เวอร์ชัน OS"


2
เพราะมันเป็นความจริงที่คุณอัพเกรดจาก Windows 8.1 วิธีที่คุณใช้กำลังดูที่รีจิสตรี มันทำงานได้ตามที่ตั้งใจไว้ มีฟังก์ชั่นที่เหมาะสมกว่าจากนั้นใช้ตัวแปรสภาพแวดล้อมเพื่อพิจารณาว่าระบบปฏิบัติการใดที่ใช้อยู่ ฉันไม่สามารถให้รหัสได้เนื่องจากนี่ไม่ใช่ Stackoverflow
Ramhound

1
บางคนประสบปัญหาเดียวกันในความคิดเห็นที่นี่: msdn.microsoft.com/en-us/library/windows/desktop/คุณต้องอัปเดตรายการสำหรับแอปพลิเคชันของคุณ
MC10

คุณยังใช้มันผิด นี่ควรจะจบลงที่ Stackoverflow เนื่องจากเป็นปัญหาการเข้ารหัสและถึงแม้ว่าฉันสงสัยว่าการใช้ตัวแปรสภาพแวดล้อมยังคงเป็นวิธีที่ผิดพลาดในการดำเนินการไฟล์ชัดแจ้งไม่ถูกต้อง
Ramhound

@Ramhound ใช่ฉันคิดว่านั่นอาจเป็นกรณี ฉันรู้ว่าหลังจากอัปเกรดเป็น Windows 10 แล้ว Windows 8.1 จะถูกลบออก - นั่นหมายความว่าหมายเลขเวอร์ชั่นจะถูกต้องหรือไม่
Dog Lover

หมายเลขเวอร์ชั่นถูกต้อง อย่างที่ฉันบอกว่าวิธีการใช้งานของคุณคือการอ่านรีจิสทรีซึ่งไม่ได้รับการปรับปรุงและจะไม่ได้รับการอัปเดตเว้นแต่จะเป็นการติดตั้ง Windows 10 ใหม่ทั้งหมดไปที่งานนี้ด้วยวิธีที่แตกต่างกัน ตัวแปรสภาพแวดล้อม
Ramhound

คำตอบ:


3

เพราะมันเป็นความจริงที่คุณอัพเกรดจาก Windows 8.1 วิธีที่คุณใช้กำลังดูที่รีจิสตรี มันทำงานได้ตามที่ตั้งใจไว้ มีฟังก์ชั่นที่เหมาะสมกว่าจากนั้นใช้ตัวแปรสภาพแวดล้อมเพื่อพิจารณาว่าระบบปฏิบัติการใดที่ใช้อยู่ ฉันไม่สามารถระบุรหัสได้เนื่องจากนี่ไม่ใช่ Stackoverflow

- Ramhound 26 สิงหาคมเวลา 1:12

นั่นคือคำตอบสั้น ๆ ในระหว่างการอัพเกรดรีจิสทรีจะไม่เปลี่ยนหมายเลขบิลด์จากเก่าเป็นใหม่ มันแค่เกาะติด


2
กล่าวอีกนัยหนึ่งการอัปเกรดไม่ทำงานอย่างถูกต้อง ... ไม่มีอะไรใหม่ในฝั่งตะวันตก)
Quandary

0

ดังนั้นเพื่อกลับไปที่คำถามหลัก ... ฉันใช้ Windows Management Instrumentation (WMI) เพื่อสร้างหมายเลขรุ่น Windows ในลักษณะที่คุณคาดหวัง ตัวอย่างเช่นจะรายงาน 10.0.10586

นี่คือข้อมูลโค้ดสั้น ๆ

Public Class OS

' Use Windows Management Instrumentation (WMI) to get the OS version
    Public Shared Function GetOSVersion() As String
        Dim answer As String = ""

        ' add Imports System.Management and add a resource to System.Management
        Dim osClass As New ManagementClass("Win32_OperatingSystem")
        For Each queryObj As ManagementObject In osClass.GetInstances()
            answer = DirectCast(queryObj.GetPropertyValue("Version"), String)
        Next

        Return answer
    End Function
End Class

0

นั่นเป็นเพราะคุณกำลังอ่านCurrentVersionจากHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersionและตามที่ได้กล่าวไปแล้วรายการนั้นไม่ได้รับการเปลี่ยนแปลงที่มีการปรับปรุงด้วยการอัปเดต Windows

รายการการตรวจสอบมีCurrentMajorVersionNumber, CurrentMinorVersionNumberและCurrentBuildNumberในคีย์เดียวกัน


-1

6.3 เป็นรุ่นภายในของ Windows ซึ่งแสดงให้เห็นว่าตั้งแต่ Windows 7 ไม่มีการเผยแพร่ครั้งสำคัญใด ๆ ซึ่งตรงกันข้ามกับสิ่งที่ Microsoft ต้องการให้คุณเชื่อ ชื่อ Windows 7, 8, 10 เป็นต้นเป็นเพียงชื่อทางการตลาด พวกเขาตัดสินใจข้าม 9 เพื่อให้ตรงกับ Mac OS X แต่หมายเลขเวอร์ชันจริงคือ 6.3


1
มีสาเหตุหลายประการที่ทำให้พวกเขาข้าม v9 ไป (เหตุผลอย่างหนึ่งคือแอพรุ่นเก่า ๆ จะเห็นทั้ง 9 และคิดผิดว่าระบบปฏิบัติการเป็น Windows 95/98 - แต่ฉันไม่คิดว่าพวกเขาเคยยืนยันหรือปฏิเสธว่า ) ที่กล่าวว่าพยายามที่จะหลีกเลี่ยงการเก็งกำไรแบบสุ่มในคำตอบของคุณ - แหล่งข้อมูลที่ดีที่สุด :)
22422 Mikey

-1

ฉันติดตั้ง Windows 10 (ฉบับครบรอบปี 1607) ตั้งแต่เริ่มต้นและรายการรีจิสตรีในเวอร์ชันปัจจุบันยังรายงาน 6.3 แต่เช่น 'ver' รายงาน 10.0.14393

BTW 1) ฉันอ่านว่าหน้าตัวอย่างของ Windows 10 คือ 6.4

BTW 2) ​​ฉันติดตั้ง Windows 10 เป็น Hyper-V VM บน Windows Server 2012 R2 แต่ฉันไม่คิดว่าจะต้องทำอะไรกับมัน


"ฉันอ่านว่าหน้าต่างตัวอย่าง 10 คือ 6.4" - คุณอ่านผิด นี่คือความคิดเห็นมันไม่ได้ตอบคำถามของผู้เขียนถ้าคุณต้องการที่จะแสดงความคิดเห็นได้รับคะแนนต้องมีชื่อเสียงในการทำเช่นนั้น
Ramhound
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.