2016-07-01 181 views
1

我正在使用Azure Powershell Runbook在Azure虛擬機上執行PowerShell腳本。當我使用Azure資源管理器功能時,找不到用於我的部署的遠程腳本輸出的方法。有使用「非資源管理器」的方式,它看起來像這樣有很多的例子:如何在使用Azure資源管理器時獲得CustomScriptExtenstion的輸出?

# Execute remote script 
$Vm = Get-AzureVM -ServiceName "DSCDemo" -Name "DSCPull" 
Set-AzureVMCustomScriptExtension -ContainerName scripts -StorageAccountName psmag -FileName user.ps1 -Run user.ps1 -VM $vm | Update-AzureVM -Verbose  
# Get output  
$vm = Get-AzureVM -ServiceName DSCDemo -Name DSCPull  
$output = $Vm.ResourceExtensionStatusList.ExtensionSettingStatus 

的$輸出變量則包含腳本,已執行的標準和錯誤輸出。同樣的代碼查找我的資源管理器的版本非常相似:

#Execute remote script 
$vm = Get-AzureRmVM -Name "DSCPull" -ResourceGroupName $ResourceGroupName 
$result = Set-AzureRmVMCustomScriptExtension -ResourceGroupName $ResourceGroupName ` 
               -VMName "DSCPull" ` 
               -Name 'user' ` 
               -Location $vm.Location ` 
               -StorageAccountName psmag ` 
               -StorageAccountKey '<key>' ` 
               -FileName "user.ps1" ` 
               -ContainerName "scripts" ` 
               -RunFile "user.ps1" 
$output = Get-AzureRmVM -Name $VMName -ResourceGroupName $ResourceGroupName -Status 

但產量是完全不同的,我也找到任何包含標準輸出或錯誤輸出。

有誰知道如何在azure資源管理器功能的幫助下檢索輸出嗎?

問候

基督教ERHARDT

回答

1

好吧,我找到了答案!您可以隨時查詢的結果與Get-AzureRmVmDiagnosticExtension命令的幫助

$output = Get-AzureRmVMDiagnosticsExtension -ResourceGroupName $ResourceGroupName -VMName 'DSCPull' -Name 'user' -Status 
$output.SubStatuses[0] 
$output.SubStatuses[1] 

將返回喜歡

Code   : ComponentStatus/StdOut/succeeded 
Level   : Info 
DisplayStatus : Provisioning succeeded 
Message  : my output on remote 
Time   : 


Code   : ComponentStatus/StdErr/succeeded 
Level   : Info 
DisplayStatus : Provisioning succeeded 
Message  : 
Time   : 
0

東西,你只能查詢出來的腳本信息及其狀態,但你不能看到輸出你的腳本。任何人都知道如何看到腳本的輸出?

0

在我的測試中,它也可以被檢索Get-AzureRmVMExtension,這可以說是更合理的使用。你必須包含-Status參數,否則你不會得到狀態和子狀態值。

另外,如果在資源管理器模板的輸出部分檢索它,像這樣的工作(雖然我不喜歡硬編碼的零指數):

"outputs": { 
 
    "foo": { 
 
     "type": "string", 
 
\t  "value": "[reference('Microsoft.Compute/virtualMachines/my-vm/extensions/my-script').instanceView.substatuses[0].message)]" 
 
\t } 
 
}

相關問題