简体   繁体   English

如何使用Powershell在Windows Server中以csv格式获取磁盘详细信息

[英]How can i get the disk details in csv format in windows server using powershell

Hi all I want to get details in below format 大家好,我想获取以下格式的详细信息

Hostname    Drive_0              Drive_1             Drive_2

Name        C: 99.899227142334   d: 99.899227142334  e: 99.899227142334

I can get this detail using below script but this works on PowerShell 3.0 how can I change to execute on PowerShell 2.0 我可以使用下面的脚本获取此详细信息,但这可以在PowerShell 3.0上运行,如何更改为在PowerShell 2.0上执行

$result = @()
$obj = new-object PSobject
$server = hostname
$obj |Add-Member -MemberType NoteProperty -Name "Hostname" -Value $server -ErrorAction SilentlyContinue
$z = Get-WmiObject -Class win32_Logicaldisk -Filter 'DriveType=3' | Select-Object -Property DeviceID,  @{LABEL='TotalSize';EXPRESSION={$_.Size/1GB}}

$z3 = $z.DeviceID
$z4 = $z.TotalSize
$i = 0
foreach($z3 in $z3){
 $z1 = $z.DeviceID[$i]
 $z2 = $z.TotalSize[$i]
    $zx = "$z1" + ": $z2"

      $obj | Add-Member -MemberType NoteProperty -Name "Drive_$i" -Value $zx -ErrorAction SilentlyContinue

$i++
  }
   $result+=$obj
     $result | Export-Csv  "$env:userprofile\Desktop\Result.csv" -NoTypeInformation

You can change your code to the below. 您可以将代码更改为以下内容。 It's a bit neater and sorts out your loops and limits so you don't need to manage them 有点整洁,整理出循环和限制,因此您无需管理它们

$result = @()
$obj = new-object PSobject
$server = hostname
$obj |Add-Member -MemberType NoteProperty -Name "Hostname" -Value $server -ErrorAction SilentlyContinue
$z = Get-WmiObject -Class win32_Logicaldisk -Filter 'DriveType=3' | Select-Object -Property DeviceID,  @{LABEL='TotalSize';EXPRESSION={$_.Size/1GB}}

$i = 0
$z | % {
  $z1 = $_.DeviceID
  $z2 = $_.TotalSize
  $zx = "$z1" + ": $z2"
  $obj | Add-Member -MemberType NoteProperty -Name "Drive_$i" -Value $zx 
  $i++
}
$result+=$obj
$result | Export-Csv  "$env:userprofile\Desktop\Result.csv" -NoTypeInformation

I also removed the -ErrorAction off the Add-Member as you should try and handle anything that crops up yourself, but add it back if you feel the need to. 我还删除了Add-Member-ErrorAction ,因为您应该尝试处理任何会引起-ErrorAction的问题,但是如果需要,可以重新添加。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM