-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGet-CitrixNetscalerDNSNameServerDetails.ps1
65 lines (54 loc) · 1.98 KB
/
Get-CitrixNetscalerDNSNameServerDetails.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Import-Module NetScalerConfiguration
###SEPARATE USERNAME AND PASSWORD
Function SecureStringToString($value)
{
[System.IntPtr] $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($value);
try
{
[System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($bstr);
}
finally
{
[System.Runtime.InteropServices.Marshal]::FreeBSTR($bstr);
}
}
$nsCreds = Get-Credential -credential ${CREDENTIAL}
[string] $nsUsername = $nsCreds.Username
[string] $nsPassword = SecureStringToString $nsCreds.Password
###SET UP BASIC CONNECTION
Set-NSMgmtProtocol -Protocol http
$nsAddress = '${IP}'
$nsSession = Connect-NSAppliance -NSAddress $nsAddress -NSUserName $nsUsername -NSPassword $nsPassword
$nsResponse = Invoke-NSNitroRestApi -NSSession $nsSession `
-OperationMethod GET `
-ResourceType 'dnsnameserver'
$swOutputMsg = @()
$swOutputStat = 0
### NOTIFY IF NO NAME SERVERS ARE CONFIGURED
if (!$($nsResponse.dnsnameserver)) {
Write-Host "Message.NameServers: No Name Server entries were found!"
Write-Host "Statistic.NameServers: 1"
exit 0
}
### VERIFY ALL NAME SERVER ENTRIES ARE "UP"
foreach ($nameserver in $nsResponse.dnsnameserver) {
$nameserverAddress = $nameserver.ip
$nameserverState = $nameserver.state
$nameserverStatus = $nameserver.nameserverstate
if ($nameserverState -ne 'ENABLED') {
$swOutputMsg += "Name Server $nameserverAddress is set to $nameserverState "
}
elseif ($nameserver.nameserverstate -eq 'UP') {
$swOutputMsg += "$nameserverAddress - $nameserverStatus"
}
else {
$swOutputStat++
$swOutputMsg += "Name Server $nameserverAddress is $nameserverStatus "
}
}
$message = $swOutputMsg -join '<br/>'
### CLOSE THE NITRO API SESSION
Disconnect-NSAppliance -NSSession $nsSession
### OUTPUT TO SOLARWINDS
Write-Host "Message.NameServers: $message"
Write-Host "Statistic.NameServers: $swOutputStat"