gpt4 book ai didi

Azure 更新管理生成 csv 格式的补丁状态报告

转载 作者:行者123 更新时间:2023-12-03 00:22:14 25 4
gpt4 key购买 nike

我正在创建一个 Azure 自动化 Runbook,以生成有关管理组下虚拟机的补丁状态的报告。

使用的查询如下

联合更新,工作空间('xxxx').操作,工作空间('yyyy').操作
|其中 TimeGenerate > ago(10d)|其中分类(“安全更新”、“关键更新”、“关键和安全更新”)和 ResourceType == “virtualMachines”|按计算机、分类、更新状态、产品、发布日期、MSRCSeverity 汇总更新=makeset(标题)|按更新状态排序

$结果 = Invoke-AzOperationalInsightsQuery -WorkspaceId $WorkspaceID -Query $query

这里我需要从同一管理组下的不同订阅查询日志分析工作区。运行方式帐户已在管理组级别将 RBAC 设置为“Log Analytics Reader”。但查询结果是空记录集,同一查询直接在 Log Analytics 工作区上执行时会获取记录。

任何关于我在这里缺少的内容的指导都会有很大的帮助。谢谢

最佳答案

此命令Invoke-AzOperationalInsightsQuery只能对一个订阅执行操作,因此在您的情况下,您需要使用循环来设置 Set-AzContext -Subscription <subscription-id> 的订阅,要获取您的 RunAs 帐户可以访问的所有订阅,请使用 Get-AzSubscription .

示例:

$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName

"Logging in to Azure..."
Connect-AzAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}

$query = "xxxxxx"
$subs = Get-AzSubscription
foreach($sub in $subs){
Set-AzContext -Subscription $sub.Id
#do the things you want e.g. $result = Invoke-AzOperationalInsightsQuery -WorkspaceId $WorkspaceID -Query $query

}

这只是一个示例,要使其正常工作,还记得循环不同的 $WorkspaceID在脚本中。

关于Azure 更新管理生成 csv 格式的补丁状态报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66435612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com