在远程服务器的窗口中检查磁盘容量

roc*_*cko 18 windows disk-space cmd.exe

我在 Windows 中工作,我想通过远程 Windows 服务器的命令行磁盘容量找出。

例如:我是@localhost,现在我想知道服务器172.68.68.68的D:驱动器是否大于10 GB。我该如何检查?

所有服务器都运行 Windows 操作系统

Kel*_*ari 18

使用 Powershell,您可以使用以下命令:

Get-WmiObject -Class win32_logicalDisk -ComputerName server1, server2, server3, etc | Select-Object pscomputername, deviceid, freespace, size
Run Code Online (Sandbox Code Playgroud)

server1、server2 等替换为远程服务器名称或 IP。

输出如下所示:

在此处输入图片说明

如果需要,您可以添加| Export-Csv -Path .\drives.csv到脚本的末尾以将文件输出到逗号分隔值 (CSV) 文件,以便与 Excel 一起使用。如果这样做,当您打开 Excel 时,您需要将 Excel 中的驱动器大小列格式化为数字。

只是为了傻笑,我写了这个 PowerShell 脚本,它将在 Active Directory 中的所有服务器上执行任务:

$ErrorActionPreference= 'silentlycontinue'

Get-ADComputer -Filter 'OperatingSystem -like "*Server*"' -Properties * | Select-Object Name |

ForEach-Object {
    If (Test-Connection $_.Name -Count 1){
        Get-WmiObject -Class win32_logicalDisk -ComputerName $_.Name | 
        Select-Object pscomputername, deviceid, freespace, size
    }
    else {
        Write-host $_.Name " Connection Error"
    }

}
Run Code Online (Sandbox Code Playgroud)


Joa*_*der 10

使用命令fsutil

fsutil volume diskfree C:
fsutil volume diskfree \\server\share
Run Code Online (Sandbox Code Playgroud)

输出将类似于:

Total # of free bytes        : 851127304192
Total # of bytes             : 2147480485888
Total # of avail free bytes  : 851127304192
Run Code Online (Sandbox Code Playgroud)

要仅获取带有可用字节的行,您可以使用:

fsutil volume diskfree C: | find /i "avail free"
Run Code Online (Sandbox Code Playgroud)


mta*_*tak 3

如果您在域中,您可能能够使用 WMI 执行某些操作(WMI 示例)。如果您不在域中,可以通过两种方式进行远程监控:

  • 设置 SNMP(带有指南的优秀文档)并编写脚本来轮询 SNMP 守护进程。
  • 使用监控产品。我过去使用过OpsviewNinja 。Microsoft SCOM 也是一个不错的选择(如果您能负担得起许可费用)。