ฉันกำลังมองหา GUID ที่ไม่เหมือนใครซึ่งจัดเก็บไว้ในรีจิสทรีของ Windows ที่จะช่วยฉันระบุการติดตั้ง Windows หรือพีซี
GUID จะต้อง;
- มีอยู่เสมอ
- ไม่ซ้ำกับการติดตั้ง Windows เฉพาะเช่นไม่มีคอมพิวเตอร์เครื่องอื่นจะมี ID เดียวกัน
- ไม่เคยเปลี่ยน
ขอบคุณมาก
ฉันกำลังมองหา GUID ที่ไม่เหมือนใครซึ่งจัดเก็บไว้ในรีจิสทรีของ Windows ที่จะช่วยฉันระบุการติดตั้ง Windows หรือพีซี
GUID จะต้อง;
ขอบคุณมาก
คำตอบ:
คุณสามารถรับ GUID ได้จากการลงทะเบียน windows ตัวอย่างเช่น:
var regpath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid";
var oWSS = new ActiveXObject("WScript.Shell");
clientGUID = oWSS.RegRead(regpath);
คุณคาดหวังว่าหมายเลขนี้จะเปลี่ยนแปลงหรือยังคงเหมือนเดิมหากไดรฟ์สำหรับการติดตั้งนั้นถูกย้ายไปยังระบบอื่นหรือไม่?
คุณคาดว่าจะมีการเปลี่ยนแปลงหมายเลขนี้หรือไม่หากการติดตั้งถูกโคลนด้วย ghost หรืออย่างอื่น? คุณสามารถพึ่งพาระบบที่ถูกโคลนได้ตลอดเวลาที่ทำหน้าที่เป็นคำแนะนำของ Microsoft หรือไม่ SID ควรใช้ได้ถ้าคุณมั่นใจได้ว่าการติดตั้งของคุณจะไม่ลอกแบบ
ในกรณีของระบบมัลติบูต (เช่นระบบมีการติดตั้ง Windows 7 และ Windows XP) คุณจำเป็นต้องระบุการติดตั้งสองแบบว่าไม่ซ้ำกันหรือเกี่ยวข้องหรืออะไร?
ทำไมคุณถึงต้องนี้จะเป็นส่วนหนึ่งของการติดตั้งหน้าต่างและไม่ได้เป็นสิ่งที่นำเสนอโดยฮาร์ดแวร์อาจจะเป็นหมายเลขประจำตัวประมวลผล ?
ฉันสมมติว่าคุณกำลังถามเกี่ยวกับเรื่องนี้สำหรับสคริปต์หรือเครื่องมือบางประเภทที่คุณใช้เพื่อวัตถุประสงค์ด้านสินค้าคงคลัง?
ทำไมคุณไม่สร้างหมายเลขของคุณเองในครั้งแรกที่คุณเรียกใช้เครื่องมือและบันทึกไว้ในกลุ่มรีจิสทรี LOCAL_MACHINE บางทีอาจใช้หมายเลข RFC4122 Type 1 และควรรวมที่อยู่ฮาร์ดแวร์สำหรับหนึ่งในอินเตอร์เฟสเครือข่าย ด้วยวิธีนี้คุณสามารถตรวจสอบเพื่อดูว่า UUID ยังคงเป็นของระบบนั้นหรือไม่โดยการเปรียบเทียบ UUID กับอะแดปเตอร์เครือข่ายปัจจุบัน
คุณต้องการใช้รหัสผลิตภัณฑ์ Windows นี่เป็นหมายเลขเฉพาะที่สร้างขึ้น (แฮช) บางส่วนจากหมายเลขผลิตภัณฑ์ที่ติดตั้งและบางส่วนจากการกำหนดค่าฮาร์ดแวร์รวมถึงหมายเลขซีเรียลโปรเซสเซอร์และที่อยู่ MAC จาก NIC แรก คุณสามารถอ่านเกี่ยวกับเรื่องนี้ในบทความ TechNet (ค่อนข้างเก่าแต่ยังใช้ได้) รหัสผลิตภัณฑ์สามารถพบได้บนหน้าจอข้อมูลระบบหรือโดยทางโปรแกรมผ่านวิธีการต่างๆ
สมมติว่ามันเซิร์ฟเวอร์ Windows มีบทความฐานความรู้ที่พูดคุยเกี่ยวกับวิธีการที่จะได้รับมันออกมาจาก Win2k: KB224544
ฉันไม่ทราบว่า LDP.exe ยังคงทำงานเช่นนั้น แต่อาจ
ฉันไม่แน่ใจว่าค่า GUID เช่นเดียวกับที่คุณอธิบายมีอยู่จริง วิธีปฏิบัติทั่วไปคือการใช้ข้อมูล CPU หรือรหัสเมนบอร์ด
นี่คือลิงค์ไปยังโพสต์ในฟอรัมที่มีโค้ดสคริปต์ WMI ที่เกี่ยวข้องบางส่วน: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic59274.aspx
หากคุณต้องการระบุการติดตั้ง Windows แสดงว่าคุณอาจโชคไม่ดี ในสภาพแวดล้อมขององค์กรเวิร์คสเตชั่มักจะถ่ายภาพแทนที่ติดตั้ง คอมพิวเตอร์แต่ละเครื่องที่สร้างจากภาพนี้จะเหมือนกัน
สิ่งที่ใกล้เคียงที่สุดกับสิ่งที่คุณอธิบายไว้คือ SID ของเครื่อง แต่สิ่งนี้ไม่ทำงานด้วยเหตุผลสองประการ:
คุณต้องการตัวระบุนี้เพื่ออะไร ทางออกที่ดีที่สุดของคุณอาจเป็นการสร้างของคุณเองถ้าเป็นไปได้
คุณสามารถลองใช้ที่อยู่ MAC ซึ่งอย่างน้อยก็มีจุดประสงค์ที่จะเป็นที่ไม่ซ้ำกันและถาวรทั่วโลก สิ่งนี้จะมีข้อได้เปรียบที่ดีที่คุณสามารถรับ IP และชื่อโฮสต์ของเครื่องโดยไม่ต้องกังวลมากเกินไป ไม่ตรงกับความต้องการของคุณในการลงทะเบียนสตรีม แต่คุณสามารถใช้ WMI แทนได้
ตัวอย่างสคริปต์ที่นี่: http://www.winforums.com/showthread.php?t=8842
DriveId ของไดรฟ์ข้อมูลระบบเป็นอย่างไร คุณสามารถรับ ID จากWin32_Volume
คลาส WMI โดยค้นหารายการด้วย SystemVolume True
ใน PowerShell:
gwmi win32_volume -filter 'SystemVolume=true' | ft -a DriveLetter,SystemVolume,DeviceId
(แน่นอนสามารถ remoting นี้.)
มี SID ที่ใช้โดย Windows Update ซึ่งคุณอาจใช้งานได้ อีกครั้งไม่มีการรับประกันว่ามันจะไม่ซ้ำกันทุกครั้งหรือว่าจะไม่เปลี่ยนแปลง
ฉันคิดว่าสิ่งที่ใกล้เคียงที่สุดที่จะตอบสนองความต้องการของคุณก็คือ MAC address อย่างไรก็ตามการเปลี่ยนแปลงหาก NIC ถูกแทนที่
ทางออกที่ดีที่สุดของคุณคือการเขียน GUID ของคุณเองในรีจิสทรีและใช้มัน
เพื่อยืนยันเครื่อง SID บนเครื่องเฉพาะคุณสามารถเรียกใช้ SysInternals PSGETSID% COMPUTERNAME% $ (Domain SID)
http://blogs.msdn.com/aaron_margosis/archive/2009/11/05/machine-sids-and-domain-sids.aspx
แก้ไข: ลบการอ้างอิงถึงเครื่อง SID ในรีจิสทรีซึ่งอาจไม่ซ้ำกัน (หรือถูกต้อง)
ทำไมไม่ใช้ชื่อคอมพิวเตอร์ล่ะ? มันจะไม่ซ้ำกันภายในโดเมนของคุณการติดตั้ง windows ทั้งหมดมีเพียงหนึ่งอย่างและจะเปลี่ยนแปลงได้ก็ต่อเมื่อผู้ดูแลระบบโดเมนเปลี่ยนแปลงซึ่งไม่จำเป็นต้องแก้ไขเว้นแต่จะมีการแก้ไข
ฉันก็ต้องการเพื่อหาวิธีในการระบุการติดตั้ง Windows ทั่วโลกโดยไม่ซ้ำกัน ประการแรกเพื่อจำแนกและระบุอิมเมจสำรองอย่างเหมาะสมและพิจารณาว่าจะกู้คืนข้อมูลใดบนเครื่องใด ประการที่สองเพื่อตั้งชื่อคู่ sychronization สำหรับการซิงโครไนซ์ไฟล์และเพื่อกำหนดคู่การซิงโครไนซ์ที่จะใช้ขึ้นอยู่กับเครื่องที่เกี่ยวข้องในการซิงโครไนซ์
หลังจากอ่านบทความหลายบทความรวมถึงบทความในเว็บไซต์นี้ฉันสรุปได้ว่าไม่มีวิธีง่ายๆในการค้นหาตัวระบุที่ไม่ซ้ำกันทั่วโลกของการติดตั้ง Windows มันแย่มาก ซอฟต์แวร์ควรมีหมายเลขซีเรียลของตนเองเช่นเดียวกับฮาร์ดแวร์ โอ้ดี! ดังนั้นนี่คือวิธีแก้ปัญหาของฉัน: แทนที่จะค้นหาตัวระบุที่ไม่ซ้ำกันหนึ่งเดียวทั่วโลกฉันได้สร้างคำสั่ง sylized ซึ่งเป็นแรงบันดาลใจในการที่ Microsoft ตั้งชื่อไดรฟ์เครือข่ายบน Windows และวิธีการตั้งชื่อโฟลเดอร์ที่ใช้ร่วมกันในพีซีเสมือน: "[WINDOWS รหัสผลิตภัณฑ์ ( เป็นตัวแปร )] ติดตั้งใน [หมายเลขอนุกรมคอมพิวเตอร์ ( เป็นตัวแปร))]. "ถึงแม้ว่าหมายเลขประจำตัวการผลิตของ Windows จะไม่ซ้ำกันเฉพาะที่หมายเลขผลิตภัณฑ์ที่เกี่ยวข้องเท่านั้น แต่ก็มีแนวโน้มที่จะเหมือนกันในการติดตั้งหลาย ๆ ครั้งโดยเฉพาะอย่างยิ่งในคอมพิวเตอร์ที่ผลิตจำนวนมากที่มี Windows หมายเลขไม่ซ้ำกันและแตกต่างจากเครื่องหนึ่งไปยังอีกเครื่องสูตรดังกล่าวข้างต้นคือทั้งหมดที่ฉันต้องการสำหรับวัตถุประสงค์ของฉันฉันไม่ต้องการ SID (ฉันคิดว่ามันหมายถึงตัวบ่งชี้ความปลอดภัย) หรืออย่างอื่นที่มีความซับซ้อนมากขึ้นเนื่องจากการรวมกันของตัวแปรทั้งสองอ้างอิงถึงการติดตั้ง Windows ที่ฉันต้องระบุในขณะที่ตัวแปรแต่ละตัวเป็นของตนเองโดยไม่มีประโยชน์สำหรับฉัน โดยเฉพาะและประการแรกการระบุผลิตภัณฑ์ Windows นั้นเหมือนกันในคอมพิวเตอร์ที่ผลิตโดยผู้ผลิตรายเดียวกันและพบได้ในสายผลิตภัณฑ์เดียวกันซึ่งไม่ได้มีจุดประสงค์ใดเนื่องจากฉันมีเครื่องที่เหมือนกันหลายเครื่อง ประการที่สองหมายเลขซีเรียลไม่ได้ระบุอย่างเป็นเอกลักษณ์เพียงพอเนื่องจากฉันมีการติดตั้ง Windows หลายเครื่องบนคอมพิวเตอร์เครื่องหนึ่งซึ่งหมายเลขซีเรียลของคอมพิวเตอร์ไม่ได้ระบุ ฉันจึงแนะนำวิธีการของฉัน
นอกจากนี้และก่อนที่คุณจะสอบถามเกี่ยวกับมัน: ฉันเลือกที่จะไม่ยึดวิธีการของฉันกับชื่อคอมพิวเตอร์ ข้อมูลเป็นแบบผู้ใช้ดังนั้นจึงจำเป็นต้องมีการประดิษฐ์ อย่างไรก็ตามหมายเลขประจำตัวผลิตภัณฑ์ของ Windows และหมายเลขซีเรียลของคอมพิวเตอร์ได้รับการระบุประดิษฐ์และเชื่อมต่อกับผลิตภัณฑ์ที่เฉพาะเจาะจงสองรายการอย่างสม่ำเสมอดังนั้นจึงไม่จำเป็นต้องมีสินค้าคงคลังอีกต่อไป ฉันจะไม่เลือกที่จะระบุการติดตั้ง Windows ด้วยตัวระบุเฉพาะของฮาร์ดไดรฟ์เนื่องจากฉันสามารถและสลับการใช้งานจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งได้โดยเฉพาะอย่างยิ่งเมื่อความจุของไดรฟ์อยู่ในสภาวะคงที่ ในทำนองเดียวกันฉันจะใช้ระบบการระบุชื่อของหน่วยประมวลผลกลางหรือเมนบอร์ดน้อยกว่าที่แนะนำไว้ก่อนหน้านี้ในShoeless. ในที่สุดฉันก็ปฏิเสธตัวเลือกที่ชัดเจนที่สุดในการระบุการติดตั้ง Windows (แม้ว่าจะไม่ได้รับการกล่าวถึงโดยบุคคลอื่นจากสิ่งที่ฉันเห็น): ใช้รหัสผลิตภัณฑ์ แม้ว่ามันจะไม่ซ้ำกันมันเป็นเพียงใบอนุญาตในการติดตั้ง Windows บางรุ่น; ไม่ได้เชื่อมต่อกับการติดตั้ง Windows โดยเฉพาะและไม่ได้แยกความแตกต่างว่าติดตั้งบนเครื่องใดเครื่องหนึ่งแม้ว่าใบอนุญาตจะได้รับจากการซื้อคอมพิวเตอร์ที่กำหนด