Azure Management Tools: Portal, CLI, PowerShell, and Cloud Shell
Key Takeaways
The Azure Portal is the web GUI; Azure CLI uses az command syntax; Azure PowerShell uses verb-noun Az cmdlets; all are functionally equivalent management surfaces.
Azure Cloud Shell is browser-based, offers both Bash and PowerShell, and needs an Azure Files share only if you want files to persist between sessions.
Every management tool sends requests through Azure Resource Manager (ARM), the single control plane that authenticates, authorizes via RBAC, and routes the request.
ARM templates and Bicep provide declarative, idempotent, repeatable infrastructure as code deployments.
Azure Advisor and Azure Monitor are management surfaces, but they observe and recommend rather than authorizing changes the way ARM does.
Quick Answer: Azure Portal = web GUI. Azure CLI = cross-platform
azcommands. Azure PowerShell = verb-nounAzcmdlets. Cloud Shell = browser shell (Bash or PowerShell); a storage account is optional and persists your files. ARM templates / Bicep = declarative infrastructure as code. Everything routes through Azure Resource Manager (ARM).
Azure Portal
The Azure Portal at portal.azure.com is a unified, web-based graphical console. It is ideal for visual management, learning, dashboards, and one-off tasks. You can pin tiles to customizable dashboards, launch resource-creation wizards, run cost analysis, and manage RBAC assignments. Because it is point-and-click, it is the slowest tool for doing the same operation hundreds of times — that is what the command-line and code tools are for.
Azure CLI
Azure CLI is a cross-platform tool (Windows, macOS, Linux) using a bash-friendly syntax. Pattern: az [group] [subgroup] [command] [--parameters].
az group create --name MyRG --location eastus
az vm create --name MyVM --resource-group MyRG --image Ubuntu2204
az vm list --output table
It is the natural choice for shell scripting and Linux-centric DevOps pipelines.
Azure PowerShell
Azure PowerShell is the Az module of cmdlets in PowerShell's verb-noun format. Pattern: Verb-AzNoun -Parameters.
New-AzResourceGroup -Name MyRG -Location eastus
New-AzVM -Name MyVM -ResourceGroupName MyRG
Get-AzVM | Format-Table
It shines for Windows administrators and for piping objects between cmdlets in richer automation. CLI and PowerShell are functionally equivalent — choose by team skill set, not capability.
Azure Cloud Shell
Cloud Shell is a browser-based shell you reach from the portal, shell.azure.com, VS Code, or the Mobile App.
| Feature | Detail |
|---|---|
| Shells | Bash or PowerShell |
| Pre-installed | Azure CLI, Az PowerShell, Terraform, kubectl, git |
| Persistence | Optional; backed by an Azure Files share in a storage account |
| Auth | Auto-authenticated with your signed-in identity |
| Install | Nothing local — runs in the browser |
The first time you start Cloud Shell you can continue with or without storage; mounting a storage account (an Azure Files share) is what persists scripts and files between sessions.
Azure Mobile App and SDKs
The Azure Mobile App (iOS/Android) monitors resource health, surfaces alerts, and can run commands through Cloud Shell. For programmatic access, the Azure REST API and language SDKs (.NET, Java, Python, JavaScript, Go) let applications manage resources directly.
Infrastructure as code: ARM templates and Bicep
For repeatable, reviewable deployments Azure offers declarative infrastructure as code:
- ARM templates are JSON files describing the desired resources. Deployments are idempotent — running the same template twice converges to the same state rather than duplicating resources.
- Bicep is a cleaner domain-specific language that transpiles to ARM JSON. It is easier to read and write and is Microsoft's recommended authoring experience.
| Tool | Style | Best for |
|---|---|---|
| Portal | Imperative GUI | Visual, learning, one-offs |
| CLI / PowerShell | Imperative scripts | Automation, ad-hoc tasks |
| ARM / Bicep | Declarative IaC | Repeatable, version-controlled environments |
Everything goes through Azure Resource Manager
| Tool | Interface | Platform |
|---|---|---|
| Portal | Web GUI | Any browser |
| CLI | Command line | Win/macOS/Linux |
| PowerShell | Command line | Win/macOS/Linux |
| Cloud Shell | Browser shell | Any browser |
| REST API / SDKs | Code | Any platform |
Why ARM is the single control plane
Azure Resource Manager (ARM) is the deployment and management layer that sits between every tool and the actual Azure services. When you click Create in the portal, run az vm create, or deploy a Bicep file, the request lands on the same ARM endpoint. ARM then does four jobs in order:
- Authenticate the caller against Microsoft Entra ID (the identity behind your sign-in).
- Authorize the action using role-based access control (RBAC) — does this identity hold a role that permits this operation on this scope?
- Enforce governance by evaluating any Azure Policy rules (for example, blocking resources outside approved regions).
- Route the request to the correct resource provider (such as Microsoft.Compute for VMs) to carry it out.
Because everything funnels through ARM, your RBAC and Policy guardrails apply uniformly no matter which tool a user picks — a developer cannot bypass a policy by switching from the portal to the CLI. ARM also groups resources into resource groups and lets you deploy, tag, lock, and delete them as a unit, and it makes deployments idempotent so re-running a template converges to the desired state instead of duplicating resources.
Choosing the right tool
| Need | Best tool |
|---|---|
| Explore a service visually or build a dashboard | Azure Portal |
| Script in a Linux/bash pipeline | Azure CLI |
| Pipe objects in a Windows automation | Azure PowerShell |
| Run a quick command from any browser with no install | Cloud Shell |
| Reproduce identical environments under source control | ARM templates / Bicep |
| Monitor and respond to alerts from a phone | Azure Mobile App |
On the Exam: All management tools send requests to Azure Resource Manager (ARM) — the single control plane that authenticates the caller, authorizes via RBAC, applies Azure Policy, and routes to the resource provider. "Verb-noun like Get-AzVM" = PowerShell. "az group create" = CLI. "Keep Cloud Shell files between sessions" = a storage account (optional at first launch). "Repeatable declarative deployment" = ARM template or Bicep.
What do you need if you want files in Azure Cloud Shell to persist between sessions?
A local installation of the Azure CLI
An Azure Storage account that backs an Azure Files share
A dedicated virtual machine in your subscription
An Azure DevOps organization
Through which service do all Azure management tools (Portal, CLI, PowerShell, REST API, SDKs) send their requests?
Azure Monitor
Microsoft Entra ID
Azure Resource Manager (ARM)
Azure Service Health
A team wants a repeatable, version-controlled, declarative way to deploy identical environments. Which option fits best?
Click through resource-creation wizards in the Azure Portal
Run ad-hoc Azure CLI commands each time
Author ARM templates or Bicep files
Use the Azure Mobile App
Sections you finish are checked off in the contents.