Windows स्थापना की पहचान करने के लिए एक अद्वितीय GUID की तलाश है


15

Im Windows रजिस्ट्री में संग्रहीत एक अद्वितीय GUID की तलाश में है जो मुझे Windows स्थापना या PC की पहचान करने में मदद करेगा।

GUID होना चाहिए;

  • हमेशा मौजूद रहता है
  • एक विशेष विंडोज इंस्टॉलेशन के लिए अद्वितीय रहें, अर्थात किसी अन्य कंप्यूटर में समान आईडी नहीं होगी
  • कभी न बदलो

बहुत धन्यवाद


SF और SU पर पोस्ट क्यों? superuser.com/questions/82484/…
MDMarra

जवाबों:


8

आप उदाहरण के लिए, विंडोज़ रजिस्ट्री से GUID प्राप्त कर सकते हैं:

var regpath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid";
var oWSS = new ActiveXObject("WScript.Shell");
clientGUID = oWSS.RegRead(regpath);

C # या कुछ अन्य प्रोग्रामिंग भाषा में आपका कोड है?
टिम

यह जावास्क्रिप्ट मैंने विंडोज 7 गैजेट में उपयोग किया है।
फ्राइडनैल

1
क्या C # और जावास्क्रिप्ट में बहुत समान वाक्यविन्यास हैं?
टिम

क्षमा करें, आपको नहीं बता सकता, मैं C # से परिचित नहीं हूं। ये एक साधारण कोड की सिर्फ 3 पंक्तियां हैं, इनमें चर परिभाषा, स्ट्रिंग शाब्दिक, नई वस्तु का निर्माण और किसी वस्तु की विधि तक पहुंचने के लिए डॉट नोटेशन का उपयोग करना शामिल है। संभवतः भाषाओं की तुलना करने के लिए अन्य कोड संरचनाओं के टन हैं।
फ्राइडनैल

@ टिम, मुझे लगता है कि आप सी # में रजिस्ट्री कुंजियों को पढ़ने में रुचि रखते हैं? यदि हां, तो शायद यह SO प्रश्न आपके लिए उपयोगी होगा
friednail

7

क्या आप इस संख्या को बदलने या उसी रहने की अपेक्षा करते हैं यदि उस इंस्टॉल के लिए ड्राइव को किसी अन्य सिस्टम में ले जाया जाए?

क्या आप उम्मीद करते हैं कि इस नंबर को बदल दिया जाएगा अगर इंस्टॉल को भूत या किसी और चीज़ के साथ क्लोन किया जाए? क्या आप Microsoft की सिफारिशों का पालन करते हुए हमेशा क्लोन किए गए सिस्टम पर निर्भर रह सकते हैं? SID ठीक होना चाहिए, यदि आप सुनिश्चित कर सकते हैं कि आपके इंस्टॉल कभी क्लोन नहीं किए गए हैं।

मल्टी-बूट सिस्टम के मामले में (यानी सिस्टम में विंडोज 7 और विंडोज एक्सपी स्थापित है) क्या आपको दो इंस्टॉल को विशिष्ट, या संबंधित या क्या के रूप में पहचानने की आवश्यकता है?

आपको विंडोज़ इंस्टॉलेशन का हिस्सा होने के लिए इसकी आवश्यकता क्यों है, और हार्डवेयर द्वारा प्रस्तुत कुछ नहीं, शायद प्रोसेसर सीरियल नंबर ?

मैं मान रहा हूं कि आप इस बारे में पूछ रहे हैं कि आप किस तरह की स्क्रिप्ट या टूल का इस्तेमाल कर रहे हैं?

जब आप टूल चलाते हैं और LOCAL_MACHINE रजिस्ट्री हाइव में सहेजते हैं तो आप अपना नंबर पहली बार क्यों नहीं बनाते हैं? शायद RFC4122 टाइप 1 नंबर का भी उपयोग करें और जिसमें नेटवर्क इंटरफेस में से किसी एक के लिए हार्डवेयर पता शामिल होना चाहिए। इस तरह से आप यह देख सकते हैं कि क्या यूयूआईडी अभी भी उस प्रणाली से संबंधित है जो वर्तमान नेटवर्क एडेप्टर के खिलाफ यूयूआईडी की तुलना करता है।


2

