WMI 経由で読み取られるディスク ドライブのプロパティ
-
21-08-2019 - |
質問
WMI を使用してディスク ドライブのいくつかのプロパティをクエリしています。WMI はドライブ自体からこの情報を読み取りますか、それともレジストリにクエリを実行しますか?ドライブからプロパティを直接読み取るにはどうすればよいですか?
解決
のWin32_LogicalDiskクラスには、実際のドライブを照会しなければなりません。私は、レジストリに含まれていないドライブの使用状況を表示するためのPowerShellでそれを使用します。
他のヒント
これは、単一のソースである必要はありません。 WMIクラスのプロパティはMappingStrings修飾子がある場合は、そこにプロパティのソースを見つけることができます。たとえばます:
Win32_LogicalDisk.VolumeName - Win32APIの|ファイル・システムの機能| GetVolumeInformation
Win32_LogicalDisk.MediaType - Win32APIの|デバイスの入出力関数|のDeviceIoControl
Win32_LogicalDisk.NumberOfBlocks - MIB.IETF | HOST-RESOURCES-MIB.hrStorageSize
だから、それはほとんどのWin32 APIで、ようですMIBする
WMI はドライブに直接クエリを実行します。特に、 Win32_ディスクドライブ そして Win32_LogicalDisk クラスはドライブに関するさまざまなプロパティをクエリします。DiskDrive は物理プロパティと構成をクエリするのに対し、LogicalDisk はドライブ自体 (C: など) のボリュームとパーティションをクエリします。すべての WMI プロパティが特定のドライブに設定されるわけではありません。ドライブが特定のものをサポートしていない可能性があります。
スクリプトマチック, 、Microsoft ユーティリティを使用すると、必要に応じて各クラスのすべてのプロパティを取得するための簡単なスクリプトを作成できます。また、その他の WMI 関連のプロパティも必要に応じて取得できます。しかもPerlでも実現できるんです!