当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PowerShell 脚本检查 Windows 上的可用磁盘空间

作者:精品下载站 日期:2024-12-14 22:32:51 浏览:12 分类:玩电脑

使用 PowerShell 脚本检查 Windows 上的可用磁盘空间


我们想要检查所有加入域的 Windows 系统上的可用磁盘空间。它们是 Windows Server 和 Windows 10 系统。检索磁盘空间的一个绝佳方法是使用 PowerShell。在本文中,我们将使用适用于 Windows Server、Windows 10 和 Windows 11 的 PowerShell 批量检查可用磁盘空间。

准备检查可用磁盘空间 PowerShell 脚本

下载脚本 Get-DiskSpaceReport.ps1 或将以下代码复制并粘贴到记事本中。将其命名为 Get-DiskSpaceReport.ps1 并将其放置在 C:\scripts 文件夹中。如果没有,请创建一个 scripts 文件夹。

Set-ExecutionPolicy Unrestricted -Force
Import-Module ActiveDirectory

# Delete reports older than 60 days
$OldReports = (Get-Date).AddDays(-60)

# Location for disk reports
Get-ChildItem "C:\Temp\DiskSpaceReport\*.*" |
Where-Object { $_.LastWriteTime -le $OldReports } |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue

# Create variable for log date
$LogDate = get-date -f yyyyMMddhhmm

# Get all systems
$Systems = Get-ADComputer -Properties * -Filter { OperatingSystem -like "*Windows Server*" } |
Where-Object { $_.Enabled -eq $true } | Select-Object Name, DNSHostName | Sort-Object Name

# Loop through each system
$DiskReport = ForEach ($System in $Systems) {
    Get-WmiObject win32_logicaldisk `
        -ComputerName $System.DNSHostName -Filter "Drivetype=3" `
        -ErrorAction SilentlyContinue
}

# Create disk report
$DiskReport | Select-Object `
@{Label = "HostName"; Expression = { $_.SystemName } },
@{Label = "DriveLetter"; Expression = { $_.DeviceID } },
@{Label = "DriveName"; Expression = { $_.VolumeName } },
@{Label = "Total Capacity (GB)"; Expression = { "{0:N1}" -f ( $_.Size / 1gb) } },
@{Label = "Free Space (GB)"; Expression = { "{0:N1}" -f ( $_.Freespace / 1gb ) } },
@{Label = 'Free Space (%)'; Expression = { "{0:P0}" -f ($_.Freespace / $_.Size) } } |

# Export report to CSV file
Export-Csv -Path "C:\Temp\DiskSpaceReport\DiskReport_$logDate.csv" -NoTypeInformation -Delimiter ";"

它看起来像这样。

[玩转系统] 使用 PowerShell 脚本检查 Windows 上的可用磁盘空间

创建第二个名为 Temp 的文件夹,并将其放置在 (C:) 驱动器中。之后,创建一个文件夹DiskSpaceReport并将其放入临时文件夹中。这是运行脚本后报告将保存的位置。

[玩转系统] 使用 PowerShell 脚本检查 Windows 上的可用磁盘空间

您想更改报告的路径吗?请记住更改 PS 脚本中第 836 行的路径。

运行 Get-DiskSpaceReport PowerShell 脚本之前

在运行脚本之前,请密切注意:

  • 系统需要在线

  • 在加入域的计算机上运行它

  • 管理员权限

Windows Server 的可用磁盘空间

更改脚本文件夹的路径。运行 PowerShell 脚本 Get-DiskSpaceReport.ps1。它将检索域中的所有Windows 服务器并将磁盘驱动器导出到 CSV 文件。

PS C:\> cd C:\scripts

PS C:\scripts> .\Get-DiskSpaceReport.ps1

打开 C:\Temp\DiskSpaceReport 中的 CSV 文件。在此示例中,我们使用 Microsoft Excel 打开 CSV 文件。

[玩转系统] 使用 PowerShell 脚本检查 Windows 上的可用磁盘空间

特定 Windows 服务器的可用磁盘空间

假设您要导出特定 Windows 服务器的可用磁盘空间。您可以创建并使用特定列表作为输入,而不是针对 Active Directory 中的所有 Windows 系统运行脚本。

C:\Temp 中创建一个名为 ADComputers.csv 的 CSV 文件。添加标题主机名,并在每行添加 Windows 服务器主机名。

在我们的示例中,我们希望导出两台 Windows 服务器上的可用磁盘空间。

[玩转系统] 使用 PowerShell 脚本检查 Windows 上的可用磁盘空间

第 15 行 - 第 24 行替换为以下代码。

# Import CSV file
$Servers = Import-Csv "C:\Temp\ADComputers.csv"

# Loop through each system
$DiskReport = ForEach ($Server in $Servers) {

    # Get system
    $System = Get-ADComputer $Server.Hostname | Where-Object { $_.Enabled -eq $true } | 
    Select-Object Name, DNSHostName | Sort-Object Name
    Get-WmiObject win32_logicaldisk `
        -ComputerName $System.DNSHostName -Filter "Drivetype=3" `
        -ErrorAction SilentlyContinue
}

Windows 10 可用磁盘空间

如果要检查 Windows 10 客户端上的所有可用磁盘空间,则必须获取所有 Windows 10 客户端。将 PS 脚本中的第 16 行编辑为:

$Systems = Get-ADComputer -Properties * -Filter { OperatingSystem -like "*Windows 10*" } |

运行 PowerShell 脚本并使用您喜欢的程序检查磁盘报告 CSV 文件。在此示例中,它是应用程序 Microsoft Excel。

[玩转系统] 使用 PowerShell 脚本检查 Windows 上的可用磁盘空间

Windows 11 可用磁盘空间

如果要检查 Windows 11 客户端上的所有可用磁盘空间,则必须获取所有 Windows 11 客户端。将 PS 脚本中的第 16 行编辑为:

$Systems = Get-ADComputer -Properties * -Filter { OperatingSystem -like "*Windows 11*" } |

获得环境中的所有 Windows 磁盘大小真是太好了。

注意:始终使用系统上的监控软件,以便在磁盘空间已满时收到警报。该脚本无法替代监控系统软件!

与往常一样,在所有系统上运行良好的监控软件非常重要。当磁盘驱动器突然满时,它会立即提醒您。

了解更多:在 VMware ESXi 上将厚置备磁盘转换为精简磁盘 »

结论

您学习了如何使用 PowerShell 检查 Windows 上的可用磁盘空间。批量获取加入域的 Windows Server、Windows 10 或 Windows 11 客户端并在报告中导出磁盘空间。

当您想要检查可用磁盘空间并创建报告时,请使用此脚本。例如,如果您要与客户交谈并解释为什么需要购买更多磁盘。或者有用的是,您可以在磁盘报告中看到系统上分配了多少可用空间,也许您不需要它。这是调整磁盘卷大小的好方法,并且不会浪费任何额外的可用空间。

您喜欢这篇文章吗?您可能还喜欢保存文件时的 Excel CSV 三引号。不要忘记关注我们并分享这篇文章。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