#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 ""