我有一些服务器,我需要使用powershell监控可用空间百分比。
对于一个服务器的一个驱动器,它就像:
$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")
当然,我可以去重复代码并创建一个大脚本,但我“感觉”它错了100%。
那么我将如何使用n个服务器来检查每个服务器的可用空间和不同的驱动器?
答案 0 :(得分:1)
使用Get-WMIObject
轮询服务器以获取磁盘信息。
get-wmiobject win32_logicaldisk -filter "DriveType=3" -computername server1,server2|select-object -property systemname, deviceid, size, freespace, volumename
答案 1 :(得分:0)
我写了一个脚本来做到这一点。基本上我使用了嵌套循环:
Foreach ($server in $serverlist) {
$Disks = get-wmiobject Win32_LogicalDisk -computername $Server -Filter “DriveType = 3”
Foreach ($Disk in $Disks) {
Write-Output $server " = " $Disk.Freespace
}
}