我希望PowerShell脚本获得C驱动器的总内存空间和已用内存空间(以GB为单位),如果总空间小于200 GB,则打印磁盘空间应小于200。
gwmi win32_logicaldisk | Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
$task=gwmi win32_logicaldisk | Format-Table DeviceId, MediaType, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
if($task.Size -lt 200)
{
Write-Host "Hard Disk Space is less than 200."
}
else
{
Write-Host "Hard Disk Space is greater than 200."
}
我在上面的代码中获得了所有驱动器空间,我只需要C驱动器信息,并且如果条件不能正常工作,有人可以帮助我解决这一问题。预先感谢
答案 0 :(得分:1)
您可以使用Get-Volume cmdlet-
if (((Get-Volume -DriveLetter C).Size)/1GB -lt 200)
{
Write-Host "Hard Disk Space is less than 200."
}
else
{
Write-Host "Hard Disk Space is greater than 200."
}
答案 1 :(得分:0)
如果您需要在win7上运行此测试-即使使用ps5.1-也不能使用Get-Volume
cmdlet。 [叹息... ]因此,这里是使用CMI / WMI的一种。
它做什么...
[string]::IsNullOrEmpty()
来查看结果中是否包含任何信息Write-Warning
cmdlet来显示漂亮的橙色文本[ grin ] 这是代码...
$MinFreeSpace_GB = 800
$CDriveMinFree = [string]::IsNullOrEmpty((Get-CimInstance -ClassName CIM_LogicalDisk |
Where-Object {
$_.DeviceID -eq 'C:' -and
$_.FreeSpace -lt $MinFreeSpace_GB * 1GB
}))
if ($CDriveMinFree)
{
'The C: drive has at least {0} GB free.' -f $MinFreeSpace_GB
}
else
{
Write-Warning ('Low free space on Drive C:!')
}
我的600 GB空闲C:驱动器上的输出,测试阈值设置为800 ...
WARNING: Low free space on Drive C:!