Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Get-SqlDatabaseSize {
- param (
- [string]$SqlServerName = "PERCY\SOUTHWIND"
- )
- $ConnectionString = "data source = $SqlServerName; initial catalog = master; trusted_connection = true;"
- $SqlConnection = New-Object System.Data.SqlClient.SqlConnection($ConnectionString)
- $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
- $SqlCmd.Connection = $SqlConnection
- $SqlCmd.CommandText = "
- select
- database_name = d.name,
- total_size_gb =
- convert(decimal(11, 2), sum(mf.size) * 8.0 / 1024 / 1024)
- from sys.master_files mf
- inner join sys.databases d
- on mf.database_id = d.database_id
- group by d.name;"
- $Output = New-Object System.Data.DataTable
- $sda = New-Object System.Data.SqlClient.SqlDataAdapter($SqlCmd)
- try {
- $sda.Fill($Output) | Out-Null
- }
- finally {
- $sda.Dispose()
- $SqlCmd.Dispose()
- $SqlConnection.Dispose()
- }
- $Databases = ( $Output |
- Select-Object @{Name = "ServerName"; Expression = { $SqlServerName }},
- @{Name = "DatabaseName"; Expression = { $_.database_name }},
- @{Name = "SizeGB"; Expression = { $_.total_size_gb }} |
- Sort-Object SizeGB -Descending )
- Write-Host "<?xml version='1.0' encoding='UTF-8' ?><prtg>";
- foreach($Database in $Databases){
- Write-Host @"
- <result>
- <channel>$($Database.DatabaseName)</channel>
- <value>$($Database.SizeGB)</value>
- <unit>CustomUnitk</unit>
- <CustomUnit>GB</CustomUnit>
- <float>1</float>
- </result>
- "@;
- }
- Write-Host "</prtg>";
- }
- Get-SqlDatabaseSize
Advertisement
Add Comment
Please, Sign In to add comment