Szukam unikalnego identyfikatora GUID przechowywanego w rejestrze systemu Windows, który pomógłby mi zidentyfikować instalację systemu Windows lub komputer.
GUID musi;
- Zawsze istnieje
- Unikaj konkretnej instalacji systemu Windows, tzn. Żaden inny komputer nie miałby tego samego identyfikatora
- Nigdy się nie zmieniaj
Wielkie dzięki
Odpowiedzi:
Identyfikator GUID można uzyskać z rejestru systemu Windows, na przykład:
źródło
Czy spodziewasz się, że ten numer zmieni się lub pozostanie taki sam, jeśli dysk do tej instalacji zostanie przeniesiony do innego systemu?
Czy spodziewasz się, że ta liczba zostanie zmieniona, jeśli instalacja zostanie sklonowana z duchem lub czymś innym? Czy możesz polegać na tym, że sklonowane systemy są zawsze wyświetlane zgodnie z zaleceniami Microsoftu? SID powinien być w porządku, jeśli możesz być pewien, że twoje instalacje nigdy nie zostaną sklonowane.
W przypadku systemu wielokrotnego rozruchu (tj. System ma instalację Windows 7 i Windows XP), czy musisz zidentyfikować dwie instalacje jako unikalne, powiązane lub co?
Dlaczego potrzebujesz, aby była to część instalacji systemu Windows, a nie coś prezentowanego przez sprzęt, być może numer seryjny procesora ?
Zakładam, że pytasz o jakiś skrypt lub narzędzie, którego używasz do celów inwentaryzacyjnych?
Dlaczego po prostu nie wygenerujesz własnego numeru przy pierwszym uruchomieniu narzędzia i nie zapiszesz go w gałęzi rejestru LOCAL_MACHINE? Być może nawet użyj numeru RFC4122 Type 1, który powinien zawierać adres sprzętowy jednego z interfejsów sieciowych. W ten sposób możesz sprawdzić, czy UUID nadal należy do tego systemu, porównując UUID z obecnymi kartami sieciowymi.
źródło
Chcesz użyć identyfikatora produktu Windows. Jest to unikalny numer generowany (mieszany) częściowo z zainstalowanego klucza produktu, a częściowo z konfiguracji sprzętowej, w tym numeru seryjnego procesora i adresu MAC z pierwszej karty sieciowej. Możesz o tym przeczytać w tym (nieco przestarzałym, ale wciąż aktualnym) artykule TechNet . Identyfikator produktu można znaleźć na ekranie Informacje o systemie lub programowo za pomocą kilku metod.
źródło
Zakładając, że jest to serwer Windows, istnieje artykuł w bazie wiedzy, który mówi o tym, jak go wyciągnąć z Win2k: KB224544 .
Nie wiem, czy LDP.exe nadal tak działa, ale może tak być.
źródło
Nie jestem pewien, czy wartość GUID, taka jak ta, którą opisujesz, faktycznie istnieje. Częstą praktyką jest używanie informacji o ID procesora lub płyty głównej.
Oto link do postu na forum, który zawiera odpowiedni kod skryptu WMI: http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework/topic59274.aspx
źródło
Jeśli chcesz zidentyfikować instalację systemu Windows, możesz mieć pecha. W środowiskach korporacyjnych stacje robocze są często obrazowane i instalowane. Każdy komputer zbudowany z tego obrazu będzie identyczny.
Najbliższą rzeczą, którą opisałeś, jest identyfikator SID maszyny, jednak nie działa to z dwóch powodów:
Do czego potrzebujesz tego identyfikatora? Najlepszym rozwiązaniem może być wygenerowanie własnego, jeśli jest to możliwe.
źródło
Możesz wypróbować adres MAC, który przynajmniej ma być globalnie unikalny i trwały. Miałoby to również tę zaletę, że można bez trudu uzyskać adres IP komputera i nazwę hosta (i nie ogranicza się to również do systemu Windows). Nie spełniłoby to twojego wymogu bycia w rejestrze, ale zamiast tego możesz użyć WMI.
Przykładowe skrypty tutaj: http://www.winforums.com/showthread.php?t=8842
źródło
Co powiesz na DriveId woluminu systemowego? Możesz uzyskać identyfikator z
Win32_Volume
klasy WMI, szukając wpisów w SystemVolume True.W PowerShell:
(Można to oczywiście usunąć.)
źródło
Istnieje Windows SID używany przez Windows Update, którego możesz użyć. Ponownie nie ma gwarancji, że będzie wyjątkowa za każdym razem lub że się nie zmieni.
Myślę, że najbliższą rzeczą, która spełniłaby Twoje potrzeby, byłby adres MAC, jednak może się to zmienić, jeśli karta sieciowa zostanie wymieniona.
Najlepszym rozwiązaniem byłoby zapisanie własnego identyfikatora GUID w rejestrze i korzystanie z niego.
źródło
Aby potwierdzić identyfikator SID komputera na konkretnym komputerze, możesz uruchomić SysInternals PSGETSID% COMPUTERNAME% $. (SID domeny).
http://blogs.msdn.com/aaron_margosis/archive/2009/11/05/machine-sids-and-domain-sids.aspx
EDYCJA: Usunięto odniesienia do identyfikatora SID komputera w rejestrze, które mogą nie być unikalne (lub nawet prawidłowe).
źródło
Dlaczego nie użyć tylko nazwy komputera? Będzie unikalny w twojej domenie, wszystkie instalacje systemu Windows mają jedną i zmienią się tylko, jeśli administrator domeny ją zmieni, co nie powinno być potrzebne, chyba że dokonasz korekty.
źródło
Ja też potrzebuję znaleźć sposób na globalną unikalną identyfikację instalacji Windows. Po pierwsze, w celu prawidłowej klasyfikacji i identyfikacji obrazów kopii zapasowych oraz ustalenia, które z nich zostaną odzyskane na poszczególnych komputerach. Po drugie, w celu nazwania par sychronizacji do synchronizacji plików i określenia, której pary synchronizacji użyć, w zależności od komputerów biorących udział w synchronizacji.
Po przeczytaniu kilku postów, w tym tych na tej stronie, dochodzę do wniosku, że nie ma łatwego sposobu na znalezienie unikalnego na całym świecie identyfikatora instalacji Windows. Szkoda. Podobnie jak sprzęt, oprogramowanie powinno mieć także własny numer seryjny. No cóż! Oto moje obejście: Zamiast znaleźć jeden globalnie unikalny identyfikator, stworzyłem sylizowane oświadczenie, które jest inspirowane sposobem, w jaki Microsoft nazywa dyski sieciowe w systemie Windows oraz sposobem, w jaki nazywa foldery współdzielone w wirtualnym komputerze: „[WINDOWS ID PRODUKTU ( jako zmienna )] Zainstalowano na [NUMER SERYJNY KOMPUTERA ( jako zmienna))]. „Chociaż produkcyjny numer identyfikacyjny systemu Windows jest unikalny tylko w takim stopniu, w jakim odpowiada mu odpowiedni klucz produktu, może on jednak być taki sam w kilku instalacjach, zwłaszcza na komputerach produkowanych seryjnie, zawierających fabrycznie zainstalowany system Windows, ale seryjny liczba jest unikalna i różni się w zależności od maszyny. Wyżej wymieniona formuła jest wszystkim, czego potrzebuję do swoich celów; nie potrzebuję identyfikatora SID (zakładam, że oznacza to identyfikator bezpieczeństwa) lub coś bardziej złożonego, ponieważ kombinacja obu zmiennych odnosi się dokładnie do instalacji systemu Windows, którą muszę zidentyfikować, podczas gdy każda pojedyncza zmienna sama w sobie nie jest dla mnie przydatna. W szczególności, po pierwsze, identyfikacja produktu Windows jest identyczna na komputerach wyprodukowanych przez tego samego producenta i znajdujących się w tej samej linii produktów i to mi nie służy, ponieważ jestem właścicielem kilku identycznych maszyn. Po drugie, numer seryjny nie jest jednoznacznie identyfikujący, ponieważ mam kilka instalacji systemu Windows na jednym komputerze, których numer seryjny nie rozwiązuje. Dlatego proponuję moją metodę.
Ponadto, zanim zapytasz o to: postanowiłem nie opierać mojej metody na nazwie komputera. Informacje są oparte na użytkownikach i dlatego muszą zostać zinwentaryzowane. Jednak identyfikacja produktu Windows i numer seryjny komputera są już zidentyfikowane, zinwentaryzowane i niezmiennie połączone z dwoma konkretnymi produktami, eliminując w ten sposób potrzebę ich ponownej inwentaryzacji. Nie zdecydowałbym się na identyfikację instalacji Windows z unikalnym identyfikatorem dysków twardych, ponieważ jestem w stanie i jestem w stanie przełączać je z jednej maszyny na drugą, szczególnie gdy pojemność dysków jest w ciągłym przepływie. Z tego samego powodu wolałbym używać nazewnictwa identyfikacyjnego albo jednostki centralnej, albo płyty głównej, jak sugerowano wcześniej w poprzedniej odpowiedzi Shoeless. Wreszcie, odrzucam również najbardziej oczywistą opcję identyfikacji instalacji systemu Windows (chociaż nikt nie wspomniał o niej z tego, co widzę): użycie klucza produktu. Chociaż jest unikalny, jest jedynie licencją na instalację określonej wersji systemu Windows; nie jest faktycznie podłączony do konkretnej instalacji Windows i nie odróżnia go jako zainstalowany na konkretnej maszynie, nawet jeśli licencja została udzielona z tytułu zakupu danego komputera.
źródło