Azure PowerShell Cheatsheet


Installation and Authentication

  • Install Azure PowerShell module
Install-Module -Name Az -Repository PSGallery -Force
  • Update Azure PowerShell module
Update-Module -Name Az
  • Login to Azure
Connect-AzAccount
  • Login with service principal
$credential = Get-Credential
Connect-AzAccount -ServicePrincipal -Credential $credential -Tenant <tenant-id>
  • Show current context
Get-AzContext
  • List available subscriptions
Get-AzSubscription
  • Set active subscription
Set-AzContext -SubscriptionId <subscription-id>
  • Disconnect from Azure
Disconnect-AzAccount

Resource Groups

  • Create a resource group
New-AzResourceGroup -Name <resource-group> -Location <location>
  • Get all resource groups
Get-AzResourceGroup
  • Get specific resource group
Get-AzResourceGroup -Name <resource-group>
  • Remove a resource group
Remove-AzResourceGroup -Name <resource-group> -Force
  • Get resources in a resource group
Get-AzResource -ResourceGroupName <resource-group>

Virtual Machines

  • Create a VM
$vm = New-AzVMConfig -VMName <vm-name> -VMSize "Standard_B2s"
$vm = Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName <vm-name> -Credential $credential
$vm = Set-AzVMSourceImage -VM $vm -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2019-Datacenter" -Version "latest"
New-AzVM -ResourceGroupName <resource-group> -Location <location> -VM $vm
  • Get all VMs
Get-AzVM
  • Get VMs in a resource group
Get-AzVM -ResourceGroupName <resource-group>
  • Start a VM
Start-AzVM -ResourceGroupName <resource-group> -Name <vm-name>
  • Stop a VM
Stop-AzVM -ResourceGroupName <resource-group> -Name <vm-name> -Force
  • Restart a VM
Restart-AzVM -ResourceGroupName <resource-group> -Name <vm-name>
  • Remove a VM
Remove-AzVM -ResourceGroupName <resource-group> -Name <vm-name> -Force
  • Get VM status
Get-AzVM -ResourceGroupName <resource-group> -Name <vm-name> -Status

Storage Accounts

  • Create a storage account
New-AzStorageAccount -ResourceGroupName <resource-group> -Name <storage-account> -Location <location> -SkuName "Standard_LRS"
  • Get all storage accounts
Get-AzStorageAccount
  • Get specific storage account
Get-AzStorageAccount -ResourceGroupName <resource-group> -Name <storage-account>
  • Get storage account keys
Get-AzStorageAccountKey -ResourceGroupName <resource-group> -Name <storage-account>
  • Remove a storage account
Remove-AzStorageAccount -ResourceGroupName <resource-group> -Name <storage-account> -Force

App Services

  • Create an App Service plan
New-AzAppServicePlan -ResourceGroupName <resource-group> -Name <plan-name> -Location <location> -Tier "Basic" -NumberofWorkers 1 -WorkerSize "Small"
  • Create a web app
New-AzWebApp -ResourceGroupName <resource-group> -Name <app-name> -Location <location> -AppServicePlan <plan-name>
  • Get all web apps
Get-AzWebApp
  • Get web app details
Get-AzWebApp -ResourceGroupName <resource-group> -Name <app-name>
  • Remove a web app
Remove-AzWebApp -ResourceGroupName <resource-group> -Name <app-name> -Force

Azure Container Instances (ACI)

  • Create a container group
New-AzContainerGroup -ResourceGroupName <resource-group> -Name <container-name> -Image <image> -OsType Linux -Port 80
  • Get container groups
Get-AzContainerGroup
  • Get container logs
Get-AzContainerInstanceLog -ResourceGroupName <resource-group> -ContainerGroupName <container-name>
  • Remove a container group
Remove-AzContainerGroup -ResourceGroupName <resource-group> -Name <container-name>

Azure Kubernetes Service (AKS)

  • Create an AKS cluster
New-AzAksCluster -ResourceGroupName <resource-group> -Name <cluster-name> -NodeCount 1 -GenerateSshKey
  • Get AKS credentials
Import-AzAksCredential -ResourceGroupName <resource-group> -Name <cluster-name>
  • Get AKS clusters
Get-AzAksCluster
  • Remove AKS cluster
Remove-AzAksCluster -ResourceGroupName <resource-group> -Name <cluster-name> -Force

Networking

  • Create a virtual network
$subnet = New-AzVirtualNetworkSubnetConfig -Name <subnet-name> -AddressPrefix "10.0.1.0/24"
New-AzVirtualNetwork -ResourceGroupName <resource-group> -Location <location> -Name <vnet-name> -AddressPrefix "10.0.0.0/16" -Subnet $subnet
  • Create a network security group
New-AzNetworkSecurityGroup -ResourceGroupName <resource-group> -Location <location> -Name <nsg-name>
  • Create a public IP
New-AzPublicIpAddress -ResourceGroupName <resource-group> -Location <location> -Name <public-ip-name> -AllocationMethod Dynamic
  • Get virtual networks
Get-AzVirtualNetwork

Key Vault

  • Create a key vault
New-AzKeyVault -ResourceGroupName <resource-group> -VaultName <keyvault-name> -Location <location>
  • Set a secret
$secret = ConvertTo-SecureString -String <secret-value> -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName <keyvault-name> -Name <secret-name> -SecretValue $secret
  • Get a secret
Get-AzKeyVaultSecret -VaultName <keyvault-name> -Name <secret-name>
  • List secrets
Get-AzKeyVaultSecret -VaultName <keyvault-name>

Monitoring and Diagnostics

  • Get activity logs
Get-AzLog -ResourceGroup <resource-group>
  • Create an alert rule
Add-AzMetricAlertRuleV2 -ResourceGroupName <resource-group> -Name <alert-name> -TargetResourceId <resource-id> -MetricName "Percentage CPU" -Operator GreaterThan -Threshold 80
  • Get available metrics
Get-AzMetricDefinition -ResourceId <resource-id>

Role-Based Access Control (RBAC)

  • Get role assignments
Get-AzRoleAssignment -ResourceGroupName <resource-group>
  • Create role assignment
New-AzRoleAssignment -SignInName <user-email> -RoleDefinitionName "Contributor" -ResourceGroupName <resource-group>
  • Remove role assignment
Remove-AzRoleAssignment -SignInName <user-email> -RoleDefinitionName "Contributor" -ResourceGroupName <resource-group>
  • Get role definitions
Get-AzRoleDefinition

Common Utilities

  • Get Azure PowerShell version
Get-Module -Name Az -ListAvailable
  • Import specific Azure module
Import-Module Az.Resources
  • Get command help
Get-Help <command-name> -Full
  • Set default resource group
Set-AzDefault -ResourceGroupName <resource-group>
  • Clear Azure context
Clear-AzContext
  • Export Azure context
Save-AzContext -Path "C:\AzureContext.json"