Skip to content

Conversation

Copy link

Copilot AI commented Nov 20, 2025

Adds -ResiliencyView switch parameter to Get-AzVmssVM cmdlet to expose the ResilientVMDeletionStatus property, enabling customers to monitor the real-time status of automatic VM deletion retries without relying on provisioning status oscillation.

Changes

Model

  • Added ResilientVMDeletionStatus property to PSVirtualMachineScaleSetVM

Cmdlet

  • Added ResiliencyView switch parameter to Get-AzVmssVM
  • Passes VmssVMInstanceViewTypes.ResiliencyView expand to SDK when specified
  • Updated UserData parameter check to use .IsPresent (was == true)
  • Only applies to single VM retrieval (with InstanceId), not list operations

Documentation

  • Updated help with parameter description and example
  • Fixed typo: "Species" → "Specifies"

Tests

  • Added scenario test validating ResiliencyView parameter usage

Usage

Get-AzVmssVM -ResiliencyView -ResourceGroupName "rg" -VMScaleSetName "vmss" -InstanceId "0"

Returns VM with ResilientVMDeletionStatus populated: InProgress, Failed, Enabled, or Disabled.

Notes

  • SDK already supports VmssVMInstanceViewTypes.ResiliencyView and ResilientVMDeletionStatus property
  • AutoMapper handles property mapping automatically
  • List operation's expand parameter only supports instanceView per SDK constraints

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 1n8vsblobprodwus2184.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • 40vvsblobprodwus2135.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • 6yfvsblobprodwus2121.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • 7q7vsblobprodwus2144.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • 7t8vsblobprodwus2168.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
  • 84hvsblobprodwus2148.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • 8wdvsblobprodwus2137.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • 9yyvsblobprodwus2157.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • b53vsblobprodwus2154.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • ba0vsblobprodwus2130.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • balvsblobprodwus2129.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • cbvvsblobprodwus2131.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • cffvsblobprodwus218.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • d94vsblobprodwus2119.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/tools/VersionController/VersionController.Netcore.csproj -c Debug (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • ezcvsblobprodwus2170.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • faxvsblobprodwus2122.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • g3xvsblobprodwus2151.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • i01vsblobprodwus216.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • isvvsblobprodwus2147.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • jhgvsblobprodwus2167.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • k4pvsblobprodwus2140.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • kafvsblobprodwus2165.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/tools/VersionController/VersionController.Netcore.csproj -c Debug (dns block)
  • ldhvsblobprodwus2153.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • mt2vsblobprodwus2110.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • nudvsblobprodwus214.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • p2tvsblobprodwus2189.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • s8nvsblobprodwus2158.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • tn2vsblobprodwus2124.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • wlnvsblobprodwus2188.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/tools/VersionController/VersionController.Netcore.csproj -c Debug (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • wztvsblobprodwus2155.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • x0dvsblobprodwus2111.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
  • y5lvsblobprodwus2179.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)
  • yf8vsblobprodwus212.vsblob.vsassets.io
    • Triggering command: /usr/bin/dotnet /usr/bin/dotnet build /home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Azure.PowerShell.sln -c Debug -fl /flp1:logFile=/home/REDACTED/work/azure-powershell/azure-powershell/artifacts/Build.log;verbosity=quiet (dns block)
    • Triggering command: /usr/bin/dotnet dotnet build (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>VMSS Resilient Deletion Status Powershell Support</issue_title>
<issue_description>

Guidelines

The purpose of the Azure PowerShell design review is to ensure that the cmdlets follow the same pattern across the Azure modules. An early design review reduces the risk of unnecessary implementation changes caused by a cmdlet syntax design change.

Please ensure your cmdlets comply with the design guidelines outlined in the PowerShell Design Guidelines document.

Please generate cmdlets syntax using GenerateCmdletDesignMarkdown.ps1 for review if your cmdlet is generated from API spec directly by Autorest.PowerShell.

If you just add parameter to existing cmdlets and parameter definition complies with guideline, the design review is not expected.

  • Have you read above statement?

    • YES

Service Release Details

  • Is this an Embargoed Preview, A Public Preview, or a General Release?

    • General Release
  • What is the expected service release date?

    • November 31, 2025
  • Which Powershell module are these changes being made in?

    • Az.Compute

Contact Information

High Level Scenarios

  • Describe how your feature is intended to be used by customers.

    • This functionality we'd like to add to Powershell is a part of an existing feature on VMSS called Resilient Delete. For some context, Resilient Delete automatically initiates "force delete" retries on VMs that did not delete properly (max number of retries is 5). This means that customers who enroll in this Resilient Delete feature don't have to manually mitigate those delete failures anymore, because VMSS will just perform retries on the customer's behalf. When VMSS initiates another delete operation on the failed VM, the VM's provisioning status will change from "Failed" to "Deleting". However, if that delete operation failed again, then the VM status would change from "Deleting" to "Failed" (more comprehensive example included later in this ticket). Therefore, if the customer needs to know if the retries are still in progress, we're requesting Powershell support for a new property called "ResiliencyView" which contains the real-time status of the VM delete retries ("in-progress", "failed", "not started").
  • Piping scenarios / how these cmdlets are used with existing cmdlets

    • We aren't requesting a new cmdlet. Instead, we'd like to add a new property to the GetVmssVM cmdlet. Customers will use the cmdlet "GetVmssVM" and fetch the property "ResiliencyView".
  • Sample of end-to-end usage

    • Please provide comprehensive examples that don't assume additional setup. It helps the audience understand your feature.

    • The customer has a Virtual Machine Scale Set (VMSS) that has the policy "Resilient Delete" enabled. Let's say the customer deletes 3 VMs within this VMSS. However, all 3 of those VMs fail to delete. Each of those VMs will now have a Provisioning Status as "Failed". Automatically, the Resilient Delete feature will kick in and initiate a new delete operation on the VM (this is defined as a "retry" and we have a max retry count of 5). Once the retry is initiated, the VM's provisioning status will switch to "Deleting". However, after 5 minutes, those VMs fail to delete again. So then the VM provisioning status changes from "Deleting" to "Failed". Then, Resilient Delete will kick in again and initiate a new delete operation on each VM. The VMs' provisioning status will go from "Failed" to "Deleting". This oscillation in Provisioning Status throughout the retries can be a bit confusing for the customer, since they don't know if a "Failed" VM provisioning status means that all retries have exhausted/hit the max retry count or if there's another retry left. Therefore, the customer can use the "ResiliencyView" property within the cmdlet "GetVmssVM" and see if the retries are In Progress, fully Failed, or Not Started.

Syntax changes

Indicate if you are requesting an edit to existing cmdlets, adding new cmdlets, or both. Then edit the corresponding section below.

- Just editing existing cmdlets

...

Custom agent used: PowerShell Pull Request Agent
Specialized agent for creating PowerShell pull requests based on a design request

  • Fixes Azure/azure-powershell-cmdlet-review-pr#1527

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

audreyttt and others added 3 commits November 20, 2025 13:23
Updated agent configuration to specify a PowerShell Pull Request Agent with detailed objectives and rules for modifying cmdlets.
Copilot AI changed the title [WIP] Add PowerShell support for VMSS resilient deletion status Add ResiliencyView parameter to Get-AzVmssVM for monitoring Resilient Delete retries Nov 20, 2025
Copilot AI requested a review from audreyttt November 20, 2025 22:12
Copilot finished work on behalf of audreyttt November 20, 2025 22:12
Copy link

@haagha haagha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR seems to be mostly accurate? So looks pretty good

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants