2017-12-30 37 views
0

내 가입의 모든 VM을 해제한다고 가정, 내가 좋아하는 뭔가를 할 수 있습니다 거의 즉시 일어날 것작업 입력하거나 전달 데이터를 얻을

Get-AzureRmVm | Stop-AzureRmVM -Force -AsJob 

, 그리고 작업의 무리를 생성합니다 . 그 일자리의 유일한 문제는 각 일이 무엇을했는지에 대해 해독 할 수 없다는 것입니다. 그들은 모두 똑같이 보입니다.

State    : Completed 
HasMoreData   : True 
Location    : localhost 
StatusMessage  : Completed 
CurrentPSTransaction : 
Host     : System.Management.Automation.Internal.Host.InternalHost 
Command    : Stop-AzureRmVM 
JobStateInfo   : Completed 
Finished    : System.Threading.ManualResetEvent 
InstanceId   : dc0da9c0-5dc7-4186-86b8-c53c21e8c690 
Id     : 2 
Name     : Long Running Operation for 'Stop-AzureRmVM' 
PSJobTypeName  : AzureLongRunningJob`1 
Output    : {Microsoft.Azure.Commands.Compute.Models.PSComputeLongRunningOperation} 
Debug    : {[AzureLongRunningJob]: Starting cmdlet execution, setting for cmdlet confirmation required: 
         'False', [AzureLongRunningJob]: Completing cmdlet execution in RunJob 

는 그리고 출력은 다음과 같이 표시되는 VM이 ​​작업에 일하고 알아 내기 위해 나에게있는 방법을 제공하지

OperationId : 
Status  : Succeeded 
StartTime : 30/12/2017 12:03:58 
EndTime  : 30/12/2017 12:04:00 
Error  : 

합니다.
Get-Job | Get-Member -Force으로 작업 속성을 살펴 보았지만 아무 것도 찾을 수 없었습니다. 그게 저에게 (명령, 'jobstateinfo', 정보 등) 도움이 될 것입니다. System.Management.Automation 네임 스페이스를 보면 그 데이터를 얻는 방법에 대한 아이디어도 얻지 못했습니다.

나는 무엇이 직업에 전달되는지 검사 할 수있는 방법을 찾고 있습니다.

답변

0
State    : Completed 
HasMoreData   : True 

작업이 완료되었지만 출력이 아직 반환되지 않은 것처럼 보입니다. 출력 또는 결과를 검색하려면 Receive-Job 명령이 필요합니다.

$Jobs = Get-AzureRmVm | Stop-AzureRmVM -Force -AsJob 
$Jobs | Where-Object State -eq 'Completed' | Receive-Job -Keep 

Get-Help about_Jobs를 참조하십시오, 그리고 당신이 정말로 당신이 뭘 원하는지 파악하기 위해 Receive-Job 명령의 매개 변수를보고 싶을 것이다. 나는 또한 *-AzureRmVm 명령을 사용한 적이 없으므로 유의하십시오.

+0

그것은 틀린 가정입니다. 슬프게도. 그것들은 오직 하나의 객체, 즉 Microsoft.Azure.Commands.Compute.Models.PSComputeLongRunningOperation만을 리턴하고 그 객체는 의미있는 데이터를 가지고 있지 않습니다. 그리고 네,'rcjb' cmdlet에 대해 알고 있습니다. – 4c74356b41