windows - wmic 可以获取路径或物理名称的模型信息吗?

标签 windows powershell wmic

是否可以在平面旧 wmic 命令中执行此 powershell 脚本?如果可能,我需要根据路径或驱动器盘符获取磁盘模型信息,但在运行 powershell 脚本时遇到问题。

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?

最佳答案

我不确定我是否理解:

  1. wmic用于进行单一、简单的查询。

  2. 如果您想进行更复杂的查询(例如上面的嵌套循环),您将需要某种“编程语言”。像 C#、VBScript ... 或 Powershell。

  3. 问:您在尝试执行此脚本时遇到的“问题”到底是什么?

这是您的脚本的示例输出:

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

附言:

另见 PowerShell says "execution of scripts is disabled on this system."

关于windows - wmic 可以获取路径或物理名称的模型信息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41215026/

相关文章:

git - Start-Process "git"返回奇怪的 129 退出代码

windows - 批量输出到文件包含中文符号

python - 如何在Python中隐藏 "No Instance(s) available"?

java - 检测哪个 .txt 文件用于运行 java

c++ - 杀死排队的通知气球(Pre-Vista)

windows - 在没有硬件加速的情况下在 Windows 上部署 Qt5

powershell - 选择对象使用管道与-InputObject的行为不同

windows - 模拟物理键盘按下的脚本,以便 PC 保持唤醒状态

c++ - 试图在windows环境下禁用一个设备

powershell - 如何防止外部脚本使用 break 语句终止脚本