Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

PowerShell:空きディスク容量とディスク使用量を確認する

この記事では、PowerShellを使用してローカルまたはリモートのWindowsホストの空きディスク容量とディスク使用量を確認する方法を説明します。また、空き領域のしきい値を超えた場合に、ポップアップ通知または電子メールで管理者に通知する方法を検討してください。

WMIとPowerShellを使用してWindowsのドライブの空き容量を確認する方法

Win32_logicalDisk を使用して、Windowsの論理ドライブに関する情報を取得できます。 WMIクラス。

以下のコマンドは、コンピューター上の論理ドライブに関するすべての情報を表示します。

Get-WmiObject -Class Win32_LogicalDisk

新しいPowerShellCore7.xを使用している場合は、このPowerShellバージョンではWMIがサポートされていないことに注意してください(PowerShellCoreは.NetCoreに基づいているため)。 Get-WmiObjectコマンドを実行しようとすると、次のエラーが表示されます。The term 'Get-WmiObject' is not recognized as a name of a cmdlet, function, script file, or executable program 。 WMIの代わりにCIMを使用します。例:

Get-CimInstance win32_logicaldisk

PowerShell:空きディスク容量とディスク使用量を確認する

FreeSpaceプロパティには、各ドライブに残っている空き領域の量がバイト単位で含まれています。より便利にするために、GBに変換して、各論理ディスクの空き領域の量を%で表示できます(合計ディスクサイズに対する空き領域の比率として)。次のPowerShellスクリプトを使用できます:

Get-WmiObject -Class Win32_LogicalDisk |
Select-Object -Property DeviceID, VolumeName, @{Label='FreeSpace (Gb)'; expression={($_.FreeSpace/1GB).ToString('F2')}},
@{Label='Total (Gb)'; expression={($_.Size/1GB).ToString('F2')}},
@{label='FreePercent'; expression={[Math]::Round(($_.freespace / $_.size) * 100, 2)}}|ft

PowerShell:空きディスク容量とディスク使用量を確認する

スクリプトは、論理ドライブ、それらのサイズ、および空き領域の割合のリストを表示します。

このスクリプトをPowerShellCoreで使用するには、Get-WmiObjectを置き換えるだけです。 Get-CimInstanceを使用 。

ディスク上の空き領域に関する情報を単に表示するのではなく、指定されたしきい値よりも空き領域が少ない場合は、代わりに何らかのアクション(電子メールを送信するか、ポップアップメッセージを表示する)を実行することができます。以下のPowerShellスクリプト:

$percentWarning = 20
$percentCritcal = 5
$ListDisk = Get-WmiObject -Class Win32_LogicalDisk
Foreach($Disk in $ListDisk){
if ($Disk.size -ne $NULL) {
$DiskFreeSpace = ($Disk.freespace/1GB).ToString('F2')
$DiskFreeSpacePercent = [Math]::Round(($Disk.freespace/$Disk.size) * 100, 2)
if($DiskFreeSpacePercent -lt $percentWarning){
$Message= "Warning!"
if($DiskFreeSpacePercent -lt $percentCritcal){
$Message= "Alert!"
}
$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("Disk $($Disk.DeviceID) has only $DiskFreeSpace GB of free space left",0,$Message,48)
}
}
}

PowerShell:空きディスク容量とディスク使用量を確認する

このスクリプトは、ディスクに残っている空き領域のしきい値(5%および20%)を設定します。いずれかのディスクの空き容量が指定された値を下回ると、モーダル情報ウィンドウが表示されます。ポップアップ通知として表示するか、ディスククリーンアップツール(cleanmgr.exe)をすぐに実行できます。 。

問題の管理者に電子メールを送信する場合は、Send-MailMessageを使用してSMTPサーバー(Exchangeホストまたはその他のSMTPサービス、組み込みのWindows Server SMTPロールでも可能)を介して電子メールを送信できます。コマンドレット:

Send-MailMessage -To “srv_admin@woshub.com” -From “$env:computername@woshub.com” -Subject “Insufficient disk space on server $env:computername” -Body “Disk $($Disk.DeviceID) has only $DiskFreeSpace GB left” -Credential (Get-Credential) -SmtpServer smtp.woshub.com -Port 587

この例では、SMTPホストにインタラクティブに接続するためにクレデンシャルを入力する必要があります。認証なしで信頼できるホストからのメッセージを受け入れるようにSMTPホストを構成するか、ファイルに保存された資格情報を使用してSMTP認証を構成できます(マネージドサービスアカウントを使用して電子メールを送信することはできません)。

タスクスケジューラを使用してPowerShellスクリプトを定期的に実行することも、Windowsサービスとして構成することもできます。このWindowsホストに十分な空き容量がない場合、管理者は通知を受け取ります。

PowerShellを介してリモートWindowsホストから空きディスク容量を取得する

Invoke-Commandコマンドレットを使用して、PSスクリプトを実行し、リモートコンピューターの残りの空き領域を確認できます。

Invoke-Command -ComputerName srv01,srv02,srv03 -FilePath "C:\PS\checkfreespace.ps1"

空き容量を確認するサーバーがドメイン内にある場合は、Get-ADComputerコマンドレットを使用してActive Directoryからサーバーのリストを取得し、各ホストに対してスクリプトを実行できます。

$computers = (Get-ADComputer -Filter 'operatingsystem -like "*Windows Server*" -and enabled -eq "true"').Name
Invoke-Command -ComputerName $computers -FilePath "C:\PS\checkfreespace.ps1" -ErrorAction SilentlyContinue

RemoteWMIを使用して、リモートコンピューターからWMIデータを取得することもできます。

Get-WmiObject -Class Win32_logicalDisk -ComputerName srv01,srv02,srv03

このガイドでは、ディスク容量を監視するための最も簡単な自作ソリューションについて説明します。監視する必要のあるホストが多数ある場合は、フル機能の監視システム(Zabbix、Icinga、PRTG、Nagiosなど)を使用することをお勧めします。


  1. Windows 10、7、8 でディスク容量を解放する方法

    ハードディスクのサイズに関係なく、遅かれ早かれ、ドライブの空き容量がデータでオーバーランし、ハードディスクの空き容量が不足しているというメッセージが表示されます。ハードディスクが詰まっていて、必死にスペースを取り戻したい場合は、適切な場所に来ました. Windows 10、8、および 7 でディスク容量を解放する方法をいくつか挙げました。 Windows でディスク領域を解放する最良の方法 1.簡単な方法を使用 – Disk Analyzer Pro システムのスペースを回復し、時間も節約したい場合は、サード パーティのソフトウェアを使用できます。 Disk Analyzer Pro は、Wi

  2. Linux でディスク容量をチェックして管理する方法

    ディスク容量の管理は、使用するプラットフォームに関係なく、コンピューター ユーザーにとって大きな懸念事項の 1 つです。特にシステム管理者の場合、オフライン システムとオンライン システムの状態を監視することが仕事です。ディスク容量が少ないと、Linux での更新が妨げられ、他の重大なエラーが発生する可能性があります。 したがって、特定のファイルが使用するディスク容量と容量を知るには、df および du コマンドに精通している必要があります。 この投稿では、df および du コマンドを使用して Linux のディスク容量を確認および管理する方法について説明します。 DF (ディスク ファ