आप Windows उत्पाद ID का उपयोग करना चाहते हैं। यह आंशिक रूप से स्थापित उत्पाद कुंजी से, और आंशिक रूप से हार्डवेयर कॉन्फ़िगरेशन से, आंशिक रूप से प्रोसेसर एनआईसी नंबर और पहले एनआईसी से मैक पते सहित उत्पन्न एक अद्वितीय संख्या है। आप इसके बारे में इस पर पढ़ सकते हैं (कुछ हद तक, लेकिन अभी भी मान्य) TechNet लेख । उत्पाद ID सिस्टम सूचना स्क्रीन पर या प्रोग्रामिक रूप से कई तरीकों से पाया जा सकता है।

प्रणाली की जानकारी


रजिस्ट्री जो उपयोगकर्ताओं के विंडो लाइसेंस रखती है, वह यहां स्थित है: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion, इसे पढ़ने के लिए कोई विशेष ट्रिक्स की आवश्यकता नहीं है
वाल्टर व्हीकलवेन

0

यह एक विंडोज़ सर्वर है, यह मानते हुए कि एक ज्ञानकोष आलेख है जो इसे Win2k: KB224544 से बाहर निकालने के बारे में बात करता है ।

मुझे नहीं पता कि LDP.exe अभी भी उसी तरह काम करता है, लेकिन यह हो सकता है।


यह लेख केवल डोमेन नियंत्रकों पर लागू होता है।
एमडीएमरा

जानकारी के लिए धन्यवाद, एक GUID की तलाश में है जो सभी विंडोज़ संस्करणों, XP और ऊपर मौजूद होगा
user28967

0

मुझे यकीन नहीं है कि एक GUID मान जैसा कि आप वास्तव में मौजूद है का वर्णन करते हैं। एक सामान्य अभ्यास सीपीयू या मदरबोर्ड आईडी जानकारी का उपयोग करना है।

यहाँ एक फोरम पोस्ट का लिंक दिया गया है जिसमें कुछ प्रासंगिक WMI स्क्रिप्ट कोड हैं: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic59274.aspx


0

यदि आप विंडोज इंस्टॉलेशन की पहचान करना चाहते हैं, तो आप भाग्य से बाहर हो सकते हैं। कॉर्पोरेट परिवेशों में, कार्यस्थानों को अक्सर स्थापित नहीं किया जाता है। इस छवि से निर्मित प्रत्येक कंप्यूटर समान होगा।

आपके द्वारा बताई गई मशीन की SID सबसे निकटतम चीज है, हालांकि यह दो कारणों से काम नहीं करती है:

  1. Imaged Windows XP मशीनों में वही SID होती है जब तक आप उनके खिलाफ NewSID नहीं चलाते हैं, जो बहुत से लोग नहीं करते हैं।
  2. किसी एकल डोमेन के सभी डोमेन नियंत्रक उसी मशीन SID को साझा करते हैं।

आपको इस पहचानकर्ता की क्या आवश्यकता है? यदि संभव हो तो आपका सबसे अच्छा शर्त यह है कि आप अपना खुद का जेनरेट करें।


1
यदि इमेजिंग के बाद मशीनें syspreps हैं तो SID अलग होगी। यदि वे नहीं हैं (जो कि प्रायः सभी वे नहीं हैं) तो सिड एक ही होंगे।
मन्दिनी

0

आप मैक पते की कोशिश कर सकते हैं, जो कम से कम विश्व स्तर पर अद्वितीय और स्थायी होने का इरादा है। यह भी अच्छा लाभ होगा कि आप बहुत परेशान किए बिना मशीन का आईपी और होस्टनाम प्राप्त कर सकते हैं (और यह विंडोज के लिए भी प्रतिबंधित नहीं होगा)। यह रजिस्ट्री में होने की आपकी आवश्यकता को पूरा नहीं करेगा, लेकिन आप इसके बदले WMI का उपयोग कर सकते हैं।

यहाँ नमूना स्क्रिप्ट: http://www.winforums.com/showthread.php?t=8842


0

सिस्टम वॉल्यूम के DriveId के बारे में कैसे? Win32_VolumeSystemVolume True के साथ प्रविष्टियों की तलाश में, आप WMI वर्ग से आईडी प्राप्त कर सकते हैं ।

PowerShell में:

gwmi win32_volume -filter 'SystemVolume=true' | ft -a DriveLetter,SystemVolume,DeviceId

(यह निश्चित रूप से प्रेषित किया जा सकता है।)


0

