Находим у кого размер папки больше установленного значения.
17 Март 2009
Сам скрипт user-dir-size.pl1
param ($path,$size,$diff,$min)
#$diff = "no";
$text = "`n
`t Надо использовать следующий синтаксис скрипта:
`t -path - путь до домашней папки
`t -size - размер папки, поддерживается сокращения: Gb,Mb,Kb
`t -diff - вычислить кто почти достиг придела в диапазоне: yes|no. Default no
`t -min - минимальный размер, используется в паре с -size
`t---------------------------------------------------------------------------
`t Пример:
`t ./user-dir-size.ps1 -path ""E:\Homes\"" -size 1Gb
`t ./user-dir-size.ps1 -path ""E:\Homes\"" -size 1Gb -diff yes -min 900Mb"
if ((!$diff) -or ($diff -eq "no")) {
if (!$path -or !$size ) {
write-warning $text ;
return
}
else{
Get-ChildItem -LiteralPath $path |
Where-Object {$_.PSIsContainer} |
ForEach-Object {
$u=$_
$u | Get-ChildItem -Recurse |
Measure-Object Length -Sum |
Where-Object {($_.sum -gt $size)} |
Select @{name="Name"; expression={$u.name}},
count,
@{n="Summ"; e={"{0:n2}Mb" -f ($_.sum/1Mb)}}
} | ConvertTo-Html -Head " <link rel='stylesheet' href='styles.css' type='text/css' />" |Out-file "Превышена квота.html"
}
}
else {
if ((!$path -or !$size -or !$min) -or ($diff -ne "yes")) {
write-warning $text ;
return
}
else {Get-ChildItem -LiteralPath $path |
Where-Object {$_.PSIsContainer} |
ForEach-Object {
$u=$_
$u | Get-ChildItem -Recurse |
Measure-Object Length -Sum |
Where-Object {($_.sum -gt $min) -and ($_.sum -lt $size)} |
Select @{name="Name"; expression={$u.name}},
count,
@{n="Summ"; e={"{0:n2}Mb" -f ($_.sum/1Mb)}}
}| ConvertTo-Html -Head " <link rel='stylesheet' href='styles.css' type='text/css' />" |Out-file "Близок к превышению.html"
}
}
#$diff = "no";
$text = "`n
`t Надо использовать следующий синтаксис скрипта:
`t -path - путь до домашней папки
`t -size - размер папки, поддерживается сокращения: Gb,Mb,Kb
`t -diff - вычислить кто почти достиг придела в диапазоне: yes|no. Default no
`t -min - минимальный размер, используется в паре с -size
`t---------------------------------------------------------------------------
`t Пример:
`t ./user-dir-size.ps1 -path ""E:\Homes\"" -size 1Gb
`t ./user-dir-size.ps1 -path ""E:\Homes\"" -size 1Gb -diff yes -min 900Mb"
if ((!$diff) -or ($diff -eq "no")) {
if (!$path -or !$size ) {
write-warning $text ;
return
}
else{
Get-ChildItem -LiteralPath $path |
Where-Object {$_.PSIsContainer} |
ForEach-Object {
$u=$_
$u | Get-ChildItem -Recurse |
Measure-Object Length -Sum |
Where-Object {($_.sum -gt $size)} |
Select @{name="Name"; expression={$u.name}},
count,
@{n="Summ"; e={"{0:n2}Mb" -f ($_.sum/1Mb)}}
} | ConvertTo-Html -Head " <link rel='stylesheet' href='styles.css' type='text/css' />" |Out-file "Превышена квота.html"
}
}
else {
if ((!$path -or !$size -or !$min) -or ($diff -ne "yes")) {
write-warning $text ;
return
}
else {Get-ChildItem -LiteralPath $path |
Where-Object {$_.PSIsContainer} |
ForEach-Object {
$u=$_
$u | Get-ChildItem -Recurse |
Measure-Object Length -Sum |
Where-Object {($_.sum -gt $min) -and ($_.sum -lt $size)} |
Select @{name="Name"; expression={$u.name}},
count,
@{n="Summ"; e={"{0:n2}Mb" -f ($_.sum/1Mb)}}
}| ConvertTo-Html -Head " <link rel='stylesheet' href='styles.css' type='text/css' />" |Out-file "Близок к превышению.html"
}
}
Таблица стилей styles.css
body {
background-color: #CCC;
}
body,table,td,th {font-family:Tahoma; color:black;Font-Size;12pt}
th {
font-weight:bold;
background-color: #99F ;
}
td {background-color: white; }
table {
background-color: #000;
text-align: center;
}
background-color: #CCC;
}
body,table,td,th {font-family:Tahoma; color:black;Font-Size;12pt}
th {
font-weight:bold;
background-color: #99F ;
}
td {background-color: white; }
table {
background-color: #000;
text-align: center;
}
Данный скрипт считает общий объем домашней папки и выводи в красивую html табличку тех товарищей, чей объем папки превысил 1Gb места

.gif)
