2017-12-30 37 views
0

Angenommen, ich möchte die VMs in meinem Abonnement auszuschalten alle, kann ich so etwas wie tun:Erhalten Sie Job-Eingang oder Daten an sie übergeben

Get-AzureRmVm | Stop-AzureRmVM -Force -AsJob 

Das fast augenblicklich geschehen würde, und wird eine Reihe von Arbeitsplätzen schaffen . Das einzige Problem mit diesen Jobs ist, dass ich nicht entziffern kann, was jeder Job gemacht hat. Alle sehen gleich aus.

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 

Und die Ausgabe sieht wie folgt aus:

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

Was mich keine Möglichkeit, auf dem um herauszufinden, gibt VM dieser Job arbeitete.
Ich habe versucht, die Job-Eigenschaften mit Get-Job | Get-Member -Force, aber ich konnte nichts finden, das würde mir helfen (Befehl, 'Jobstatistik', Informationen, usw.). Mit Blick auf die System.Management.Automation Namespace gab mir auch keine Ideen, wie Sie diese Daten erhalten.

Ich bin auf der Suche nach einer Möglichkeit zu überprüfen, was an den Job übergeben wird.

Antwort

0

Sieht so aus, als ob die Jobs beendet sind, aber ihre Ausgabe noch nicht zurückgegeben wurde. Sie benötigen den Befehl Receive-Job, um alle Ausgaben oder Ergebnisse abzurufen.

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

Siehe Get-Help about_Jobs, und Sie wollen wirklich an den Parametern des Receive-Job Befehl suchen, um herauszufinden, was Sie es tun wollen. Ich habe auch nie die *-AzureRmVm Befehle verwendet, also sei dir dessen bewusst.

+0

Das ist eine falsche Annahme, leider. Sie geben nur das einzelne Objekt zurück: 'Microsoft.Azure.Commands.Compute.Models.PSComputeLongRunningOperation' und dieses Objekt enthält keine aussagekräftigen Daten. und ja, mir ist das 'rcjb'-Cmdlet bekannt – 4c74356b41

Verwandte Themen