Mencari GUID unik untuk mengidentifikasi instalasi Windows


14

Saya mencari GUID unik yang disimpan di registri Windows yang akan membantu saya mengidentifikasi instalasi Windows atau PC.

GUID harus;

  • Selalu ada
  • Menjadi unik untuk instalasi Windows tertentu, yaitu tidak ada komputer lain yang memiliki ID yang sama
  • Tidak pernah berubah

Terimakasih banyak


Mengapa memposting di SF dan SU? superuser.com/questions/82484/…
MDMarra

Jawaban:


7

Apakah Anda berharap nomor ini berubah atau tetap sama jika drive untuk pemasangan itu dipindahkan ke sistem lain?

Apakah Anda berharap nomor ini diubah jika instalasi diklon dengan hantu atau sesuatu yang lain? Bisakah Anda bergantung pada sistem yang dikloning yang selalu mengikuti rekomendasi Microsoft? SID harus baik-baik saja, jika Anda yakin pemasangan Anda tidak pernah dikloning.

Dalam hal sistem multi-boot (yaitu sistem memiliki Windows 7 dan instalasi Windows XP) apakah Anda perlu mengidentifikasi dua instalasi sebagai unik, atau terkait atau apa?

Mengapa Anda perlu ini menjadi bagian dari instalasi windows, dan bukan sesuatu yang disajikan oleh perangkat keras, mungkin nomor seri prosesor ?

Saya berasumsi Anda menanyakan tentang jenis script atau alat yang Anda gunakan untuk keperluan inventaris?

Mengapa Anda tidak menghasilkan nomor sendiri saat pertama kali menjalankan alat dan menyimpannya di kumpulan registri LOCAL_MACHINE? Mungkin bahkan menggunakan nomor RFC4122 Tipe 1 dan yang harus menyertakan alamat perangkat keras untuk salah satu antarmuka jaringan. Dengan begitu Anda dapat memeriksa untuk melihat apakah UUID masih milik sistem itu dengan membandingkan UUID dengan adapter jaringan yang ada.


7

Anda bisa mendapatkan GUID dari registri windows, misalnya:

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

kode Anda dalam bahasa C # atau bahasa pemrograman lain?
Tim

Ini JavaScript yang saya gunakan di gadget windows 7.
friednail

1
Apakah C # dan Javascript memiliki sintaks yang sangat mirip?
Tim

Maaf, tidak dapat memberi tahu Anda, saya tidak terbiasa dengan C #. Ini hanya 3 baris kode sederhana, berisi definisi variabel, string literal, pembuatan objek baru dan menggunakan notasi titik untuk mengakses metode objek. Mungkin ada banyak struktur kode lain untuk membandingkan bahasa.
friednail

@Tim, saya kira Anda tertarik membaca kunci registri di C #? Jika demikian, mungkin pertanyaan SO ini akan membantu Anda
friednail

2

Anda ingin menggunakan ID Produk Windows. Ini adalah nomor unik yang dihasilkan (hash) sebagian dari kunci produk yang diinstal, dan sebagian dari konfigurasi perangkat keras, termasuk nomor seri prosesor dan alamat MAC dari NIC pertama. Anda dapat membacanya di artikel TechNet ini (agak tanggal, tetapi masih valid) . ID produk dapat ditemukan pada layar Informasi Sistem, atau secara programatis melalui beberapa metode.

Sistem Informasi


Registri yang memegang lisensi jendela pengguna terletak di: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion, tidak ada trik khusus yang diperlukan untuk membacanya
Walter Vehoeven

0

Dengan asumsi itu adalah server Windows, ada artikel basis pengetahuan yang berbicara tentang cara mengeluarkannya dari Win2k: KB224544 .

Saya tidak tahu apakah LDP.exe masih beroperasi seperti itu, tetapi mungkin saja.


Artikel itu hanya berlaku untuk Pengontrol Domain.
MDMarra

