You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell Get-Volume命令获取远程计算机磁盘详情

远程获取服务器磁盘数据的实现方案

前置要求

远程服务器需先启用WinRM服务,未配置的话可在远程服务器以管理员身份执行Enable-PSRemoting -Force完成初始化,且你使用的账号需具备远程服务器的管理权限。

方案1:通过CIM会话实现(推荐,适配WMI类查询,改动量小)

你原有逻辑基本不需要调整,仅需新增CIM会话并传入Get-Volume参数即可:

# 填写远程服务器名称/IP,多台查询可写数组 @("server01","server02")
$remoteServer = "远程服务器地址"

# 建立CIM会话,需要其他账号权限的话加参数 -Credential (Get-Credential) 手动输入账号
$cimSession = New-CimSession -ComputerName $remoteServer

# 你原有的属性定义完全不变
$props = @(
    'DriveLetter'
    'FileSystemLabel'
    'FileSystem'
    'DriveType'
    'HealthStatus'
    'OperationalStatus'
    @{n='SizeRemaining';e={"{0:N2}" -f ($_.SizeRemaining/ 1Gb)}}
    @{n='Size';e={"{0:N2}" -f ($_.Size / 1Gb)}}
    @{n='% Free';e={"{0:P}" -f ($_.SizeRemaining / $_.Size)}}
)

# Get-Volume指定CimSession参数即可拉取远程磁盘数据
$Diskmgmt = Get-Volume -CimSession $cimSession | Select-Object $props 

# 后续遍历逻辑和你原来的完全一致
foreach($dsk in $Diskmgmt)
{
    $dl = $dsk.DriveLetter
    $fsl = $dsk.FileSystemLabel
    $fs = $dsk.FileSystem
    $dt = $dsk.DriveType
    $hs = $dsk.HealthStatus
    $os = $dsk.OperationalStatus
    $sizer = $dsk.SizeRemaining
    $siz = $dsk.Size
    $PercentFree = $dsk.'% Free'
}

# 使用结束后关闭会话
Remove-CimSession $cimSession

方案2:通过Invoke-Command远程执行脚本(适合复杂本地逻辑迁移)

直接把你原有本地脚本放到远程执行,不需要调整原有查询逻辑:

# 填写远程服务器名称/IP,多台查询可写数组 @("server01","server02")
$remoteServer = "远程服务器地址"

# 把原有查询逻辑放到脚本块中,远程执行后返回结果
$Diskmgmt = Invoke-Command -ComputerName $remoteServer -ScriptBlock {
    $props = @(
        'DriveLetter'
        'FileSystemLabel'
        'FileSystem'
        'DriveType'
        'HealthStatus'
        'OperationalStatus'
        @{n='SizeRemaining';e={"{0:N2}" -f ($_.SizeRemaining/ 1Gb)}}
        @{n='Size';e={"{0:N2}" -f ($_.Size / 1Gb)}}
        @{n='% Free';e={"{0:P}" -f ($_.SizeRemaining / $_.Size)}}
    )
    return Get-Volume | Select-Object $props 
}

# 后续遍历逻辑和你原来的完全一致
foreach($dsk in $Diskmgmt)
{
    $dl = $dsk.DriveLetter
    $fsl = $dsk.FileSystemLabel
    $fs = $dsk.FileSystem
    $dt = $dsk.DriveType
    $hs = $dsk.HealthStatus
    $os = $dsk.OperationalStatus
    $sizer = $dsk.SizeRemaining
    $siz = $dsk.Size
    $PercentFree = $dsk.'% Free'
}

内容的提问来源于stack exchange,提问作者Empty Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:57:01