2017-12-30 41 views
0

私は私のサブスクリプション内のすべての仮想マシンをオフにしたいとし、私のような何かを行うことができますほぼ瞬時に起こるジョブ入力またはそれに渡されたデータを取得

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で仕事のプロパティを見てみましたが、私は(command、 'jobstateinfo'、情報など)助けてくれるものが見つかりませんでした。​​名前空間を見ると、そのデータを取得する方法についてのアイデアはありませんでした。

私は何がジョブに渡されるかを検査する方法を探しています。

答えて

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'コマンドレットを知っています – 4c74356b41

関連する問題