2010-04-12 99 views
4

我目前正在使用WMI來查詢有關底層硬件的各種細節,以唯一標識一臺機器。爲此,我在「Win32_DiskDrive」下找到了一個名爲「Signature」的字段。這個簽名是否跨機器(全球)是唯一的?這可以用來可靠地識別機器嗎?DiskDrive簽名是否唯一?

感謝, Ananth

+0

可能的重複http://stackoverflow.com/questions/1346450/win32-diskdrive-signature-property – Helen 2010-04-12 13:04:52

+0

謝謝指出。但是,它似乎仍不能回答簽名是否在全球獨一無二。 – Ananth 2010-04-12 13:46:42

+0

僅當您使用MBR分區表時才提供Signature值。較新的機器正在使用GPT。請參閱http://stackoverflow.com/questions/13612067/random-value-for-disk-signature – Thomas 2012-12-12 17:34:44

回答

1

以我的經驗,它並不總是,但可能往往不夠你的目的。

我的公司生產軟件,其中包括從物理機器生成虛擬機。我們必須解決的問題之一是如何保留磁盤簽名,因爲Windows使用該簽名來識別磁盤。如果您知道簽名存儲在主引導記錄中的位置,則可以創建具有相同簽名的另一個磁盤。

所以答案就是這樣。如果您認爲該簽名能夠唯一標識該機器,並且您遇到某人已經克隆磁盤或以其他方式獲得重複簽名的情況,那麼您的應用會如何響應?那會有多嚴重的問題呢?如果答案「不是那麼嚴肅」,那麼對於你的目的來說可能就夠了。

您也可以考慮機器以太網卡上的MAC地址。這(或多或少)保證是唯一的,如果不是,他們有其他問題(如ARP解決問題)。

+0

謝謝。所以,如果我明白了,簽名是獨一無二的機會很高,但應用程序仍然能夠處理它們並非唯一的邊緣情況。 關於MAC地址,請參閱Johannes Rossel在http://stackoverflow.com/questions/2154722/algorithm-to-generate-unique-possibly-auto-incremented-ids中的評論,其中提到有用戶可配置的MAC地址以及NIC。 – Ananth 2010-04-13 04:33:42

+0

就是這樣。 至於MAC地址,這是「或多或少」的「或更少」部分:)我認爲MAC地址更好的原因是我認爲它更可能是唯一的,因爲如果兩張卡片相同的LAN段具有相同的MAC地址,壞事情將發生,而具有相同磁盤簽名的兩臺計算機將愉快地共存。因此,重複的MAC地址比重複的磁盤簽名更可能被注意和解決。 但無論哪種情況,您的應用都應該適當地處理邊緣情況。 – anelson 2010-04-14 19:47:13