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
Connect-AzAccount
- Login with service principal
$credential = Get-Credential
Connect-AzAccount -ServicePrincipal -Credential $credential -Tenant <tenant-id>
Get-AzContext
- List available subscriptions
Get-AzSubscription
Set-AzContext -SubscriptionId <subscription-id>
Disconnect-AzAccount
Resource Groups
New-AzResourceGroup -Name <resource-group> -Location <location>
Get-AzResourceGroup
- Get specific resource group
Get-AzResourceGroup -Name <resource-group>
Remove-AzResourceGroup -Name <resource-group> -Force
- Get resources in a resource group
Get-AzResource -ResourceGroupName <resource-group>
Virtual Machines
$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-AzVM
- Get VMs in a resource group
Get-AzVM -ResourceGroupName <resource-group>
Start-AzVM -ResourceGroupName <resource-group> -Name <vm-name>
Stop-AzVM -ResourceGroupName <resource-group> -Name <vm-name> -Force
Restart-AzVM -ResourceGroupName <resource-group> -Name <vm-name>
Remove-AzVM -ResourceGroupName <resource-group> -Name <vm-name> -Force
Get-AzVM -ResourceGroupName <resource-group> -Name <vm-name> -Status
Storage Accounts
New-AzStorageAccount -ResourceGroupName <resource-group> -Name <storage-account> -Location <location> -SkuName "Standard_LRS"
Get-AzStorageAccount
- Get specific storage account
Get-AzStorageAccount -ResourceGroupName <resource-group> -Name <storage-account>
Get-AzStorageAccountKey -ResourceGroupName <resource-group> -Name <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"
New-AzWebApp -ResourceGroupName <resource-group> -Name <app-name> -Location <location> -AppServicePlan <plan-name>
Get-AzWebApp
Get-AzWebApp -ResourceGroupName <resource-group> -Name <app-name>
Remove-AzWebApp -ResourceGroupName <resource-group> -Name <app-name> -Force
Azure Container Instances (ACI)
New-AzContainerGroup -ResourceGroupName <resource-group> -Name <container-name> -Image <image> -OsType Linux -Port 80
Get-AzContainerGroup
Get-AzContainerInstanceLog -ResourceGroupName <resource-group> -ContainerGroupName <container-name>
Remove-AzContainerGroup -ResourceGroupName <resource-group> -Name <container-name>
Azure Kubernetes Service (AKS)
New-AzAksCluster -ResourceGroupName <resource-group> -Name <cluster-name> -NodeCount 1 -GenerateSshKey
Import-AzAksCredential -ResourceGroupName <resource-group> -Name <cluster-name>
Get-AzAksCluster
Remove-AzAksCluster -ResourceGroupName <resource-group> -Name <cluster-name> -Force
Networking
$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>
New-AzPublicIpAddress -ResourceGroupName <resource-group> -Location <location> -Name <public-ip-name> -AllocationMethod Dynamic
Get-AzVirtualNetwork
Key Vault
New-AzKeyVault -ResourceGroupName <resource-group> -VaultName <keyvault-name> -Location <location>
$secret = ConvertTo-SecureString -String <secret-value> -AsPlainText -Force
Set-AzKeyVaultSecret -VaultName <keyvault-name> -Name <secret-name> -SecretValue $secret
Get-AzKeyVaultSecret -VaultName <keyvault-name> -Name <secret-name>
Get-AzKeyVaultSecret -VaultName <keyvault-name>
Monitoring and Diagnostics
Get-AzLog -ResourceGroup <resource-group>
Add-AzMetricAlertRuleV2 -ResourceGroupName <resource-group> -Name <alert-name> -TargetResourceId <resource-id> -MetricName "Percentage CPU" -Operator GreaterThan -Threshold 80
Get-AzMetricDefinition -ResourceId <resource-id>
Role-Based Access Control (RBAC)
Get-AzRoleAssignment -ResourceGroupName <resource-group>
New-AzRoleAssignment -SignInName <user-email> -RoleDefinitionName "Contributor" -ResourceGroupName <resource-group>
Remove-AzRoleAssignment -SignInName <user-email> -RoleDefinitionName "Contributor" -ResourceGroupName <resource-group>
Get-AzRoleDefinition
Common Utilities
- Get Azure PowerShell version
Get-Module -Name Az -ListAvailable
- Import specific Azure module
Import-Module Az.Resources
Get-Help <command-name> -Full
- Set default resource group
Set-AzDefault -ResourceGroupName <resource-group>
Clear-AzContext
Save-AzContext -Path "C:\AzureContext.json"