PowerShell将“获取体积”导出到excel/csv

omvjsjqw  于 2023-02-10  发布在  Shell
关注(0)|答案(2)|浏览(118)

我用了下面的一个,它给出了一些不同的excel,请帮助我在这方面

#Disk Space
Get-Volume
$results = Get-Volume | Export-Csv -Path C:\temp\software1.csv

注意:我需要健康检查,驱动器名称,可用空间,大小,Excel中的磁盘类型
提前感谢朋友们:)

p4tfgftt

p4tfgftt1#

一般来说,当你运行一个powershell命令时,它只显示哪些部分是重要的,如果你用同样的命令并把它传输到format-list(或简称“ft”),你会得到所有的信息。

Get-Volume | ft

导出时,它会导出所有内容。另外,您需要添加参数-NoTypeInformation来删除第一行。
要只获取某些值,只需使用select..将其管道化,如下所示:

Get-Volume | select HealthStatus, DriveLetter, SizeRemaining,DriveType | Export-Csv -NoTypeInformation -Path C:\temp\software1.csv

另外,不需要执行$results = get-volume...这会将输出推送到变量$results中。如果您希望稍后调用该变量,这将是适用的。因此,您也可以执行类似的操作。

$results = Get-Volume 
$results | select HealthStatus, DriveLetter, SizeRemaining, DriveType | Export-Csv -NoTypeInformation -Path C:\temp\software1.csv
sh7euo9m

sh7euo9m2#

请记住,您需要加载Import-Excel模块,但您应该能够使用此模块输出到Excel。

#check-DiskSpace_FSs.ps1

 import-module activedirectory
 $dc = "domainController09"
 $currentDate = get-date -Format yyyyMMdd_HHmm
 $path = "\\UNC\export\FileServer_DiskSpace\FileServer_DiskSpace_$currentDate.xlsx" 
 $smtpServer = "10.10.10.10"
 $from = "me@somewhere.com"
 $to = "me@somewhere.com"
 $subject = "Server FS diskspace - $date"

 $ServerFSs = get-adcomputer -Server $dc -SearchBase "OU=fs,OU=Server,DC=somewhere,DC=com" -filter * | select name | sort Name
 
 $DriveSize = foreach ($FS in $somewhereFSs) 
   { 
     get-WmiObject win32_logicaldisk -ComputerName $FS.name -Filter "Drivetype=3" | select SystemName,DeviceID,@{n="TotalSize(GB)";e={$_.Size / 1gb -as      [int] }}`
     ,@{n="FreeSize(GB)";e={$_.freespace / 1gb -as [int] }}`
     ,@{n="FreeSize(%)";e={[int]($_.Freespace*100/$_.Size)}},VolumeName | Export-Excel -Path $path -append -FreezeTopRow -BoldTopRow -AutoSize -AutoFilter
   } 

 Send-Mailmessage -smtpServer $smtpServer -from $from -to $to -subject $subject -Attachments $path -priority High

相关问题