/ / L'output di Get-Azure VM è di-powershell, azzurro, attività pianificate

L'output di Get-Azure VM è di-powershell, azzurro, attività pianificate

Ho uno script PowerShell che accetta un account Azure come input e genera una tabella con ogni sottoscrizione come una colonna con le dimensioni del conteggio per tipo di macchina virtuale, stati, ecc.

   $VMs = Get-AzureVM | where {$_.Status -eq "StoppedVM"} | select Name, ServiceName, Status
$VMStoppedCnt = $VMs.Count

Quando eseguo il file ps1 in PowerShell o ISE PowerShell, i valori $ VM.Count sono come previsto. Tuttavia, quando viene eseguito come operazione pianificata tutti i valori = 0 (emette comunque la tabella).

Esempio di output quando eseguito tramite PowerShell:

Subscription    D2  D4  D14 A1  A2  A3  A7  G4  TotalVMs    TotalKnownVMs   NonStandardVMs  Running Stopped StoppedDeallocated

Repro Labs 4 5 0 0 0 0 0 0 13 9 4 9 4

Esempio di output durante l'esecuzione del task scheduler che chiama powershell:

Subscription    D2  D4  D14 A1  A2  A3  A7  G4  TotalVMs    TotalKnownVMs   NonStandardVMs  Running Stopped StoppedDeallocated

Repro Labs 0 0 0 0 0 0 0 0 0 0 0 0 0

risposte:

0 per risposta № 1

Ohhh mio !!! Sto rispondendo a questa domanda per la quinta volta. L'utilità di pianificazione di Windows non ha eseguito esattamente il file di PowerShell, tuttavia mostrerà l'attività come completata. La pianificazione di PowerShell di Azure non può essere eseguita utilizzando l'utilità di pianificazione di Windows perché non si connette effettivamente alla console di Azure a causa della mancanza di credenziali / certificato o qualcosa. Vai al modello del runbook di Azure usando il portale. usa lo stesso codice. Scommetto che non puoi farlo usando Windows Task Scheduler.

un. La maggior parte delle imp - Vai alla scheda ASSET e aggiungi le credenziali di Windows PowerShell appropriate (semplicemente puoi usare username e password, lo stesso che usi per accedere al portale azzurro).

b. Aggiungi il tuo codice nel runbook. Supponiamo che il nome della credenziale dell'automazione PowerShell sia autoaccount e che il nome dell'abbonamento sia xxx. In questo caso il flusso di lavoro sarà-

workflow autoaccount
{
$Cred = Get-AutomationPSCredential -Name
Add-AzureAccount -Credential $Cred
Select-AzureSubscription -SubscriptionName “xxx”
inlineScript
{
*YOUR CODE HERE*
}
}

c. Dopo questo puoi programmare il tuo runbook secondo le tue necessità.

Spero che questo ti possa aiutare-

http://azure.microsoft.com/blog/2014/11/25/introducing-the-azure-automation-script-converter/ http://azure.microsoft.com/en-us/documentation/articles/automation-create-runbook-from-samples/

Grazie.