วิธีระบุเวอร์ชัน Windows ของการติดตั้งที่ไม่ทำงานจาก Linux โดยการเข้าถึงระบบไฟล์ของมันเท่านั้น [ซ้ำ]


11

คำถามของฉันไม่มีคำตอบอยู่ที่นั่นเพราะพวกเขาทั้งหมดเป็นเฉพาะ windows และฉันต้องการโซลูชัน linux

ฉันติดตั้ง windows ที่ตายแล้วในหนึ่งในพาร์ติชันของฉัน ไม่มีข้อมูลการบู๊ตอีกต่อไป ในทางปฏิบัติมันเป็นเพียงการถ่ายโอนข้อมูลระบบไฟล์ แต่ฉันสามารถอ่านไฟล์ใด ๆ ในระบบไฟล์

ฉันจะระบุเวอร์ชั่นของ Windows ได้อย่างไร ในกรณีที่เหมาะฉันคิดว่าควรมีการตั้งค่าการกำหนดค่าบางอย่างหรือไฟล์ใด ๆ ที่ไม่ซ้ำกับรุ่น Windows ที่แตกต่างกัน ตัวอย่างเช่นบนดิสทริบิวเตอร์ที่ใช้ Debian ฉันสามารถอ่าน/etc/debian_versionได้

ฉันจะทำเช่นเดียวกันในการชนะได้อย่างไร

ส่วนขยาย # 1:น่าเสียดายที่ฉันมีสิทธิ์เข้าถึงกล่อง Linux เพื่อเข้าถึงฮาร์ดดิสก์เท่านั้น ดังนั้นโซลูชันที่ต้องใช้ Windows (ตัวอย่างเช่นการขุดในรุ่นntoskrnl.exeหรือตรวจสอบการตั้งค่ารีจิสทรี) ไม่ได้เป็นไปได้


4
น่าเสียดายที่คำถามนี้ไม่มีคำตอบที่ฉันต้องการ วิธีแก้ปัญหาที่ฉันพบคือว่าC:\Windows\System32\License.rtfมีรุ่น windows
peterh - Reinstate Monica

มันยังคงเป็นคำถามที่ซ้ำกัน
Moab

1
@Moab คำถามของฉันคือเฉพาะ Linux ในขณะที่คำถามอื่นมีเฉพาะคำตอบเฉพาะ Windows
peterh - Reinstate Monica

3
ฉันหวังว่าคำถามนี้จะถูกทำซ้ำแน่นอนคำถามอื่น ๆ ต้องใช้การติดตั้ง Windows ที่ใช้งานได้ในขณะที่คำถามนี้เกี่ยวกับ Linux strings ./Windows/System32/ntoskrnl.exe 2>/dev/null | grep amd64ฉันพบว่านี้สามารถตอบคำถาม: สำหรับฉันในการพิมพ์9600.18258.amd64fre.winblue_ltsb.160303-0600และ googling for winblue ระบุว่านี่เป็นชื่อรหัสสำหรับ Windows 8.1
David Faure

2
น่าเสียดายที่นี่มีการทำเครื่องหมายว่าซ้ำซ้อน hivexgetเพื่อรับข้อมูลจากลินุกซ์ก็สามารถทำได้ด้วย ฉันเพิ่มรายละเอียดไปยังคำถามอื่น: superuser.com/a/1383325/53547
mivk

คำตอบ:


4

ง่าย ดูรุ่นของ<drive>:\Windows\System32\ntoskrnl.exe

ในกรณีของ XP ให้มองหา <drive>:\boot.ini

หากเป็น Vista + คุณสามารถค้นหา<drive>:\Bootโฟลเดอร์ได้

สำหรับ Windows 7 ขึ้นไปคุณสามารถค้นหาตัวจัดการอุปกรณ์สำหรับSystem Reservedพาร์ติชันที่ซ่อนอยู่

หากมีไฟล์ชื่อlicense.rtfในC:\Windows\System32โฟลเดอร์ของคุณไฟล์ดังกล่าวจะมีเวอร์ชั่น Windows ปัจจุบันของคุณด้วย


ขอบคุณมาก! มันคือ Win7 + ปัญหาคือฉันไม่มีพาร์ทิชัน "System Reserve" อีกต่อไป ฉันมีเพียง C ปกติ: ฉันจะดูรุ่นของ ntoskrnl.exe ได้อย่างไร
peterh - Reinstate Monica

ในที่สุดฉันก็แก้ไขโดย license.rtf แต่โซลูชันอื่น ๆ ของคุณก็มีประโยชน์เช่นกัน ขอบคุณมาก!
peterh - Reinstate Monica

@ peterh สำหรับการอ้างอิงในอนาคตคลิกขวารายละเอียด คุณจะเห็นข้อมูลเช่น (ในกรณีของฉัน:NT OS & Kernel. Version: 6.1.7601
td512

สำหรับการอ้างอิง: Microsoft Windows XP [Version 5.1.2600](เมื่อเริ่มต้น cmd.exe)
Hannu

ข้อผิดพลาด ... ^ - นั่นคือ XP Pro "2002" SP 3 - 32 บิตMicrosoft Windows [Version 6.3.9600]เป็น Windows 8.1 Pro (64 บิต)
Hannu

1

คุณสามารถสตรีมได้เช่นกัน

strings cmd.exe | find "Version"อาจทำงานด้วย ไฟล์ส่วนใหญ่มีรุ่นของ windows ในแผ่นคุณสมบัติซึ่งสามารถมองเห็นได้ในไบนารีดิบใกล้ถึงจุดสิ้นสุด หนึ่งในนั้นคือรุ่น windows มันอยู่ใน Unicode แม้ว่า


1
1) find "Version"เป็นสิ่ง windows ฉันมี linux และใช้ grep 2) มันให้ข้อมูล xml ที่เป็นความลับเท่านั้นข้อมูลรุ่นเดียวคือบางอย่างเช่น "5.1.0.0" ซึ่งสามารถเป็นอะไรก็ได้ระหว่าง winxp และ win7 แต่คำตอบของคุณอาจมีประโยชน์สำหรับผู้ใช้ Google ในอนาคตดังนั้นนี่คือ +1
peterh - Reinstate Monica

คุณสามารถโหลดมันในโปรแกรมแก้ไขข้อความหรือโปรแกรมดูข้อความบางประเภทและดูที่นั่น grep -i "Version"จะทำเช่นเดียวกับ windows 'find'
wendy.krieger

find /i "search-data"grep -i "search-data"==
Hannu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.