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
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
Odpowiedzi:
tom C:
otrzyma numer seryjny woluminu nadany mu przez system Windows.
wmic diskdrive otrzymuje numer seryjny
otrzymuje numer seryjny producenta dysku twardego.
wmic diskdrive get serialnumber
otrzymuję wiadomość Invalid XML
. Co to znaczy?
wmic diskdrive get serialnumber
.
Invalid XML
było spowodowane połączeniem więcej niż jednego napędu i Invalid query
wystąpiło, ponieważ korzystałem z systemu Windows XP. Zobacz tę odpowiedź dla obu problemów: stackoverflow.com/questions/9287450/…
wmic diskdrive get serialnumber
(i Win32_DiskDrive
ogó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 .
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.txt
zostanie ono zapisane jako plik tekstowy w twoim plikuC:
Załączam zrzut ekranu z wyróżnieniami:
C:
myvol.txt
wygląda plik w Notatniku: 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_DiskDrive
klasy 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-WmiObject
zamiast Get-CimInstance
.
W systemie Windows 8 i nowszych można również użyć tego polecenia:
Get-PhysicalDisk | Select-Object FriendlyName,SerialNumber
W pliku wsadowym jednym podejściem jest:
for /f "tokens=5 delims= " %%a in ('vol c: ^| Find "Serial Number"') do (
set VOLSERIAL=%%a
)