Powershell для обновления пульса до cloudwatch - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь создать функцию обновления пульса сервера до cloudwatch. Но из приведенной ниже функции: эта функция не ломается. Я уверен, что допустил некоторые ошибки. Но я очень новичок в powershell, не могли бы вы помочь исправить это.

function Get-spooler{
$INSTANCE_ID=$(Invoke-WebRequest -Uri http://169.254.169.254/latest/meta-data/instance-id)
$service=Get-Service -Name Spooler 
write-host $INSTANCE_ID
write-host $service
write-host $service.Status
while($service.Status -eq 'Running')
{
aws --region ap-southeast-1 cloudwatch put-metric-data --metric-name Test13 --value 1 --namespace ssm  --dimensions InstanceId=$INSTANCE_ID
if ($service.Status -eq 'Stopped')
{
aws --region ap-southeast-1 cloudwatch put-metric-data --metric-name Test13 --value 0 --namespace ssm  --dimensions InstanceId=$INSTANCE_ID
}}}

1 Ответ

0 голосов
/ 30 января 2020
Сервис

$ сохраняет объект stati c во время его назначения. Таким образом, если служба была запущена, когда $service=Get-Service -Name Spooler $ service.status всегда будет равен «Работает».

Попробуйте: while((Get-Service -Name Spooler).Status -eq 'Running')

...