パソコン情報

WindowsServerでファイルサーバーのフォルダ容量制限と残量監視

やりたいこと1

ファイルサーバーの容量制限をしたい

やりたいこと2

ファイルサーバーの容量を確認したい

 

WindowsServer2022

今回使用しているWindowsServerは、クラウド上にあるWindowsServer2022になります。

レンタルしているので、全部で100GBのSSDタイプの容量になります。

そこで、50GBをファイルサーバーとして既に使っていますが現時点では、何も自動で監視する様な仕組みは設定していませんでした。

まずは、他のシステムを圧迫しないように、ファイルサーバーとして使用している

ココがポイント

50GBのディスク容量に制限を掛けたい

と思います。

 

共有フォルダに制限を掛ける設定

調べてみると、「ファイルサーバーリソースマネジャー」というのが必要らしいのですが、どこを探しても見つかりません。

サーバーマネージャーのダッシュボードから、「役割と機能の追加」から機能を追加しました。

 

ダッシュボードから、「ツール」>>「ファイルサーバーリソースマネジャー」を選択して起動させます。

クォータの管理」>>「クォータ」>>「クォータの作成」と進みます。

参照」から制限を掛けたいフォルダを選択します。

次に、「カスタムクォータのプロパティを定義する」にチェックを入れて「カスタムプロパティ」に移動しました。

ここで「空き容量の制限」に制限値を入力しました。

とりあえず、メールの設定はしていませんが、通知のしきい値の「追加」から、通知が欲しいメールアドレスを入力しました。

※メール通知など必要ない場合は「通知のしきい値」設定しなくてOK

ココがダメ

メール送信するために高い壁があるのでメール通知は諦めました!

※「OK」をクリックするとSMTPが設定されてない警告がでましたが先に進みました。

テンプレートとして保存するか?しないかの選択がありましたが、とりあえず自分が分かるようなネーミングにしてテンプレート保存にしておきました。

 

あっさりと設定終わりましたが、これで、ファイルサーバーとして、使用している共有フォルダである50GBが設定できたようです。

 

送信メールサーバー設定(断念)

送信メールサーバーの設定は、ファイルサーバーリソースマネージャーのトップから、操作の欄に、「オプションの構成」>>「電子メールの通知」という項目から設定が可能です。

ココがダメ

メール送信するために高い壁があるのでメール通知は諦めました!

 

WindowsServerとのセキュリティ問題であったり、暗号化送信のあたりで、WindowsServerの仕組みからのメール送信をすることを断念しました。

 

Powershellでテキストに出力対応

ファイルサーバーのフォルダ容量残量と使用容量をメールで通知することが、こんなにも大変な事だとは思いもよらぬ事でした。

その為の対応策として、

ココがポイント

ファイルサーバーに容量情報をテキスト出力する

ことにしました。

メールで確認しなくても、ファイルサーバーに出力された内容を確認すればよい事ですからね。

 

WindowsのPowershellを使う事にしました。

まずは、スクリプトを作成しました。

ssd_check.ps1 (Powershellスクリプトの拡張子は、ps1です。)

#ディスク使用容量
$SHIYOUSPACE=[Math]::round(((Get-ChildItem -Recurse -Force -Path C:\Files\ | Measure-Object -Sum Length).Sum /1GB),2)

#ディスクの使用率
$AKISPACE=[Math]::round((((Get-ChildItem -Recurse -Force -Path C:\Files\ | Measure-Object -Sum Length).Sum /1MB)/50000)*100,2)

#日付
$HITSUKE=Get-Date -Format D

### ディスク容量監視表示 ###########
$body=@"
$HITSUKE
現在のディスク使用容量
$SHIYOUSPACE GBになります。(上限50GB)
現在のディスク使用率
$AKISPACE %になります。(80%注意)
"@

# ファイル出力

Write-Output $body | Out-File "\\192.168.●●●.●●●\Cloud_Backup\check.txt"

※"@の前はスペースがあるとエラーになるので注意

 

そして、バッチファイルからスクリプトを実行させますので、

●ssd_check.bat

powershell .\ssd_check.ps1

 

あとは、バッチファイルを実行すれば下記の様なテキストファイルが出力されました。

2022年2月2日
現在のディスク使用容量
0.56 GBになります。(上限50GB)
現在のディスク使用率
1.14 %になります。(80%注意)

 

つまりこのファイルを見てファイルサーバーの容量管理をすることになります。

本当は、人間のうっかりミス防止の為に、自動で何かアラームがでるような仕組みが欲しいところですが、それは次回にしたいと思います。