我实际上是在公司实习,我的主管正在寻找将安装在每个客户服务器上的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的初学者,非常感谢你的帮助
答案 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)}}