IT Practice Exams

AZ-900 · Describe Azure Management and Governance · Updated August 7, 2026

Azure CLI vs Azure PowerShell: Choosing a Command-Line Tool

Azure CLI and Azure PowerShell are both official, cross-platform command-line tools for managing Azure resources, and either one can accomplish nearly any task the other can. The real difference is syntax and background fit: Azure CLI uses a command-and-argument style familiar to Bash and Linux administrators, while Azure PowerShell uses PowerShell’s Verb-Noun cmdlet convention familiar to Windows administrators. Picking between them usually comes down to which style matches your team’s existing scripts, not which one is more capable.

What Azure CLI is

Azure CLI is a standalone, cross-platform command-line tool with official installer packages for Windows, macOS, and Linux. Its command structure follows a flat, argument-based pattern — a base command followed by flags — which is the same shape as most Linux and Bash tooling. An administrator with a Bash background typically finds this syntax immediately familiar, since it mirrors patterns they already use daily.

Azure CLI is scriptable by design, which makes it a common choice for embedding into automation, including Linux-based continuous integration and continuous delivery pipelines. Because it’s lightweight and non-interactive-friendly, it fits neatly as a provisioning step in a pipeline where no human is present to click through a graphical interface. It also supports output formatting through the --output parameter — appending --output table to a command reformats the same result set as a readable table instead of the default JSON, which is a quick way to make terminal output easier to scan without changing the underlying data returned.

Installing Azure CLI locally is straightforward and puts the exact same command set on your own machine that you’d get inside Cloud Shell, minus the browser dependency — useful for a developer who wants to work offline or outside a browser session entirely.

What Azure PowerShell is

Azure PowerShell (commonly called the Az module) is a set of cmdlets built for the PowerShell scripting environment. Rather than flat commands and flags, it follows PowerShell’s Verb-Noun naming convention — Get-AzVM, New-AzResourceGroup, Remove-AzResourceGroup — a pattern inherited from PowerShell itself and applied consistently across the entire Az module. Once you know this convention, you can often guess the name of a cmdlet you haven’t used before: a VM cmdlet like Get-AzVM reaches into the scale sets and availability sets covered elsewhere, while New-AzResourceGroup and Remove-AzResourceGroup create and tear down the resource groups that organize everything else.

Because it’s built on PowerShell, Az cmdlets return and pass along rich PowerShell objects through the pipeline rather than flat text, which lets administrators filter, sort, and chain output the same way they already do when automating on-premises Windows Server tasks. That’s exactly why Azure PowerShell tends to be the natural fit for teams with years of existing PowerShell automation experience: their scripting patterns, object-pipeline habits, and even some cmdlet naming intuition carry over with minimal relearning.

Azure PowerShell is cross-platform too — it runs anywhere PowerShell runs, not just on Windows — and like Azure CLI, it’s preinstalled and ready to use inside Azure Cloud Shell.

Azure CLI vs. Azure PowerShell

Azure CLIAzure PowerShell
Syntax styleCommand and arguments (Bash-like)Verb-Noun cmdlets (Get-AzVM)
Typical background fitLinux/Bash administratorsWindows/PowerShell administrators
Output styleJSON by default; --output table for readable tablesPowerShell objects, pipeline-friendly
PlatformsWindows, macOS, LinuxWindows, macOS, Linux (anywhere PowerShell runs)
Preinstalled in Cloud ShellYesYes
Scriptable / automatableYesYes
Resource coverageNearly all Azure resource typesNearly all Azure resource types

Neither tool is objectively more powerful than the other for AZ-900 purposes — both can provision and manage essentially the full range of Azure resources, both are free (only the resources they create incur charges, tracked through the same cost management and billing tools regardless of which command-line tool provisioned them), and both can be combined into saved scripts for repeatable, automated tasks. The deciding factor the exam wants you to recognize is syntax and team fit, not capability.

How the AZ-900 exam tests this

  • Matching background to tool. A scenario describes an administrator with strong Bash/Linux experience, or strong PowerShell/Windows Server automation experience, and asks which tool fits. Bash background points to Azure CLI; PowerShell/Windows Server background points to Azure PowerShell.
  • The “most relevant factor” question. When a stem asks what should drive the choice between the two tools, the answer is syntax/style fit with the team’s existing scripts — not subscription type, not which resource type is being managed, since both tools can manage essentially everything.
  • Platform and installation claims. Expect a straightforward factual question on whether Azure CLI (or Azure PowerShell) is cross-platform. Both install on Windows, macOS, and Linux — a common wrong answer restricts one of them to Windows only or to Cloud Shell only, both of which are false.
  • Cmdlet naming pattern recall. A direct question may ask what naming convention Azure PowerShell cmdlets follow. It’s Verb-Noun, capitalized, like Get-AzVM — not Noun-Verb, not all-lowercase, not camelCase.
  • Automation/pipeline fit. A scenario about adding a scriptable, unattended provisioning step to a CI/CD pipeline points to Azure CLI (or Azure PowerShell) over the Azure portal or mobile app, since those require interactive, human use.

Quick reference

  • Azure CLI uses command-and-argument syntax; it’s the natural fit for Bash/Linux backgrounds.
  • Azure PowerShell (the Az module) uses Verb-Noun cmdlets and PowerShell object pipelines; it fits teams with existing Windows PowerShell automation experience.
  • Both tools are cross-platform (Windows, macOS, Linux) and both are preinstalled in Azure Cloud Shell.
  • Both can manage nearly the entire range of Azure resource types — capability isn’t the deciding factor.
  • Azure CLI’s --output table parameter reformats command results as a readable table instead of default JSON.
  • Both tools support scripting for repeatable, automated deployments, and both are free to use (only the resources you create are billed).
  • The exam’s key discrimination is syntax/background fit, not which tool is “better.”

Both tools run inside the same browser-based shell environment described in Azure Portal, Cloud Shell, and the Azure Mobile App, and both can deploy the declarative templates covered in ARM templates and Bicep for infrastructure as code. If you want to lock in the distinction, practice AZ-900 questions that test CLI-versus-PowerShell scenarios directly.

Choose your exam → Lifetime access
from $59, once