Terima kasih atas informasinya, saya mencari GUID yang akan ada di semua versi Windows, XP dan di atasnya
user28967


0

Jika Anda ingin mengidentifikasi instalasi Windows, maka Anda mungkin kurang beruntung. Di lingkungan perusahaan, workstation sering dicitrakan daripada yang diinstal. Setiap komputer yang dibangun dari gambar ini akan identik.

Hal yang paling dekat dengan apa yang Anda gambarkan adalah SID mesin, namun ini tidak berhasil karena dua alasan:

  1. Mesin-mesin Windows XP yang dicitrakan memiliki SID yang sama kecuali Anda menjalankan NewSID melawan mereka, yang banyak orang tidak.
  2. Semua pengontrol domain pada satu domain berbagi SID mesin yang sama.

Untuk apa Anda memerlukan pengenal ini? Taruhan terbaik Anda mungkin menghasilkan Anda sendiri, jika itu mungkin.


1
Jika mesin adalah syspreps setelah pencitraan maka SID akan berbeda. Jika tidak (yang seringkali tidak), SID akan sama.
mrdenny

0

Anda dapat mencoba alamat MAC, yang setidaknya dimaksudkan untuk menjadi unik dan permanen secara global. Ini juga akan memiliki keuntungan yang bagus bahwa Anda bisa mendapatkan IP mesin dan nama host tanpa terlalu banyak repot (dan itu tidak akan dibatasi untuk Windows juga). Itu tidak akan memenuhi persyaratan Anda dalam registri, tetapi Anda dapat menggunakan WMI sebagai gantinya.

Contoh skrip di sini: http://www.winforums.com/showthread.php?t=8842


0

Bagaimana dengan DriveId volume sistem? Anda bisa mendapatkan id dari Win32_Volumekelas WMI, dengan mencari entri dengan SystemVolume True.

Di PowerShell:

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

(Ini tentu saja dapat di-remotes.)


0

Ada SID yang digunakan oleh Pembaruan Windows yang mungkin dapat Anda gunakan. Sekali lagi tidak ada jaminan bahwa itu akan menjadi unik setiap waktu, atau tidak akan berubah.

Saya pikir hal yang paling dekat untuk memenuhi kebutuhan Anda adalah alamat MAC, namun itu dapat berubah jika NIC diganti.

Taruhan terbaik Anda adalah menulis GUID Anda sendiri ke dalam registri dan menggunakannya.


0

Untuk mengkonfirmasi mesin SID pada mesin tertentu, Anda dapat menjalankan SysInternals PSGETSID% COMPUTERNAME% $. (Domain SID).

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

EDIT: Dihapus referensi ke SID mesin dalam registri, yang mungkin tidak unik (atau bahkan benar).


Oh, ayolah, jika Anda akan menurunkan seseorang, setidaknya tinggalkan komentar dan biarkan mereka tahu apa yang salah.
Matt Simmons


@ Dennis - benar. Jadi jika ada di domain: psgetsid.exe% computername% $ akan menghasilkan pengidentifikasi unik.
Greg Askew

@Reg: Bagaimana jika Anda membangun workstation Anda dari gambar? Jika Anda tidak menjalankan newsid, mereka semua akan berbagi mesin SID yang sama.
Stephen Jennings

@Stephen - Menggunakan Domain SID akan mengatasi masalah itu. blogs.msdn.com/aaron_margosis/archive/2009/11/05/…
Greg Askew

-1

Mengapa tidak menggunakan nama komputer saja? Ini akan menjadi unik di dalam domain Anda, semua instalasi windows memilikinya dan hanya akan berubah jika administrator domain mengubahnya yang seharusnya tidak diperlukan kecuali melakukan koreksi.


-2