Windows अद्यतन द्वारा उपयोग किया गया एक SID है जिसे आप उपयोग करने में सक्षम हो सकते हैं। फिर से इस बात की कोई गारंटी नहीं है कि यह हर बार अद्वितीय होगा, या यह नहीं बदलेगा।

मुझे लगता है कि आपकी जरूरतों को पूरा करने के लिए निकटतम चीज मैक एड्रेस होगी, हालांकि अगर एनआईसी को बदल दिया जाता तो यह बदल सकता था।

आपकी सबसे अच्छी शर्त यह होगी कि आप अपने स्वयं के GUID को रजिस्ट्री में लिखें और उसका उपयोग करें।


0

किसी विशेष मशीन पर मशीन SID की पुष्टि करने के लिए, आप SysInternals PSGETSID% COMPUTERNAME% $ चला सकते हैं। (डोमेन एसआईडी)।

http://blogs.msdn.com/aaron_margosis/archive/2009/11/05/machine-sids-and-domain-sids.aspx

EDIT: रजिस्ट्री में मशीन SID के संदर्भ हटा दिए गए, जो शायद अद्वितीय (या सही भी नहीं) हो सकते हैं।


ओह, चलो, अगर आप किसी को कम करने जा रहे हैं, तो कम से कम एक टिप्पणी छोड़ें और उन्हें बताएं कि क्या गलत है।
मैट सीमन्स

मशीन SID को विशिष्ट होने की गारंटी नहीं है: blogs.technet.com/markrussinovich/archive/2009/11/03/…
आगे नोटिस तक रोका गया।

@ डेनिस - सही है। तो अगर यह एक डोमेन पर है: psgetsid.exe% computername% $ एक अद्वितीय पहचानकर्ता का उत्पादन करेगा।
ग्रेग एस्क्यू

@Greg: यदि आप छवियों से अपने कार्यस्थानों का निर्माण करते हैं तो क्या होगा? यदि आपने समाचार-पत्र नहीं चलाया, तो वे सभी एक ही मशीन SID को साझा करेंगे।
स्टीफन जेनिंग्स

@Stephen - डोमेन SID के उपयोग से उस समस्या का समाधान होगा। blogs.msdn.com/aaron_margosis/archive/2009/11/05/…
ग्रेग

-1

सिर्फ कंप्यूटर नाम का उपयोग क्यों न करें? यह आपके डोमेन के भीतर अद्वितीय होने जा रहा है, सभी विंडोज़ इंस्टॉलेशन में एक है और केवल तभी बदलेगा जब एक डोमेन व्यवस्थापक इसे बदलता है जिसे सुधार करने तक कभी भी ज़रूरत नहीं होनी चाहिए।


-2

मुझे भी, विश्व स्तर पर विशिष्ट रूप से विंडोज इंस्टॉलेशन की पहचान करने के लिए एक रास्ता खोजने की आवश्यकता है। सबसे पहले, बैकअप छवियों को ठीक से वर्गीकृत करने और पहचानने के लिए और यह निर्धारित करने के लिए कि कौन से मशीनों पर बरामद होते हैं। दूसरे, फाइलों को सिंक्रोनाइज़ करने के लिए साइक्रोनाइजेशन जोड़े के नाम पर और यह निर्धारित करने के लिए कि सिंक्रनाइजेशन में शामिल मशीनों के आधार पर किस सिंक्रोनाइजेशन जोड़ी का उपयोग किया जाए।

