Compartilhar via


Criar agendamentos de atualização

É possível gerenciar agendamentos de atualização com o portal do Azure ou os novos módulos de cmdlet do PowerShell.

Para criar um agendamento de atualização no portal do Azure, veja Agendar uma implantação de atualização.

O módulo Az.Automation agora dá suporte à configuração do gerenciamento de atualizações no Azure PowerShell. O cmdlet New-AzAutomationUpdateManagementAzureQuery permite usar marcas, localização e pesquisas salvas a fim de configurar agendamentos de atualização para um grupo flexível de máquinas.

Script de exemplo

O script de exemplo nesta seção ilustra o uso de marcações e consultas para criar grupos dinâmicos de computadores aos que seja possível aplicar agendamentos de atualização. Ele executa as ações a seguir. É possível consultar as implementações das ações específicas ao criar seus próprios scripts.

  • Cria um agendamento de atualização da Automação do Azure que é executado todos os sábados às 8h.
  • Cria uma consulta para todos os computadores que corresponderem a estes critérios:
    • Implantado no local westus, eastus ou eastus2 do Azure.
    • Tem uma marca Owner aplicada com um valor definido como JaneSmith.
    • Tem uma marca Production aplicada com um valor definido como true.
  • Aplica o agendamento de atualização aos computadores consultados e define uma janela de atualização de duas horas.

Antes de executar o script de exemplo, faça logon usando o cmdlet Connect-AzAccount. Ao iniciar o script, forneça as seguintes informações:

  • A ID de assinatura de destino
  • O grupo de recursos de destino
  • O nome do workspace do Log Analytics
  • O nome da conta de Automação do 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

Próximas etapas

Confira exemplos de como implementar políticas comuns no Azure que podem ajudar a gerenciar seus servidores.