Powershell azure runbook启用来宾级诊断

Powershell azure runbook启用来宾级诊断,powershell,automation,azure-devops,azure-storage,azure-runbook,Powershell,Automation,Azure Devops,Azure Storage,Azure Runbook,我正在编写PowerShell runbook,以查看azure订阅中的所有虚拟机,找出是否未启用来宾级监视并启用它 下面是我用来启用诊断的命令 Set-AzureRmVMDiagnosticsExtension -ResourceGroupName xxxxxx -VMName xxxxxx -DiagnosticsConfigurationPath $diagnosticsconfig_path -StorageAccountName xxxxxx 我正在考虑将diag xml文件存储在存

我正在编写PowerShell runbook,以查看azure订阅中的所有虚拟机,找出是否未启用来宾级监视并启用它

下面是我用来启用诊断的命令

Set-AzureRmVMDiagnosticsExtension -ResourceGroupName xxxxxx -VMName xxxxxx -DiagnosticsConfigurationPath $diagnosticsconfig_path -StorageAccountName xxxxxx
我正在考虑将diag xml文件存储在存储博客中,如何使用$diagnosticsconfig_path指向它

如果我使用

Get-AzureStorageBlobContent -blob "xxx.json" -Container xxx -Context $storageAccount.Context 

or

Get-AzureStorageFileContent -ShareName 'xxx' -Context $storageAccount.Context -path xxx.json 

runbook可以下载该文件,但如何在Set-AzureRmVMDiagnosticsExtension中将该文件称为diagpath

尝试下面的命令,您无需下载该文件,我们可以将路径直接指向blob url

$SAResourceGroupName="<Storage Account ResourceGroupName>"
$StorageAccountName="<StorageAccountName>"

$StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $SAResourceGroupName -AccountName $StorageAccountName).Value[1]
$Context=New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey

$tmpStart = Get-Date
$tmpEnd = $tmpStart.AddHours(2.0)
$SASToken = New-AzureStorageBlobSASToken -Blob "diagnostics_publicconfig.xml" -Container "111" -Context $Context -Permission r -StartTime $tmpStart -ExpiryTime $tmpEnd -FullURI

Set-AzureRmVMDiagnosticsExtension -ResourceGroupName joywebapp -VMName joyVM -DiagnosticsConfigurationPath "$SASToken" -StorageAccountName joystoragev2
$SAResourceGroupName=“”
$StorageAccountName=“”
$StorageAccountKey=(Get-AzureRmStorageAccountKey-ResourceGroupName$SAResourceGroupName-AccountName$StorageAccountName)。值[1]
$Context=新AzureStorageContext-StorageAccountName$StorageAccountName-StorageAccountKey$StorageAccountKey
$tmpStart=获取日期
$tmpEnd=$tmpStart.AddHours(2.0)

$SASToken=New AzureStorageBlobSASToken-Blob“diagnostics_publicconfig.xml”-容器“111”-上下文$Context-Permission r-StartTime$tmpStart-ExpiryTime$tmpEnd-FullURI 设置AzureRmVMDiagnosticsExtension-ResourceGroupName joywebapp-VMName joyVM-DiagnosticsConfigurationPath“$SASToken”-StorageAccountName joystoragev2

在运行手册中:


尝试下面的命令,您无需下载文件,我们可以将路径直接指向blob url

$SAResourceGroupName="<Storage Account ResourceGroupName>"
$StorageAccountName="<StorageAccountName>"

$StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $SAResourceGroupName -AccountName $StorageAccountName).Value[1]
$Context=New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey

$tmpStart = Get-Date
$tmpEnd = $tmpStart.AddHours(2.0)
$SASToken = New-AzureStorageBlobSASToken -Blob "diagnostics_publicconfig.xml" -Container "111" -Context $Context -Permission r -StartTime $tmpStart -ExpiryTime $tmpEnd -FullURI

Set-AzureRmVMDiagnosticsExtension -ResourceGroupName joywebapp -VMName joyVM -DiagnosticsConfigurationPath "$SASToken" -StorageAccountName joystoragev2
$SAResourceGroupName=“”
$StorageAccountName=“”
$StorageAccountKey=(Get-AzureRmStorageAccountKey-ResourceGroupName$SAResourceGroupName-AccountName$StorageAccountName)。值[1]
$Context=新AzureStorageContext-StorageAccountName$StorageAccountName-StorageAccountKey$StorageAccountKey
$tmpStart=获取日期
$tmpEnd=$tmpStart.AddHours(2.0)

