Powershell从服务器中提取CPU,内存和可用磁盘空间

时间:2016-06-02 14:20:59

标签: powershell

我实际上是在公司实习,我的主管正在寻找将安装在每个客户服务器上的PowerShell脚本。它将提取有关每个服务器的信息:已安装的可用磁盘空间和Windows更新。此脚本需要每两周自动执行一次并通过邮件发送PDF报告(报告需要如下图所示)。要提取的信息

现在我所做的就是在每个硬盘上提取可用空间的脚本:

$Filter = @{Expression={$_.Name};Label="DiskName"}, `
          @{Expression={[int]$($_.Freespace/1GB)};Label="FreeSpaceGB"} 
Get-WmiObject Win32_Volume | Format-Table $Filter -AutoSize

我找到了一个命令来获取已安装的Windows更新范围:

$wsus.GetUpdateCount($updatescope) 

但是这个命令不起作用,我收到了这个错误:

  

无法在Null表达式中调用方法。字符行:1:1 +   $ Wsus.GetSummariesPerUpdate($ updatescope,$ computerscope)+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ +   CategoryInfo:InvalidOperation(:) [],RuntimeException +   FullyQualifiedErrorId:InvokeMethodOnNull

Ps:我是PowerShell的初学者,非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

我使用下面的代码获取本地磁盘驱动器信息

Get-WMIobject win32_LogicalDisk -computername localhost -filter "DriveType=3" | Select-Object SystemName,DeviceID,@{Name="Size(GB)";Expression={"{0:N1}" -    f($_.size/1gb)}},
@{Name="FreeSpace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}},
@{Name="% FreeSpace(GB)";Expression={"{0:N2}%" -f(($_.freespace/$_.size)*100)}}