Server monitoring powershell scripts
Budget: $15 – $25 USD
We are looking for a powershell programer to make monitoring scripts for us that will report to our RMM system via their powershell integration:
Example powershell script:
Import-Module $env:SyncroModule
$ExpectedForwarders = $ExpectedForwarders -split ","
$ForwarderAddresses = (get-dnsserverforwarder).ipaddress.ipaddresstostring
$DNSServerTest = foreach ($forwarder in $ForwarderAddresses) {
[PSCustomObject]@{
Forwarder = $forwarder
ForwarderTest = (Test-DNSServer -context forwarder -IPAddress $Forwarder).result
TCPTest = (Test-NetConnection -ComputerName $forwarder -Port 53).TcpTestSucceeded
Resolutiontest = if ($null -ne (Resolve-DnsName -Server $forwarder -Name "Google.com" -DnsOnly).ipaddress) { $true } else { $false }
}
}
foreach ($TestedForwarder in $DNSServerTest) {
if ($TestedForwarder.forwarder -notin $ExpectedForwarders) { Rmm-Alert -Category 'DNS' -body "The expected forwarders don't match the configured forwarders: $($TestedForwarder.Forwarder)" }
if ($TestedForwarder.ForwarderTest -ne "Success") { Rmm-Alert -Category 'DNS' -body "$($TestedForwarder.forwarder) has not passed the Forwarder Test" }
if ($TestedForwarder.TCPTest -ne $true) { Rmm-Alert -Category 'DNS' -body "$($TestedForwarder.forwarder) has not passed the TCP Port Test" }
if ($TestedForwarder.Resolutiontest -ne $true) { Rmm-Alert -Category 'DNS' -body "$($TestedForwarder.forwarder) has not passed the Forwarder Test" }
}
Example powershell script:
Import-Module $env:SyncroModule
$ExpectedForwarders = $ExpectedForwarders -split ","
$ForwarderAddresses = (get-dnsserverforwarder).ipaddress.ipaddresstostring
$DNSServerTest = foreach ($forwarder in $ForwarderAddresses) {
[PSCustomObject]@{
Forwarder = $forwarder
ForwarderTest = (Test-DNSServer -context forwarder -IPAddress $Forwarder).result
TCPTest = (Test-NetConnection -ComputerName $forwarder -Port 53).TcpTestSucceeded
Resolutiontest = if ($null -ne (Resolve-DnsName -Server $forwarder -Name "Google.com" -DnsOnly).ipaddress) { $true } else { $false }
}
}
foreach ($TestedForwarder in $DNSServerTest) {
if ($TestedForwarder.forwarder -notin $ExpectedForwarders) { Rmm-Alert -Category 'DNS' -body "The expected forwarders don't match the configured forwarders: $($TestedForwarder.Forwarder)" }
if ($TestedForwarder.ForwarderTest -ne "Success") { Rmm-Alert -Category 'DNS' -body "$($TestedForwarder.forwarder) has not passed the Forwarder Test" }
if ($TestedForwarder.TCPTest -ne $true) { Rmm-Alert -Category 'DNS' -body "$($TestedForwarder.forwarder) has not passed the TCP Port Test" }
if ($TestedForwarder.Resolutiontest -ne $true) { Rmm-Alert -Category 'DNS' -body "$($TestedForwarder.forwarder) has not passed the Forwarder Test" }
}