你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建更新计划

可以使用 Azure 门户或新的 PowerShell cmdlet 模块来管理更新计划。

若要通过 Azure 门户创建更新计划,请参阅计划更新部署

Az.Automation 模块现在支持使用 Azure PowerShell 配置更新管理。 通过 New-AzAutomationUpdateManagementAzureQuery cmdlet,你可以使用标记、位置和保存的搜索结果为一组灵活的计算机配置更新计划。

示例脚本

本节中的示例脚本说明了如何使用标记和查询来创建你可以将更新计划应用到其中的动态计算机组。 它将执行以下操作。 创建自己的脚本时,可以参考特定操作的实现。

  • 创建在每周六上午 8:00 运行的 Azure 自动化更新计划。
  • 为满足以下条件的任何计算机创建查询:
    • 部署在 westuseastuseastus2 Azure 位置。
    • 已应用 Owner 标记,其值设置为 JaneSmith
    • 已应用 Production 标记,其值设置为 true
  • 将更新计划应用于所查询的计算机,并设置一个两小时的更新时间范围。

在运行示例脚本前,需要使用 Connect-AzAccount cmdlet 登录。 启动脚本时,需提供以下信息:

  • 目标订阅 ID
  • 目标资源组
  • 你的 Log Analytics 工作区名称
  • 你的 Azure 自动化帐户名称

    <#
        .SYNOPSIS
            This script orchestrates the deployment of the solutions and the agents.
        .Parameter SubscriptionName
        .Parameter WorkspaceName
        .Parameter AutomationAccountName
        .Parameter ResourceGroupName

    #>

    param (
        [Parameter(Mandatory=$true)]
        [string] $SubscriptionId,

        [Parameter(Mandatory=$true)]
        [string] $ResourceGroupName,

        [Parameter(Mandatory=$true)]
        [string] $WorkspaceName,

        [Parameter(Mandatory=$true)]
        [string] $AutomationAccountName,

        [Parameter(Mandatory=$false)]
        [string] $scheduleName = "SaturdayCriticalSecurity"
    )

    Import-Module Az.Automation

    $startTime = ([DateTime]::Now).AddMinutes(10)
    $schedule = New-AzAutomationSchedule -ResourceGroupName $ResourceGroupName `
        -AutomationAccountName $AutomationAccountName `
        -StartTime $startTime `
        -Name $scheduleName `
        -Description "Saturday patches" `
        -DaysOfWeek Saturday `
        -WeekInterval 1 `
        -ForUpdateConfiguration

    # Using AzAutomationUpdateManagementAzureQuery to create dynamic groups.

    $queryScope = @("/subscriptions/$SubscriptionID/resourceGroups/")

    $query1Location =@("westus", "eastus", "eastus2")
    $query1FilterOperator = "Any"
    $ownerTag = @{ "Owner"= @("JaneSmith") }
    $ownerTag.Add("Production", "true")

    $DGQuery = New-AzAutomationUpdateManagementAzureQuery -ResourceGroupName $ResourceGroupName `
        -AutomationAccountName $AutomationAccountName `
        -Scope $queryScope `
        -Tag $ownerTag

    $AzureQueries = @($DGQuery)

    $UpdateConfig = New-AzAutomationSoftwareUpdateConfiguration -ResourceGroupName $ResourceGroupName `
        -AutomationAccountName $AutomationAccountName `
        -Schedule $schedule `
        -Windows `
        -Duration (New-TimeSpan -Hours 2) `
        -AzureQuery $AzureQueries `
        -IncludedUpdateClassification Security,Critical

后续步骤

请查看如何在 Azure 中实现常见策略的示例,这些策略可帮助管理服务器。