2017-12-22 9 views
0

PowerShell에서 응용 프로그램 서버 그룹의 상태 검사 시스템을 구축하려고합니다. 각기 다른 특정 응용 프로그램을 실행하는 서버가 8 대 있으므로 자체 서비스가 실행 중이어야합니다. 나는이 서버가 명령의 기본 설정을 실행하려면 :웹 사이트 서비스에 데이터를 보내는 방법은 무엇입니까?

$RequiredServices = "Service1","Service2" 
Get-Service -Name $RequiredServices | Select-Object name,status 
Test-Connection -ComputerName $DomainController 

나는 다음 XML이나 HTML을 통해 SOAP이나 REST와 같은 로컬 웹 서비스에이 정보를 보내려고, 그래서 나는의 빠른 스냅 샷을 얻을 수 있습니다 웹 페이지의 모든 응용 프로그램 서비스 웹 페이지 부분을 알아낼 수는 있지만이 데이터를 웹 서비스에 보내는 가장 좋은 방법을 혼란스럽게 생각합니까? Invoke-WebRequest?

+0

@Raptor 감사 랩터 이상 다른 대안입니다! –

답변

1

테스트 결과를 요청 본문의 웹 서비스에 전달할 수 있습니다. 예를 들어 웹 서비스를 호출하여 body의 결과를 json으로 전달하는 예제가 있습니다.

본문은 원하는 모든 데이터 구조를 나타낼 수 있지만 아래는 그 예입니다.

$Body = @{ 
    "TestName" = $TestName 
    "Results" = @(
     @{ 
      "ServiceName" = $ServiceName 
      "Status" = $Status 
     } 
    ) 
} | ConvertTo-Json 

$contentType = "application/json" 
Invoke-WebRequest -TimeoutSec $TimeoutSec ` 
        -Method PUT ` 
        -Uri $Uri ` 
        -ContentType $contentType ` 
        -UseBasicParsing ` 
        -Body $Body 

:

here를 참조하십시오 : 당신이 나머지 API를 여러 번 호출하는 경우가 꼬리를 가진 전화를 위로해야하고, 그래서 , 당신은, 당신의 연결을 정리해야합니다 상세 사항은.

으로 @Clijsters는 Invoke-RestMethod 지적 Invoke-WebRequest

+0

당신의 대답은 포괄적이고 묵직한 것이지만, Invoke-RestMethod의 단점은 무엇입니까? – Clijsters

+1

@Clijsters 좋은 점과 유효한 질문으로, 여기에 설명 된 문제에 매료되어 Invoke-WebRequest로 전환했습니다. https://social.technet.microsoft.com/wiki/contents/articles/29863.powershell-rest -api-invoke-restmethod-gotcha.aspx Invoke-WebRequest에서 같은 문제가 발생하지 않는다고 생각한 기사를 찾기 전에이 기사는 Invoke-RestMethod로 돌아 가지 않았습니다. 둘 중 하나가 작동합니다. –

+0

@DavidMartin 답변 해 주셔서 감사합니다. 귀하의 도움에 감사드립니다. –