$SASToken=New AzureStorageBlobSASToken-Blob“diagnostics_publicconfig.xml”-容器“111”-上下文$Context-Permission r-StartTime$tmpStart-ExpiryTime$tmpEnd-FullURI 设置AzureRmVMDiagnosticsExtension-ResourceGroupName joywebapp-VMName joyVM-DiagnosticsConfigurationPath“$SASToken”-StorageAccountName joystoragev2

在运行手册中:


谢谢你的精彩剧本。让我分步骤定义整个过程:


  • 转到,复制XML示例文件,粘贴到powershell并另存为XML

  • 选择一个存储帐户,选择一个容器并上载XML文件

  • 现在使用此脚本启用或更改现有存储帐户


  • 谢谢你的精彩剧本。让我分步骤定义整个过程:


  • 转到,复制XML示例文件,粘贴到powershell并另存为XML

  • 选择一个存储帐户,选择一个容器并上载XML文件

  • 现在使用此脚本启用或更改现有存储帐户


  • 感谢Joy的回复,以下是我尝试脚本集AzureRmVMDiagnosticsExtension时得到的结果:路径中的非法字符。我以前也尝试过类似的方法,手动创建SAS并将其输入变量$diagnosticsconfig_path,它给了我相同的错误。@Deb我在runbook中测试它,它也可以工作,请参阅我的更新,您能提供您的特定命令吗?尤其是您使用的
    -DiagnosticsConfigurationPath
    。$SASToken=New-AzureStorageBlobSASToken-Blob“GLD.json”-Container“脚本”-Context$Context-Permission r-StartTime$tmpStart-ExpiryTime$tmpEnd-FullURI Set AzureRmVMDiagnosticsExtension-ResourceGroupName deb_nonprod-VMName AZINF3001-DiagnosticsConfigurationPath$SASToken-StorageAccountName nonprodiagnostics980我也在Azure runbook中尝试过,但它给了我同样的错误。如果存储blob中有超过1个文件,这有关系吗?是的,这是有效的,奇怪的是它没有作为.json工作。然而,我对xml所做的是从
    https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/diagnostics-windows
    更改了资源id和storageaccount并应用了它。应用良好,但现在当我尝试更改门户中的设置(例如处理器时间的采样率)时,它会显示
    更新失败
    。同样在这种情况下,对于每个虚拟机,我都需要一个单独的xml,这可能会让人感到痛苦。感谢Joy的响应,以下是我在尝试脚本集AzureRmVMDiagnosticsExtension时得到的结果:路径中的非法字符。我以前也尝试过类似的方法,手动创建SAS并将其输入变量$diagnosticsconfig_path,它给了我相同的错误。@Deb我在runbook中测试它,它也可以工作,请参阅我的更新,您能提供您的特定命令吗?尤其是您使用的
    -DiagnosticsConfigurationPath
    。$SASToken=New-AzureStorageBlobSASToken-Blob“GLD.json”-Container“脚本”-Context$Context-Permission r-StartTime$tmpStart-ExpiryTime$tmpEnd-FullURI Set AzureRmVMDiagnosticsExtension-ResourceGroupName deb_nonprod-VMName AZINF3001-DiagnosticsConfigurationPath$SASToken-StorageAccountName nonprodiagnostics980我也在Azure runbook中尝试过,但它给了我同样的错误。如果存储blob中有超过1个文件,这有关系吗?是的,这是有效的,奇怪的是它没有作为.json工作。然而,我对xml所做的是从
    https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/diagnostics-windows
    更改了资源id和storageaccount并应用了它。应用良好,但现在当我尝试更改门户中的设置(例如处理器时间的采样率)时,它会显示
    更新失败
    。同样在这种情况下,对于每个VM,我都需要一个单独的xml,这可能是一个难题。“粘贴到powershell并另存为xml”powershell如何保存文件?另存为-xml。今天,我创建了一个更好的脚本。整个过程是自动化的。“粘贴到powershell并另存为XML”powershell如何保存文件?另存为-XML。今天我创建了一个更好的脚本。整个过程是自动化的。