Jak uzyskać numer seryjny dysku twardego z wiersza polecenia?

39

W jaki sposób mogę uzyskać numer seryjny dysku twardego jako zmienną z wiersza polecenia opartego na systemie Windows NT (w szczególności Windows XP i 7)? Ten, na który patrzę, to numer seryjny fizycznego dysku twardego

Kanadyjczyk Luke REINSTATE MONICA
źródło
W przypadku systemu Windows XP zobacz to pytanie w celu uzyskania właściwej metody: superuser.com/q/708146/24010
Kanadyjczyk Luke REINSTATE MONICA
2
Jeśli masz wiele dysków twardych takich jak ja, użyj tego zamiast tego, aby dowiedzieć się, który z nich: wmic diskdrive get name,size,model,SerialNumber...Source
Enissay
Możliwe powiązanie: uzyskanie numeru seryjnego dysku twardego .
G-Man mówi „Przywróć Monikę”

Odpowiedzi:

56

Wypróbuj to polecenie

tom C:

otrzyma numer seryjny woluminu nadany mu przez system Windows.

wmic diskdrive otrzymuje numer seryjny

otrzymuje numer seryjny producenta dysku twardego.

Moab
źródło
Nie widzę tego w swoim pytaniu, być może powinien ponownie napisać tytułowy koleś: „Jak uzyskać numer seryjny dysku twardego z wiersza poleceń?”
Moab
Podczas korzystania wmic diskdrive get serialnumberotrzymuję wiadomość Invalid XML. Co to znaczy?
Maxbester
Otrzymuję błąd nieprawidłowego zapytania dla wmic diskdrive get serialnumber.
atoMerz
1
@Maxbester i @atoMerz: Miałem oba problemy. Invalid XMLbyło spowodowane połączeniem więcej niż jednego napędu i Invalid querywystąpiło, ponieważ korzystałem z systemu Windows XP. Zobacz tę odpowiedź dla obu problemów: stackoverflow.com/questions/9287450/…
Matthias Braun
2
Uwaga! wmic diskdrive get serialnumber(i Win32_DiskDriveogólnie klasa WMI) zwraca numer seryjny z odwróconą każdą parą znaków. Więc jeśli etykieta twojego dysku twardego brzmi „abcd1234”, WMI zgłosi twój numer seryjny jako „badc2143”. Więcej informacji tutaj .
rojo
5
  • To, czego szukasz, to NIE numer seryjny dysku twardego.

  • Nazywa się to numer seryjny woluminu . Jest generowany w momencie tworzenia i formatowania woluminu / partycji.

  • Możesz go uzyskać za pomocą polecenia w wierszu polecenia: C:\> vol c:jeśli C:jest to dysk, dla którego chcesz pobrać numer seryjny woluminu.

  • Wszystko, co możesz zrobić, to przekierować wyjście tego polecenia do pliku: C:\> vol c: > myvol.txtzostanie ono zapisane jako plik tekstowy w twoim plikuC:

  • Załączam zrzut ekranu z wyróżnieniami:

wprowadź opis zdjęcia tutaj

  • Plik został zapisany w katalogu głównym C:

wprowadź opis zdjęcia tutaj

  • Tak myvol.txtwygląda plik w Notatniku:

wprowadź opis zdjęcia tutaj

aliasgar
źródło
Pytanie edytowane; przepraszam za błędne informacje
Kanadyjczyk Luke REINSTATE MONICA
1
Przed rozważeniem głosowania w dół na tę odpowiedź należy pamiętać, że została ona opublikowana, zanim PO wyjaśnił pierwotne pytanie. Ta odpowiedź była rzeczywiście poprawna w stosunku do pierwotnego pytania.
Mówię: Przywróć Monikę
numery seryjne pobrane w ten sposób nie pasują do numerów seryjnych w SeaTools dla Windows ???
PrimitiveNom
5

W tym samym stylu, co odpowiedź Moaba, ale tym razem za pomocą PowerShell:

Get-CimInstance Win32_DiskDrive | Select-Object Model,SerialNumber

To polecenie pobiera instancję Win32_DiskDriveklasy WMI i wyświetla model każdego dysku w komputerze oraz odpowiadający jej numer seryjny z tej instancji.

Ta odpowiedź zakłada PowerShell 3.0 lub nowszy. Jeśli używasz starszej wersji, użyj Get-WmiObjectzamiast Get-CimInstance.

W systemie Windows 8 i nowszych można również użyć tego polecenia:

Get-PhysicalDisk | Select-Object FriendlyName,SerialNumber
bwDraco
źródło
4

W pliku wsadowym jednym podejściem jest:

  1. Polecenie VOL, aby wyświetlić numer seryjny jako tekst wraz z tekstem, którego nie chcemy.
  2. ZNAJDŹ, aby przyciąć go do linii z numerem seryjnym.
  3. ZA złapanie 5. tokena (część między ogranicznikami) na linii z numerem seryjnym.
  4. ZESTAW, aby przypisać do zmiennej środowiskowej

for /f "tokens=5 delims= " %%a in ('vol c: ^| Find "Serial Number"') do (
set VOLSERIAL=%%a
)
Brian
źródło
Pytanie edytowane; przepraszam za błędne informacje
Kanadyjczyk Luke REINSTATE MONICA
2
Przed rozważeniem głosowania w dół na tę odpowiedź należy pamiętać, że została ona opublikowana, zanim PO wyjaśnił pierwotne pytanie. Ta odpowiedź była rzeczywiście poprawna w stosunku do pierwotnego pytania.
Mówię: Przywróć Monikę