如何编写 powershell 脚本来知道磁盘是基本的还是动态的?

Posted

技术标签:

【中文标题】如何编写 powershell 脚本来知道磁盘是基本的还是动态的?【英文标题】:How to write a powershell script to know disk is basic or dynamic? 【发布时间】:2020-06-24 11:29:00 【问题描述】:

我必须检查给定节点是否包含任何动态磁盘,并使用 Power Shell 脚本获取动态磁盘列表。我不应该使用 diskpart 命令。除 diskpart 之外的任何其他解决方案将不胜感激。

【问题讨论】:

我们无法为您编写完整的脚本。请使用@Midacts 的答案并尝试创建一个脚本。如果您在任何我们可以提供帮助的地方遇到困难。 【参考方案1】:

https://social.technet.microsoft.com/Forums/windowsserver/en-US/cd7c0327-3fe9-45fc-a177-5a9927d468f3/does-the-getdisk-funtion-only-return-basic-disks?forum=winserverpowershell

Get-WmiObject Win32_DiskPartition -filter "Type='Logical Disk Manager'" | Select-Object *

【讨论】:

还有其他类型也倾向于动态磁盘,下面我列出了分区“类型”的所有可能值。 “未使用”、“12 位 FAT”、“Xenix 类型 1”、“Xenix 类型 2”、“16 位 FAT”、“扩展分区”、“MS-DOS V4 Huge” 、“可安装文件系统”、“PowerPC 参考平台”、“UNIX”、“NTFS”、“Win95 w/Extended Int 13”、“Extended w/Extended Int 13”、“逻辑磁盘管理器”、“未知”跨度> reddit.com/r/PowerShell/comments/4dmicj/… 似乎您只想添加要过滤的其他“类型”。 但是不知道哪个属于dynamic哪个属于basic 链接使用“逻辑磁盘管理器”【参考方案2】:

你也可以使用 diskpart 实用程序,它很容易编写脚本(我在 Python 中使用它) 这个想法是当你执行diskpart然后列出磁盘时, 输出将是:

Disk ###  Status         Size     Free     Dyn  Gpt
--------  -------------  -------  -------  ---  ---

Disk 0 Online 476 GB 0 B *

所以您会在“Dyn”下看到所有标有星号的动态磁盘

【讨论】:

以上是关于如何编写 powershell 脚本来知道磁盘是基本的还是动态的?的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell初探

如何运行具有详细输出的 PowerShell 脚本?

如何通过使用标志或参数启动脚本来跳过部分 PowerShell 脚本

使用 Powershell 更改发布版本

Powershell - 检测驱动器号是不是安装在 SSD 固态磁盘上

如何在PowerShell脚本中嵌入EXE文件