1

하늘빛 Powershell Runbook을 사용하여 하늘빛 가상 머신에서 powershell 스크립트를 실행하고 있습니다. Azure 리소스 관리자 기능을 사용할 때 원격 스크립트의 출력을 얻는 방법을 찾지 못했습니다.이 기능은 배포에 사용해야합니다. 이처럼 보이는 '가 아닌 자원 관리자'방법을 사용하여 많은 예제가 있습니다Azure Resource Manager를 사용할 때 어떻게 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 

을하지만 출력은 완전히 다른 내가 표준 출력 또는 오류 출력을 포함 아무것도 찾을 수 있습니까 : 동일한 코드 내 자원 관리자 버전에 꽤 비슷합니다.

아무도 하늘색 자원 관리자 기능을 사용하여 출력을 검색하는 방법을 알고 있습니까?

감사

답변

1

확인

기독교 Erhardt는

, 내가 답을 발견! 당신은 항상

$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

처럼 뭔가를 반환은 Get-AzureRmVmDiagnosticExtension 명령의 도움으로 결과를 조회 할 수 있습니다,하지만 당신은 볼 수 없습니다 당신의 스크립트 출력. 누구든지 스크립트의 출력을 보는 방법을 알고 있습니까?

0

내 테스트에서 Get-AzureRmVMExtension을 검색 할 수도 있습니다. 논리적으로는 논리적으로 사용할 수 있습니다. -Status 매개 변수를 포함해야합니다. 그렇지 않으면 상태 및 하위 상태 값을 다시 얻지 못합니다. 자원 관리자 템플릿의 출력 섹션에서 검색하는 경우 (필자는 하드 코딩 된 제로 인덱스 좋아 아니에요 있지만) 또한

,이 같은 작품 :

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