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


18

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

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

所有服务器都运行Windows OS

Answers:


18

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

Get-WmiObject -Class win32_logicalDisk -ComputerName server1, server2, server3, etc | Select-Object pscomputername, deviceid, freespace, size

用远程服务器名称或IP 替换server1,server2等

输出看起来像这样:

在此处输入图片说明

如果需要,可以将其添加| 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"
    }

}

9

使用命令fsutil

fsutil volume diskfree C:
fsutil volume diskfree \\server\share

输出将如下所示:

Total # of free bytes        : 851127304192
Total # of bytes             : 2147480485888
Total # of avail free bytes  : 851127304192

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

fsutil volume diskfree C: | find /i "avail free"

仅供参考,这需要管理凭据。
Bink

3

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

  • 设置SNMP(带有指南的出色文档)并编写脚本以轮询SNMP守护程序。
  • 使用监控产品。我过去曾经使用过OpsviewNinja。Microsoft SCOM也是一个很好的选择(如果您负担得起许可费用)。

1

如果您有权访问网络共享并且安装了Cygwin,则可以执行以下命令:

# df -h //myserver/shareddrive Filesystem Size Used Avail Use% Mounted on - 25G 13G 12G 52% //myserver/shareddrive


0

伙计们,我还提供了一个使用fsutil和telnet的解决方案:

<package>

  <job id="vbs">

  <script language="VBScript">

     set WshShell = WScript.CreateObject("WScript.Shell")
     WshShell.Run "telnet 182.56.32.23 -l work"
     WScript.Sleep 500
     WshShell.AppActivate "Telnet"
     WScript.Sleep 500
     WshShell.SendKeys "y"
     WshShell.SendKeys "~"      
     WScript.Sleep 500
     WshShell.SendKeys "helloworld"
     WScript.Sleep 500
     WshShell.SendKeys "~"  
     WScript.Sleep 500
     WshShell.SendKeys "C:\Users\work2\Desktop\diskcheck.bat"   
     WScript.Sleep 200
     WshShell.SendKeys "~"

  </script>

 </job>

</package>

diskcheck.bat:

fsutil卷无磁盘C:
输出:
可用字节总数:17084395520
字节总数:249145847808
可用空闲字节总数:17084395520

有什么改进吗?
rocko 2014年

从未见过有人在Windows上安装过telnet服务器,甚至内置的服务器也没有。特别是由于telnet长期以来一直被认为是不安全的。
Keltari

0
Function GetRemoteDiskSpace (
[String]$TargetComputer,
[String]$Drive
)
{
$Drive = New-PSDrive -Name K -PSProvider FileSystem -Root "\\$TargetComputer\$Drive$" -Persist
$Info = Get-PSDrive $Drive 
$Free = $Info.Free /1GB
Remove-PSDrive -Name $drive -PSProvider FileSystem

return $Free
}

1
欢迎来到超级用户!欢迎您做出贡献,但是您可以对上述功能进行解释吗?:)
bertieb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.