#User with Shell Access to Sophos UTM:
$Loginuser = "loginuser"
#Password for Loginuser:
$LoginUserPassword = "sshpassword"
$UTMHostnameorIP = "192.168.88.1"
#Create Credential Object
$LoginUserPasswordSec = ConvertTo-SecureString $LoginUserPassword -AsPlainText -Force
$LoginCreds = New-Object System.Management.Automation.PSCredential($Loginuser,$LoginUserPasswordSec)
#Confirm Powershell Version.
if ($PSVersionTable.PSVersion.Major -lt 3) {
Write-Output ""
Write-Output "1"
Write-Output "Powershell Version is $($PSVersionTable.PSVersion.Major) Requires at least 3.<7text> "
Write-Output ""
Exit
}
#Connect SSH Session
try {
$ConnectSSHSession = New-SSHSession -ComputerName $UTMHostnameorIP -Credential $LoginCreds -AcceptKey:$true
}
catch {
Write-Output ""
Write-Output "1"
Write-Output "Can't connect to UTM"
Write-Output ""
Exit
}
#Query Quarantine
try {
$StrQuarantine = (Invoke-SSHCommand -Command "find /var/storage/chroot-smtp/spool/quarantine -type f | wc -l" -Index $ConnectSSHSession.SessionId).Output
[int]$Quarantine = [convert]::ToInt32($StrQuarantine, 10)
}
catch {
Write-Output ""
Write-Output "1"
Write-Output "Can't query Qurantine mails"
Write-Output ""
Exit
}
if ($Quarantine -eq 1 -or $Quarantine -eq 0) {
$Quarantine = 0
} else {
$Quarantine = ($Quarantine -1)/2
}
#Query Output Queue (Spool)
try {
$StrOutput = (Invoke-SSHCommand -Command "find /var/storage/chroot-smtp/spool/output -type f | wc -l" -Index $ConnectSSHSession.SessionId).Output
[int]$Output = [convert]::ToInt32($StrOutput, 10)
}
catch {
Write-Output ""
Write-Output "1"
Write-Output "Can't query Output (spool) mails"
Write-Output ""
Exit
}
if ($Output -eq 1 -or $Output -eq 0) {
$Output = 0
} else {
$Output = ($Output -1)/2
}
#Query corrupt Queue
try {
$StrCorrupt = (Invoke-SSHCommand -Command "find /var/storage/chroot-smtp/spool/corrupt -type f | wc -l" -Index $ConnectSSHSession.SessionId).Output
[int]$Corrupt = [convert]::ToInt32($StrCorrupt , 10)
}
catch {
Write-Output ""
Write-Output "1"
Write-Output "Can't query corrupt mails"
Write-Output ""
Exit
}
if ($Corrupt -eq 1 -or $Corrupt -eq 0) {
$Corrupt = 0
} else {
$Corrupt = ($Corrupt -1)/2
}
#Disconnect SSH Session
$DisconnectSSHSession = Remove-SSHSession -Index $ConnectSSHSession.SessionId
#Write Results
write-host ""
Write-Host ""
Write-Host "Qurantine Mails"
Write-Host "$($Quarantine)"
Write-Host "Mails"
Write-Host "Mails"
Write-Host ""
Write-Host ""
Write-Host "Spooled Mails"
Write-Host "$($Output)"
Write-Host "Mails"
Write-Host "Mails"
Write-Host ""
Write-Host ""
Write-Host "Corrupt Mails"
Write-Host "$($Corrupt)"
Write-Host "Mails"
Write-Host "Mails"
Write-Host ""
write-host ""