इस वेबसाइट पर उन सहित कई पोस्ट पढ़ने के बाद, मैं यह निष्कर्ष निकालता हूं कि विंडोज इंस्टॉलेशन के विश्व स्तर पर अद्वितीय पहचानकर्ता को खोजने का कोई आसान तरीका नहीं है। यह बहुत बुरा है। हार्डवेयर की तरह, सॉफ्टवेयर का भी अपना सीरियल नंबर होना चाहिए। ओह अच्छा! इसलिए यह मेरा वर्कअराउंड है: एक एकल विश्वव्यापी विशिष्ट पहचानकर्ता को खोजने के बजाय, मैंने एक सिलिअलाइज्ड स्टेटमेंट बनाया है, जो उस तरह से प्रेरित है जिस तरह से माइक्रोसॉफ्ट विंडोज पर नेटवर्क ड्राइव करता है और जिस तरह से यह नाम वर्चुअल पीसी में साझा करता है: "[WINDOWS] PRODUCT ID ( चर के रूप में ) [COMPUTER SERIAL NUMBER ( चर के रूप में ) पर स्थापित है)] "। हालांकि एक विंडोज प्रोडक्शन आइडेंटिफिकेशन नंबर केवल अद्वितीय है जो कि संबंधित उत्पाद कुंजी के समान ही है, यह है, फिर भी, कई इंस्टॉलेशन में समान होने के लिए उत्तरदायी है, विशेष रूप से बड़े पैमाने पर उत्पादित कंप्यूटरों पर, जिसमें फैक्ट्री-इंस्टॉल्ड विंडोज शामिल है, लेकिन एक धारावाहिक संख्या अद्वितीय है और एक मशीन से दूसरी मशीन में भिन्न है। उपर्युक्त सूत्र मुझे अपने उद्देश्यों की आवश्यकता है, मुझे SID की आवश्यकता नहीं है (मुझे लगता है कि यह सुरक्षा पहचानकर्ता को दर्शाता है।) या कुछ और अधिक जटिल है, क्योंकि दोनों चर का संयोजन बिल्कुल विंडोज इंस्टॉलेशन का संदर्भ देता है जिसे मुझे पहचानने की आवश्यकता है, जबकि प्रत्येक व्यक्तिगत चर मेरे स्वयं के लिए, किसी भी उपयोग के लिए नहीं है। विशेष रूप से और सबसे पहले, विंडोज उत्पाद की पहचान एक ही निर्माता द्वारा किए गए कंप्यूटरों पर समान है और एक ही उत्पाद लाइन में पाई जाती है और यह मेरे लिए कोई उद्देश्य नहीं रखता है, क्योंकि मेरे पास कई समान मशीनें हैं। दूसरे, सीरियल नंबर विशिष्ट रूप से पर्याप्त पहचान नहीं है, क्योंकि मेरे पास एक कंप्यूटर पर कई विंडोज इंस्टॉलेशन हैं जो कंप्यूटर सीरियल नंबर को संबोधित नहीं करता है। इसलिए मैं अपनी विधि सुझाता हूं।

इसके अलावा, और इससे पहले कि आप इसके बारे में पूछताछ करें: मैंने कंप्यूटर नाम पर अपनी पद्धति को आधार नहीं बनाया। जानकारी उपयोगकर्ता-आधारित है और इसलिए इसका आविष्कार करने की आवश्यकता है। हालांकि, विंडोज उत्पाद की पहचान और कंप्यूटर सीरियल नंबर पहले से ही पहचाने जाते हैं, आविष्कार और हमेशा दो विशिष्ट उत्पादों से जुड़े होते हैं, जिससे उन्हें फिर से सूचीबद्ध करने की आवश्यकता समाप्त हो जाती है। मैं हार्ड ड्राइव के विशिष्ट पहचानकर्ता के साथ विंडोज इंस्टॉलेशन की पहचान करने के लिए न तो चुनाव करूंगा, क्योंकि मैं सक्षम हूं और उन्हें एक मशीन से दूसरी मशीन में स्विच करने के लिए उपयुक्त हूं, खासकर जब ड्राइव कैपेसिटी निरंतर प्रवाह की स्थिति में हो। उसी टोकन के द्वारा, मैं केंद्रीय प्रसंस्करण इकाई या मदरबोर्ड के पहचान के नामकरण का बहुत कम उपयोग करूंगा, जैसा कि शाओले द्वारा पिछले उत्तर में विधिपूर्वक सुझाया गया है।। अंत में, मैं विंडोज इंस्टॉलेशन की पहचान करने के सबसे स्पष्ट विकल्प को भी अस्वीकार करता हूं (हालांकि इसका उल्लेख किसी अन्य व्यक्ति द्वारा नहीं किया गया है जो मैं देख सकता हूं): उत्पाद कुंजी का उपयोग करना। यद्यपि यह अद्वितीय है, यह केवल विंडोज के एक निश्चित संस्करण को स्थापित करने का लाइसेंस है; यह वास्तव में एक विशेष विंडोज इंस्टॉलेशन से जुड़ा नहीं है और यह एक विशेष मशीन पर स्थापित होने के रूप में इसे अलग नहीं करता है, भले ही लाइसेंस किसी दिए गए कंप्यूटर की खरीद के आधार पर दिया गया हो।


3
और सवाल का आपका जवाब है ...?
हिरण हंटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.