Windows NTベース(特にWindows XPおよび7)のコマンドプロンプトから、ハードドライブのシリアル番号を変数として取得するにはどうすればよいですか?私が見ているのは、物理ハードディスクドライブのシリアル番号です
Windows NTベース(特にWindows XPおよび7)のコマンドプロンプトから、ハードドライブのシリアル番号を変数として取得するにはどうすればよいですか?私が見ているのは、物理ハードディスクドライブのシリアル番号です
回答:
vol C:
これにより、Windowsからボリュームシリアル番号が取得されます。
wmic diskdrive get serialnumber
これにより、ハードドライブの製造元シリアル番号が取得されます。
wmic diskdrive get serialnumberと、メッセージが表示されますInvalid XML。どういう意味ですか?
wmic diskdrive get serialnumberます。
Invalid XML、複数のドライブが接続されていInvalid queryたことが原因でした。両方の問題については、この回答を参照してください。stackoverflow.com
あなたが見ているのは、ハードドライブのシリアル番号ではありません。
ボリューム通し番号と呼ばれます。ボリューム/パーティションの作成およびフォーマット時に生成されます。
あなたは、コマンドプロンプトでコマンドを使用して、それを得ることができますC:\> vol c:場合はC:、あなたがのためにボリュームシリアル番号を取得したいドライブです。
あなたができることは、そのコマンドの出力をファイルにリダイレクトすることです:C:\> vol c: > myvol.txtそして、それはあなたのテキストファイルとして保存されますC:
ハイライト付きのスクリーンショットを添付しています:

C: 
myvol.txtファイルがメモ帳でどのように見えるかです: 
Moabの答えと同じ流れですが、今回はPowerShellを使用しています。
Get-CimInstance Win32_DiskDrive | Select-Object Model,SerialNumber
このコマンドは、Win32_DiskDriveWMIクラスのインスタンスを取得し、コンピューター内の各ディスクドライブのモデルと、そのインスタンスからの対応するシリアル番号を出力します。
この回答は、PowerShell 3.0以降を前提としています。古いバージョンを実行している場合はGet-WmiObject、の代わりに使用しGet-CimInstanceます。
Windows 8以降では、次のコマンドも使用できます。
Get-PhysicalDisk | Select-Object FriendlyName,SerialNumber
バッチファイルでの1つのアプローチは次のとおりです。
for /f "tokens=5 delims= " %%a in ('vol c: ^| Find "Serial Number"') do (
set VOLSERIAL=%%a
)