1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ファイルサーバの空き容量をコマンドラインで取得する

Posted at

ファイルサーバのようなリモートホストの空き容量を調べる方法を検討しました。

以下の記事では Get-Volume を使用する方法が紹介されていますが、WinRM が無効であったり Firewall が邪魔している場合には利用できません。

PowerShellを使ってシステムのディスクサイズや空き領域サイズなどをリモートから調査する:Tech TIPS - @IT

そこで、以前記事にしたローカルホストの空き容量を調べる方法を応用します。

雑にディスク空き容量を監視する - Qiita

リモートホストの空き容量を調べるためには以下のようにします。


cmd /c dir \\COMPUTERNAME\ROOT `
    | select-object -last 1 `
    | foreach-object { $_ -replace ',' -split '\s+' } `
    | select-object -index 3

複数のドライブを調べる必要がある場合は関数にすると便利だと思います。

Function Get-Capacity {
    Param(
        [Parameter(ValueFromPipeline=$True)]
        [string[]]$ComputerName = "localhost",
        [string]$Root = "C$",
        [Int64]$Threshold = 1GB,
        [switch]$HumanReadable
    )
    process {
        foreach($CN in $ComputerName) {
            $size = cmd /c dir \\$CN\$Root `
                | Select-Object -Last 1 `
                | ForEach-Object { $_ -replace ',' -split '\s+' } `
                | Select-Object -Index 3

            if ($HumanReadable) {
                $viewSize = "{0} GB" -f ([Math]::Round($size / 1024 /1024 /1024 , 1))
            } else {
                $viewSize = $size
            }

            if ($size -lt $Threshold) {
                "{0} {1}`t{2}" -f "*", $CN, $viewSize
            } else {
                "{0} {1}`t{2}" -f "-", $CN, $viewSize
            }
        }
    }
}
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?