Windowsパソコンでネットワーク越しにパソコンのストレージ情報を得たい時に役立つ機能の紹介です。職場のパソコンのインベントリ情報を遠隔で収集したいときなどに活用します。
WMIを使うので以下サイトを参考にして、接続できるようにしておく必要があります。
実施方法
PowerShellで以下のコマンドを実行すると、$processor変数に取得した情報が格納されます。ストレージがSSDかHDDかを識別したいので、別のNamespaceから情報を取得しています。
1 |
$storages = Get-WmiObject MSFT_PhysicalDisk -computername ホスト名orIP -Namespace "Root\Microsoft\Windows\Storage" |
Select-Objectで内容を確認してみると、次のような情報が取得されます。この中でSizeにストレージ容量が格納されているので参照します。またMediaTypeはSSDかHDDかを示す数値で、HDDだと3が、SSDだと4が格納されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
PS C:\> $storages | Select-Object * PSComputerName : PC001 __GENUS : 2 __CLASS : MSFT_PhysicalDisk __SUPERCLASS : MSFT_StorageFaultDomain __DYNASTY : MSFT_StorageObject __RELPATH : MSFT_PhysicalDisk.ObjectId="{1}\\\\PC001\\root/Microsoft/Windows/Storage/P roviders_v2\\SPACES_PhysicalDisk.ObjectId=\"{c5f71294-23x8-11e8-9791-806e6f6e6963}:P D:{64e72569-d5e0-7749-ck38-285a740fd553}\"" __PROPERTY_COUNT : 39 __DERIVATION : {MSFT_StorageFaultDomain, MSFT_StorageObject} __SERVER : PC001 __NAMESPACE : Root\Microsoft\Windows\Storage __PATH : \\PC001\Root\Microsoft\Windows\Storage:MSFT_PhysicalDisk.ObjectId="{1}\\\\ PC001\\root/Microsoft/Windows/Storage/Providers_v2\\SPACES_PhysicalDisk.Ob jectId=\"{c5f71294-54f2-11e8-9791-806ef4fa6963}:PD:{64e72569-d5e0-5633-ba80-285a740f d553}\"" AdapterSerialNumber : S33JNY0K632358 _0003 AllocatedSize : 256060514304 BusType : 17 CannotPoolReason : {7} CanPool : False Description : DeviceId : 0 EnclosureNumber : FirmwareVersion : DXY8AM1Q FriendlyName : SAMSUNG KUS030202M-B000 HealthStatus : 0 IsIndicationEnabled : IsPartial : True LogicalSectorSize : 512 Manufacturer : MediaType : 4 Model : SAMSUNG KUS030202M-B000 ObjectId : {1}\\PC001\root/Microsoft/Windows/Storage/Providers_v2\SPACES_PhysicalDisk .ObjectId="{c5f71294-54f2-11e8-9791-806e6f6e6963}:PD:{64e72569-d5e0-7749-ba80-285a74 0fd553}" OperationalDetails : OperationalStatus : {2} OtherCannotPoolReasonDescription : PartNumber : PassThroughClass : PassThroughIds : PassThroughNamespace : PassThroughServer : PhysicalLocation : PCI Slot 8 : Bus 2 : Device 0 : Function 0 : Adapter 0 PhysicalSectorSize : 4096 SerialNumber : 3333_4A30_4B44_3488_0025_3859_0000_0001. Size : 256060514304 SlotNumber : SoftwareVersion : SpindleSpeed : 0 StoragePoolUniqueId : SupportedUsages : {1, 2, 3, 4...} UniqueId : eui.33334A304B4434880025385900000001 UniqueIdFormat : 8 Usage : 1 VirtualDiskFootprint : 0 Scope : System.Management.ManagementScope Path : \\PC001\Root\Microsoft\Windows\Storage:MSFT_PhysicalDisk.ObjectId="{1}\\\\ PC001\\root/Microsoft/Windows/Storage/Providers_v2\\SPACES_PhysicalDisk.Ob jectId=\"{c5f71294-54f2-11e8-2334-806e6f6e6963}:PD:{64e76369-d5e0-7749-ba80-285a740f d553}\"" Options : System.Management.ObjectGetOptions ClassPath : \\PC001\Root\Microsoft\Windows\Storage:MSFT_PhysicalDisk Properties : {AdapterSerialNumber, AllocatedSize, BusType, CannotPoolReason...} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {dynamic, provider} Site : Container : |
こんな感じで参照できます。
1 2 |
PS C:\> Write-Host $storages.Size 256060514304 |