A place to share all the Azure Code I am writing. This includes PowerShell, Terraform, ARM, Bicep, Ansible, etc...
For additional Azure content, visit my blog: https://www.shudnow.io
Script |
Description |
VMRegionZonalAvailability |
Takes a list of Virtual Machine SKUs from a CSV and Regions specified as an array in script and gets a list of what Virtual Machine SKUs are supported in the specified Regions as well as what Availability Zones these VM SKUs are available in. This script will provide output of the results in both the PowerShell Console as well as a CSV output in the same directory the script is executed from. |
HRWRemoteCodeExecution |
Enables a Hybrid Runbook Worker (in or outside Azure) and executes a remote PowerShell Script against servers specified within a PowerShell Array. The script leverages a Run-As Account with API Permissions against an Azure Key Vault to retrieve password for an ADDS Service Account that is used to execute the remote code. |
QuotaReport |
Imports a Settings.json that defines Subscriptions, Regions, and Percentage Thresholds and retreives CPU Quotas and Subnet Usage Information and outputs results to an HTML. Based on thresholds defined in Settings.json, the percentage column will be color coded (green, yellow, or red) accordingly. |
ServicePrincipalExpirationReport |
Obtain a list of all Azure AD Application Service Principals and obtain a list of certificates and secrets associated and their expiration dates. This list will be created in an HTML Output where all expirations have color coded cells based on certain criteria. Criteria is outlined in the script README. |
AzSubnetAvailability |
Obtain a list of all Azure AD Application Service Principals and obtain a list of certificates and secrets associated and their expiration dates. This list will be created in an HTML Output where all expirations have color coded cells based on certain criteria. Criteria is outlined in the script README. |
AvailabilityZoneMapping |
This PowerShell Script takes a list of Azure Subscriptions you have selected in Grid View and cycles through each subscription and obtains information about the Logical to Physical Zone Mapping. Information is collected and outputted to an output.csv in the same folder the script was executed in. |
DDOSVnetReport |
This script creates an HTML Report on DDOS Standard Virtual Network Assignment across a single or all subscriptions. This will help determine what Virtual Networks have DDOS Standard Plans assigned to Virtual Networks and which do not. |
AzPublicIPReport |
This script creates an HTML Report on what Public IP Addresses exist across a single or all subscriptions. This will also include information on the recently announced Public IP DDOS Protection feature. |
AzCostAdvisorMGScope |
This script creates a report for Azure Advisor Cost Recommendations at the Management Group Scope in a recursive or non-recursive manner. |
AzVNETOverlap |
This script creates will output any VNET that overlaps with another VNET within all Azure Subscriptions or specified Azure Subscriptions. |
AzResourceMoveSupport |
This script will take an Azure Usage Report csv file and provide new columns as to whether each resource supports migration to another Resource Group, to another Subscription, or to another Region. |
AzMMARemoval |
This script will cycle through Virtual Machines that have the MMA agent installed and if that VM also has the AMA agent installed, MMA will get removed. The intention of this script is to provide an easy mechanism to decomission MMA once AMA has been rolled out to your fleet of VMs. The script allows you to target an individual Subscription or Subscriptions within a Management Group optionally allowing you to recurse through child Management Groups and their Subscriptions. |
Script |
Description |
Windows_VM_Marketplace |
This Terraform Script executed on a Linux Server will deploy a single Windows Virtual Machine using a Marketplace Image. |
Linux_VM_Marketplace |
This Terraform Script executed on a Linux Server will deploy a single Ubuntu Virtual Machine using a Marketplace Image. |
Windows_VM_ManagedImage |
This Terraform Script executed on a Linux Server will deploy a single Windows Virtual Machine using a Managed Image. |
Linux_VM_ManagedImage |
This Terraform Script executed on a Linux Server will deploy a single Linux Virtual Machine using a Managed Image. |
Script |
Description |
Windows_VM_Managed_Image |
Leverage a Packer Script executed on a Linux Server to deploy a Generalized Windows Server 2022 Managed Image for future VM deployments leveraging Terraform or manual procedures. Packer will configured the Managed Image to have IIS installed. |
Linux_VM_Managed_Image |
Leverage a Packer Script executed on a Linux Server to deploy a Generalized Linux (Ubuntu) Managed Image for future VM deployments leveraging Terraform or manual procedures. Packer will configured the Managed Image to have IIS installed. |
Linux_VM_Managed_Image_With_Ansible |
Leverage a Packer Script executed on a Linux Server to deploy a Generalized Linux (Ubuntu) Managed Image for future VM deployments leveraging Terraform or manual procedures. Packer will configured the Managed Image to have Nginx installed as well as leverage the Ansible Provisioner to install Ansible Roles defined within the ansible directory. |
Script |
Description |
Azure Arc for Servers |
This Azure Arc for Servers Workbook provides much information around Azure Arc for Server Virtual Machines that includes Overview, Server Health, Extension Health, Security, and ESU information. This is an updated Workbook which is a continuation of the Workbook that was documented in a Tech Community Blog Post I wrote here: Tech Community Post. |
Azure Virtual Machine Volumes |
This Azure Virtual Machine Volumes provides information around Azure Virtual Machine Volumes and/or Azure Arc for Server Virtual Machine Volumes. This does require Virtual Machines and Arc-Enabled Servers to be connected to Log Analytics. The Workbook allows you to select between Server Performance Counters or VMInsights, with VMInsights providing additional data that is not collectable using Performance Counters. |