Powershell:从 150 台服务器的 powershell 中获取 C 盘状态

Powershell:从 150 台服务器的 powershell 中获取 C 盘状态

如何使用 powershell 从 150 台服务器获取 C 盘的状态(html 格式)。

我有这个代码

Get-WmiObject win32_logicaldisk -Computername remotecomputer

我正在尝试获取远程服务器信息(如剩余空间和可用空间百分比),并将其以 HTML 文件格式显示。我希望在 HTML 文件中包括 150 台服务器。

答案1

将 150 台服务器直接放入变量或使用 Get-Content 并使用 Get-Volume 和 ConvertTo-HTML。

$servers = "server1","server2"
$props = @(
  "*",
  @{Name="Space";Expression={"$([int]($_.Size / 1024Mb)) GB"}},
  @{Name='SpaceUsed';Expression={"$([int](($_.Size - $_.SizeRemaining) / 1024Mb)) GB"}},
  @{Name="SpaceRemaining";Expression={"$([int]($_.SizeRemaining / 1024Mb)) GB"}},
  @{Name='PercentFull';Expression={"$([int](100 - (($_.SizeRemaining / $_.Size) * 100))) %"}}
)
Get-Volume -DriveLetter C -CimSession $servers |
  Select-Object -Property $props -ExcludeProperty *cim* |
    ConvertTo-Html |
      Out-File -FilePath $env:temp\ServerCVolumes.html

已编辑:添加了剩余空间。在我编辑我的空间之前,Cory Knutson 发布了可用空间。

答案2

这将包括可用空间百分比,以及以 GB 为单位的可读大小

$servers = "server1","server2"
$output = @()

$Servers | ForEach-Object {
    $server = $_

    $output += Get-Volume C -CimSession $_ | 
        Select-Object @{Name="Server";Expression={$server}},`
                        @{Name="PercentFree";Expression={$_.SizeRemaining / $_.Size}},`
                        @{Name="RemainingReadable";Expression={"$($_.SizeRemaining / 1024Mb) GB"}},`
                        Size,SizeRemaining,FileSystem 
}

$output | ConvertTo-Html | Out-File C:\Report.html

# OR

$output | Export-Csv -NoTypeInformation -Path C:\report.csv

相关内容