でも何かと面倒
(Get-ChildItem "c:\folder" -Recurse -Force | Measure-Object -Sum Length).Sum
du.exeを使った方が簡単だと思う。
Disk Usage
https://technet.microsoft.com/ja-jp/sysinternals/du.aspx
で、定期的に起動してログを残しとく感じで、
----------------------
#The software is public domain software.
#You can use it for any purpose.
$root = "c:\" #チェックするフォルダの指定
$folder_ex =@("\windows" ,"\program") #除外するフォルダ名
$folderList = (Get-ChildItem $root | Where-Object PSisContainer)
$Res = ""
foreach($i in $folderList ){
#除外リストに入っているかチェック(でも条件ゆるすぎ)
$folderName = $i.FullName -replace "\\", "_"
$flgExFolder = $true
foreach($ex_word in $folder_ex){
if( $folderName -notmatch $ex_word){
$flgExFolder = $false
break
}
}
if( $flgExFolder ){
Write-Host $i.FullName #確認のためコンソール出力
#指定フォルダの2階層までチェック
$Res += c:\files\du\du64.exe -l 2 -c -q -nobanner $i.FullName
$Res += "`r`n"
}
}
#CSVファイルを読みやすいように調整
$Res = $res.Replace( ("""" + $root) , ("`n" + """" + $root) )
$Res += (Get-Date -Format "yyyy-MM-dd HH:mm:ss") +"`r`n"$Res += (getmac) +"`r`n"
$Res += (hostname) +"`r`n"
$Res | Out-File "c:\files\ducheck\dutest.txt" -Encoding utf8
----------------------
このps1を実行しよとしてもポリシー違反で実行できない。
また、ウィンドウを開くのもヤダ。
diskuse.vbsを作って、ポリシー解除とウィンドウを表示しない。
diskuse.vbsを定期的に実行するようにしておく。
----------------------
CreateObject("WScript.Shell").Run "powershell -NoProfile
-ExecutionPolicy Unrestricted c:\diskuse\diskuse.ps1", 0CreateObject("WScript.Shell").Run "powershell c:\diskuse\diskuse.ps1", 0
----------------------
Public domainでAS-ISな感じです。
0 件のコメント:
コメントを投稿