使用 powershell 在不同驱动器盘符上的多个服务器上获得免费 space%

Getting free space percent on multiple servers on different drive letters with powershell

我有一些服务器需要使用 powershell 监控免费 space 百分比。

对于一台服务器的一个驱动器是这样的:

$size = ([wmi]"\appsrv02\root\cimv2:Win32_logicalDisk.DeviceID='c:'").Size
$free = ([wmi]"\appsrv02\root\cimv2:Win32_logicalDisk.DeviceID='c:'").FreeSpace
Write-Output ($free/$size).ToString("P0")

当然,我可以继续重复代码并创建一个大脚本,但我 "feel" 100% 错了。

那么我将如何拥有 n 个我想检查免费 space 并且每个服务器在不同驱动器中的服务器?

使用Get-WMIObject轮询服务器以获取磁盘信息。

get-wmiobject win32_logicaldisk -filter "DriveType=3" -computername server1,server2|select-object -property systemname, deviceid, size, freespace, volumename

我写了一个脚本来做到这一点。本质上我使用了一个嵌套循环:

Foreach ($server in $serverlist) {

    $Disks = get-wmiobject Win32_LogicalDisk -computername $Server -Filter “DriveType = 3”

    Foreach ($Disk in $Disks) {

    Write-Output $server " = " $Disk.Freespace
    }
}