This should do it -
Set-ExecutionPolicy RemoteSigned
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
Function Get-DatabaseFilesBySpaceAvailable ([Microsoft.SqlServer.Management.Smo.Server] $SmoSqlServer
, [decimal] $sizeThreshold=0.80)
{
$sqlServer.Databases | Where-Object{$_.Status -eq "Normal"} `
| Select-Object FileGroups -ExpandProperty FileGroups `
| Select-Object Files -ExpandProperty Files `
| Where-Object {$_.MaxSize -gt -1} `
| Where-Object {$_.UsedSpace -gt ($_.MaxSize * $sizeThreshold)} `
| Select UsedSpace,Size,MaxSize,FileName
}
$sqlServer = New-Object("Microsoft.SqlServer.Management.Smo.Server") "Server\Instance"
Get-DatabaseFilesBySpaceAvailable -SmoSqlServer $sqlServer| FT -autosize
Cheers
http://twitter.com/widba
http://widba.blogspot.com/