Hi Guys,
I do not see what is not correct about this xml output...
This is the code in powershell :
#-----Please adjust to your Exchange server:
$CURI="http://myserver/PowerShell/"
#--------------
Function SizeInBytes ($itemSizeString)
{
$posOpenParen = $itemSizeString.IndexOf("(") + 1
$numCharsInSize = $itemSizeString.IndexOf(" bytes") - $posOpenParen
$SizeInBytes = $itemSizeString.SubString($posOpenParen,$numCharsInSize).Replace(",","")
return $SizeInBytes
}
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $CURI -Authentication Kerberos
Import-PSSession $Session -DisableNameChecking
$dbs = Get-MailboxDatabase -Status
$result+="<prtg>`r`n"
foreach($db in $dbs)
{
$dbname=$db.name
$dbsize=SizeInBytes($db.DatabaseSize)
$whitespace=SizeInBytes($db.availablenewmailboxspace)
$edbFilePath = ("\\"+$db.ServerName+"\"+ $db.EdbFilePath.tostring().replace(":","$"))
$i = $edbFilePath.LastIndexOf('\')
$edbFilePath = $edbFilePath.Remove($i+1)
$guid = $db.Guid.ToString()
$dir = (get-childitem $edbFilePath | where { $_.Name.Contains($guid) })
$idxdir=$edbFilePath+$dir
$idxsize=(Get-ChildItem $idxdir | Measure-Object -Property Length -Sum).Sum
$result+=" <result>`r`n"
$result+=" <channel>DB-Size "+$dbname+"</channel>`r`n"
$result+=" <unit>BytesFile</unit>`r`n"
$result+=" <value>"+$dbsize+"</value>`r`n"
$result+=" </result>`r`n"
$result+=" <result>`r`n"
$result+=" <channel>Whitespace "+$dbname+"</channel>`r`n"
$result+=" <unit>BytesFile</unit>`r`n"
$result+=" <value>"+$whitespace+"</value>`r`n"
$result+=" </result>`r`n"
$result+=" <result>`r`n"
$result+=" <channel>Size Index "+$dbname+"</channel>`r`n"
$result+=" <unit>BytesFile</unit>`r`n"
$result+=" <value>"+$idxsize+"</value>`r`n"
$result+=" </result>`r`n"
}
$result+="</prtg>`r`n"
$result
Exit 0
My result
PS C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML> C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML\Luktdit.ps1
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.0 tmp_0odkiko5.l0w {Add-ADPermission, Add-AvailabilityAddressSpace, Add-ContentFilterPhrase, Add-DatabaseAvailabilityGroupServer...}
<prtg>
<result>
<channel>DB-Size Mailbox Database 1820752587</channel>
<unit>BytesFile</unit>
<value>1072275456000</value>
</result>
<result>
<channel>Whitespace Mailbox Database 1820752587</channel>
<unit>BytesFile</unit>
<value>24879923200</value>
</result>
<result>
<channel>Size Index Mailbox Database 1820752587</channel>
<unit>BytesFile</unit>
<value>1072545885175</value>
</result>
<result>
<channel>DB-Size TestDB</channel>
<unit>BytesFile</unit>
<value>114756157440</value>
</result>
<result>
<channel>Whitespace TestDB</channel>
<unit>BytesFile</unit>
<value>108396544</value>
</result>
<result>
<channel>Size Index TestDB</channel>
<unit>BytesFile</unit>
<value>114933014528</value>
</result>
<result>
<channel>DB-Size NewUsers</channel>
<unit>BytesFile</unit>
<value>259981312</value>
</result>
<result>
<channel>Whitespace NewUsers</channel>
<unit>BytesFile</unit>
<value>110428160</value>
</result>
<result>
<channel>Size Index NewUsers</channel>
<unit>BytesFile</unit>
<value>259981312</value>
</result>
</prtg>
PS C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML>
What am i doing wrong?
Hi,
I would ask you to take a look into the following link, as it could be possible that you're using the wrong sensor for this script.
Kind regards.
Nov, 2019 - Permalink