จากพรอมต์คำสั่งที่ใช้ Windows NT (Windows XP และ 7 โดยเฉพาะ) ฉันจะรับหมายเลขซีเรียลของฮาร์ดไดรฟ์เป็นตัวแปรได้อย่างไร สิ่งที่ฉันกำลังดูคือหมายเลขซีเรียลของฮาร์ดไดรฟ์ทางกายภาพ
จากพรอมต์คำสั่งที่ใช้ Windows NT (Windows XP และ 7 โดยเฉพาะ) ฉันจะรับหมายเลขซีเรียลของฮาร์ดไดรฟ์เป็นตัวแปรได้อย่างไร สิ่งที่ฉันกำลังดูคือหมายเลขซีเรียลของฮาร์ดไดรฟ์ทางกายภาพ
คำตอบ:
ฉบับ C:
นี้จะได้รับหมายเลขซีเรียลปริมาณที่มอบให้โดย windows
wmic diskdrive รับหมายเลขอนุกรม
ทำให้ได้หมายเลขซีเรียลของผู้ผลิตฮาร์ดไดรฟ์
wmic diskdrive get serialnumber
Invalid XML
มันหมายความว่าอะไร?
wmic diskdrive get serialnumber
ฉันได้รับข้อผิดพลาดไม่ถูกต้องสำหรับแบบสอบถาม
Invalid XML
เกิดจากมีการเชื่อมต่อไดรฟ์มากกว่าหนึ่งตัวและInvalid query
เกิดขึ้นเพราะฉันใช้ Windows XP ดูคำตอบสำหรับปัญหาทั้งสองนี้: stackoverflow.com/questions/9287450/…
wmic diskdrive get serialnumber
(และWin32_DiskDrive
คลาส WMI โดยทั่วไป) ส่งคืนหมายเลขซีเรียลโดยที่อักขระแต่ละคู่กลับด้าน ดังนั้นหากฉลากฮาร์ดไดรฟ์ของคุณอ่าน "abcd1234" WMI จะรายงานหมายเลขซีเรียลของคุณเป็น "badc2143" ข้อมูลเพิ่มเติมที่นี่
สิ่งที่คุณกำลังดูไม่ใช่หมายเลขซีเรียลของฮาร์ดไดรฟ์
มันถูกเรียกว่าปริมาณหมายเลขลำดับ มันถูกสร้างขึ้นในเวลาของการสร้างและการจัดรูปแบบไดรฟ์ / พาร์ทิชัน
คุณสามารถขอรับได้โดยใช้คำสั่งที่พร้อมท์คำสั่ง: C:\> vol c:
ถ้าC:
เป็นไดรฟ์ที่คุณต้องการดึงข้อมูลหมายเลขซีเรียลสำหรับ
สิ่งที่คุณทำได้คือเปลี่ยนเส้นทางของคำสั่งนั้นไปยังไฟล์: C:\> vol c: > myvol.txt
และมันจะถูกเก็บไว้เป็นไฟล์ข้อความในไฟล์ของคุณC:
ฉันกำลังแนบภาพหน้าจอพร้อมกับไฮไลท์:
C:
myvol.txt
ลักษณะของไฟล์ใน Notepad: ในหลอดเลือดดำเช่นเดียวกับคำตอบของ Moab แต่การใช้ PowerShell ในครั้งนี้:
Get-CimInstance Win32_DiskDrive | Select-Object Model,SerialNumber
คำสั่งนี้รับอินสแตนซ์ของWin32_DiskDrive
คลาส WMI และส่งออกรุ่นของดิสก์ไดรฟ์แต่ละตัวในคอมพิวเตอร์และหมายเลขซีเรียลที่เกี่ยวข้องจากอินสแตนซ์นั้น
คำตอบนี้จะถือว่า PowerShell 3.0 หรือใหม่กว่า ถ้าทำงานรุ่นเก่าใช้ในสถานที่ของGet-WmiObject
Get-CimInstance
บน Windows 8 และใหม่กว่าคุณสามารถใช้คำสั่งนี้:
Get-PhysicalDisk | Select-Object FriendlyName,SerialNumber
ในไฟล์แบตช์วิธีหนึ่งคือ:
for /f "tokens=5 delims= " %%a in ('vol c: ^| Find "Serial Number"') do (
set VOLSERIAL=%%a
)