Я могу войти в систему, получить токен API с сервера и вернуть значения, которые я ищу. Чего я не смог сделать, так это заставить скрипт писать на хост, только если возвращаемое значение НЕ «Основное».
Я пока не совсем отправляю предупреждение командам MS, поскольку я строю этот модульный модуль по ходу работы.
В данный момент код всегда пишет "сбой" хосту, независимо от того,установленного мной значения. Первоначально я поместил простой оператор If -not match в функцию CAStatus, но я не хочу строить свою функцию оповещения в функции, которую я использую для получения статуса сервера
#Use login token to pull CA system status
Function CAStatus {
#URL and logon token in header
$system_summary_uri ="https://website.com"
$header_parameters = @{"Authorization" = CALogon}
#Get Summary info from primary CA server and only return its role
(Primary or DR)
$summary_query = Invoke-RestMethod -Uri $system_summary_uri -Method Get -
Headers $header_parameters -ContentType "application/json"
$summary_result = $summary_query.Vaults.Role[0]
return $summary_result
}
#Report if primary server fails
Function Notify {
if (CAStatus -eq "dr") {
Write-Host "fail"
}
}
castatus
Я ожидаю вывода«fail» только тогда, когда значение, возвращаемое вызовом API CAStatus, равно «DR». В противном случае я хочу, чтобы он ничего не делал.
Прямо сейчас, когда я запускаю CAStatus, я получаю возвращаемое значение "Primary", которое является правильным, поскольку сервер в настоящее время играет главную роль. Хост не должен выводить ничего, поскольку CAStatus не равен «dr», но все равно выдает «fail».