2016-12-19 2 views
1

このpowershellスクリプトは、古いwmicコマンドで実行できますか?可能であればパスやドライブレターに基づいてディスクモデル情報を取得する必要がありますが、PowerShellスクリプトの実行に問題があります。wmicはパス名または物理名のモデル情報を取得できますか?

Get-WmiObject Win32_DiskDrive | % { 
    $disk = $_ 
    $partitions = "ASSOCIATORS OF " + 
       "{Win32_DiskDrive.DeviceID='$($disk.DeviceID)'} " + 
       "WHERE AssocClass = Win32_DiskDriveToDiskPartition" 
    Get-WmiObject -Query $partitions | % { 
    $partition = $_ 
    $drives = "ASSOCIATORS OF " + 
       "{Win32_DiskPartition.DeviceID='$($partition.DeviceID)'} " + 
       "WHERE AssocClass = Win32_LogicalDiskToPartition" 
    Get-WmiObject -Query $drives | % { 
     New-Object -Type PSCustomObject -Property @{ 
     Disk  = $disk.DeviceID 
     DiskSize = $disk.Size 
     DiskModel = $disk.Model 
     Partition = $partition.Name 
     RawSize  = $partition.Size 
     DriveLetter = $_.DeviceID 
     VolumeName = $_.VolumeName 
     Size  = $_.Size 
     FreeSpace = $_.FreeSpace 
     } 
    } 
    } 
} 

スクリプトは、この質問に共有されました: Combine `Get-Disk` info and `LogicalDisk` info in PowerShell?

答えて

2

私は理解していない:

  1. wmicは、単一の、単純なクエリを作成するためのものです。

  2. さらに洗練されたクエリ(たとえば、上記のネストループ)を作成する場合は、何らかの「プログラミング言語」が必要になります。 C#、VBScript、Powershellのように。

  3. Q:このスクリプトを実行しようとして遭遇した「問題」は何ですか?

はここにあなたのスクリプトからの出力例です。

d:\>powershell -ExecutionPolicy ByPass -File tmp.ps1 

DiskSize : 128034708480 
RawSize  : 117894545408 
FreeSpace : 44036825088 
Disk  : \\.\PHYSICALDRIVE1 
DriveLetter : C: 
DiskModel : SanDisk SD6SF1M128G 
VolumeName : OS_Install 
Size  : 117894541312 
Partition : Disk #1, Partition #2 

DiskSize : 320070320640 
RawSize  : 320070836224 
FreeSpace : 29038071808 
Disk  : \\.\PHYSICALDRIVE2 
DriveLetter : E: 
DiskModel : TOSHIBA External USB 3.0 USB Device 
VolumeName : TOSHIBA EXT 
Size  : 320070832128 
Partition : Disk #2, Partition #0 

DiskSize : 1000202273280 
RawSize  : 734673240064 
FreeSpace : 141853818880 
Disk  : \\.\PHYSICALDRIVE0 
DriveLetter : D: 
DiskModel : HGST HTS721010A9E630 
VolumeName : Data 
Size  : 734673235968 
Partition : Disk #0, Partition #0 

PS:またPowerShell says "execution of scripts is disabled on this system."

+0

参照-ExecutionPolicyバイパス、私は必要なものだけでした。それを指摘してくれてありがとう。 :) – simgineer

関連する問題