如何通过Azure门户获取VM指定路径XML文件的值以查看软件版本
能否通过Azure门户获取所有Azure VM中指定路径下XML文件的值?
直接通过Azure门户的原生基础功能无法直接提取所有VM指定路径下XML文件的值,但可以通过组合Azure的其他服务实现这个需求,以下是几种可行方案:
Azure Policy + 来宾配置(Guest Configuration)
- 创建自定义来宾配置策略,定义要检查的XML文件路径以及需要提取的节点值(比如软件版本对应的XML节点)。
- 确保目标VM已安装Guest Configuration代理(Azure VM默认预装,非Azure VM需加入Azure Arc)。
- 配置完成后,在Azure门户的「策略」面板中查看所有VM的合规性报告,报告中会包含提取到的XML节点值,以此查看每台VM的软件版本。
Azure Automation Runbook
- 在Azure门户中创建PowerShell或Python类型的Runbook,编写脚本通过Azure VM代理远程连接到目标VM,读取指定路径的XML文件并提取版本信息。
- 将提取到的版本数据存入Azure Monitor Logs或存储账户,之后可在门户的「Log Analytics」中查询、汇总所有VM的版本信息。
- 简单PowerShell脚本示例:
# 替换为你的VM和资源组名称 $vmName = "TargetVM" $resourceGroup = "VMResourceGroup" # 远程执行脚本读取XML并提取版本 Invoke-AzVMRunCommand -ResourceGroupName $resourceGroup -VMName $vmName -CommandId 'RunPowerShellScript' -ScriptString { $xmlFilePath = "C:\App\Config\Version.xml" $xmlDoc = [xml](Get-Content $xmlFilePath) # 替换为你的XML节点路径 $softwareVersion = $xmlDoc.ApplicationInfo.Version Write-Output $softwareVersion }
Log Analytics代理 + 自定义日志解析
- 在所有目标VM上安装Log Analytics代理,在Azure门户中配置自定义日志收集规则,指定要收集的XML文件路径。
- 利用Kusto查询语言在「Log Analytics」中解析收集到的XML原始数据,提取软件版本并进行汇总展示。
- 简单Kusto查询示例:
CustomLogs | where Computer != "" | parse RawData with * "<Version>" softwareVersion "</Version>" * | project Computer, softwareVersion | summarize by Computer, softwareVersion
以上方案都可以在Azure门户内完成操作,最终实现批量查看所有VM上的软件版本信息。
内容的提问来源于stack exchange,提问作者Marvin B.
相关产品推荐
相关产品推荐