Saya juga perlu menemukan cara mengidentifikasi secara unik instalasi Windows. Pertama, untuk mengklasifikasikan dan mengidentifikasi gambar cadangan dengan benar dan menentukan mana yang dipulihkan pada mesin mana. Kedua, untuk menamai pasangan sinkronisasi untuk menyinkronkan file dan untuk menentukan pasangan sinkronisasi mana yang akan digunakan tergantung pada mesin yang terlibat dalam sinkronisasi.

Setelah membaca beberapa posting, termasuk yang ada di situs web ini, saya menyimpulkan bahwa tidak ada cara mudah untuk menemukan pengidentifikasi unik instalasi Windows secara global. Itu terlalu buruk. Seperti halnya perangkat keras, perangkat lunak juga harus memiliki nomor seri sendiri. Baiklah! Jadi ini solusi saya: Alih-alih menemukan satu pengidentifikasi unik secara global, saya telah membuat pernyataan terilisasi, yang diilhami dari cara Microsoft memberi nama drive jaringan pada Windows dan cara menamai folder bersama di PC Virtual: "[WINDOWS ID PRODUK ( sebagai variabel )] Diinstal di [NOMOR SERI KOMPUTER ( sebagai variabel)]. "Meskipun nomor identifikasi produksi Windows adalah unik hanya sejauh kunci produk yang sesuai, namun, tetap mungkin sama di beberapa instalasi, terutama pada komputer yang diproduksi secara massal yang berisi Windows yang diinstal pabrik, tetapi serial nomor unik dan berbeda dari satu mesin ke mesin yang lain. Rumus yang disebutkan di atas adalah semua yang saya butuhkan untuk keperluan saya; Saya tidak memerlukan SID (Saya kira itu menandakan Pengidentifikasi Keamanan) atau sesuatu yang lebih kompleks, karena kombinasi kedua variabel merujuk tepat instalasi Windows yang perlu saya identifikasi, sedangkan masing-masing variabel individu, dengan sendirinya, tidak ada gunanya bagi saya. Khusus dan pertama, identifikasi produk Windows identik pada komputer yang dibuat oleh pabrikan yang sama dan ditemukan pada lini produk yang sama dan itu tidak berguna bagi saya, karena saya memiliki beberapa mesin yang identik. Kedua, nomor seri tidak cukup mengidentifikasi secara unik, karena saya memiliki beberapa instalasi Windows di satu komputer yang nomor seri komputer tidak alamat. Karena itu saya menyarankan metode saya.

Juga, dan sebelum Anda menanyakannya: Saya memilih untuk tidak mendasarkan metode saya pada nama komputer. Informasi ini berbasis pengguna dan oleh karena itu perlu diinventarisasi. Namun, identifikasi produk Windows dan nomor seri komputer sudah diidentifikasi, diinventarisasi dan selalu terhubung ke dua produk tertentu, sehingga menghilangkan kebutuhan untuk menginventarisasinya lagi. Saya tidak akan memilih untuk mengidentifikasi instalasi Windows dengan pengidentifikasi unik dari hard drive, karena saya mampu dan cukup cenderung untuk beralih dari satu mesin ke yang lain, terutama ketika kapasitas drive dalam keadaan fluks konstan. Dengan cara yang sama, saya akan jauh lebih sedikit menggunakan nomenklatur pengidentifikasi dari unit pemrosesan pusat atau motherboard, seperti yang sebelumnya disarankan dalam balasan sebelumnya oleh Shoeless. Akhirnya, saya juga menolak opsi yang paling jelas untuk mengidentifikasi instalasi Windows (meskipun belum disebutkan oleh orang lain dari apa yang saya lihat): menggunakan kunci produk. Meskipun unik, itu hanya lisensi untuk menginstal versi Windows tertentu; itu sebenarnya tidak terhubung ke instalasi Windows tertentu dan tidak membedakannya sebagai diinstal pada mesin tertentu, meskipun lisensi diberikan berdasarkan pembelian komputer yang diberikan.


3
Dan jawaban Anda untuk pertanyaannya adalah ...?
Pemburu Rusa
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.