gpt4 book ai didi

windows - 如何获取 Windows 中的每个磁盘并过滤 DeviceType,然后在其旁边添加磁盘的大小,以逗号分隔?

转载 作者:可可西里 更新时间:2023-11-01 11:43:48 27 4
gpt4 key购买 nike

我正在编写一个 PowerShell 脚本来收集计算机的一些数据。我快完成了,但我不知道如何获取计算机上所有磁盘的大小。我知道如何用几个 If 语句来完成它,但我希望它自动检测驱动器,而不是如果连接了新磁盘我必须编写一个新的 If 语句。我想要的输出如下:“A:,250GB”。 “A:”位有效,但磁盘大小位无效。

这是我使用和调整过的代码,但无济于事:

$Drives = Get-WmiObject Win32_logicaldisk| ?{$_.DriveType -eq 3} | ForEach-Object {$_.name}
ForEach ($Drivename in $Drives) {
$Drivenames = Get-WMIObject -Query "Select * From win32_logicaldisk Where DriveType = '3'" -computer localhost | Select-Object DeviceID
$Drive = [Math]::Round($Drivenames.Size / 1GB)
"$Drivenames,", $Drive | Out-File "C:\HDS\HDS_DRIVES.csv" -Append
}

此外,[Math]::Round($Drivenames.Size/1GB) 抛出一个错误:

Method invocation failed because [System.Object[]] does not contain a method named 'op_Division'"

最佳答案

您可以将 Calculated Property 与 Select-Object 一起使用以使其变得更加简单:

Get-WmiObject Win32_logicaldisk| ? {$_.DriveType -eq 3} | 
Select-Object @{N="DeviceId";E={$_.DeviceId}},`
@{N="VolumeName";E={$_.VolumeName}},`
@{N="Size";E={[Math]::Round($_.Size / 1GB)}} |
Out-File "C:\HDS\HDS_DRIVES.csv" -Append

请注意,您不需要像示例中那样调用 Get-WmiObject 两次。

关于windows - 如何获取 Windows 中的每个磁盘并过滤 DeviceType,然后在其旁边添加磁盘的大小,以逗号分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51653682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com