About This Page
This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.
Bias Analysis
Bias Types:
⚠️
windows_first
⚠️
powershell_heavy
⚠️
windows_tools
⚠️
missing_linux_example
Summary:
The documentation demonstrates a moderate Windows bias. PowerShell is featured prominently, with full deployment and management examples using Azure PowerShell, and PowerShell command-line snippets are provided for deployment and REST API usage. While Azure CLI (which is cross-platform) is also covered, there are no explicit Linux shell (bash) deployment examples, and the PowerShell approach is often presented alongside or before CLI alternatives. The documentation assumes familiarity with PowerShell tools and patterns, and does not provide parity for Linux-native workflows (e.g., bash scripts for deployment, Linux package/tool installation, or Linux-specific troubleshooting).
Recommendations:
- Add explicit bash/Linux shell examples for deploying Bicep files, including resource group creation and deployment, to complement the PowerShell examples.
- When showing both Azure CLI and PowerShell, alternate the order or clarify that Azure CLI is cross-platform and suitable for Linux/macOS users.
- Provide instructions for setting up a Linux-based development environment, including common tools (e.g., jq, bash) and package installation commands.
- Include troubleshooting steps and script management examples using bash and Azure CLI, not just PowerShell.
- Avoid using PowerShell-specific syntax (such as $variable or Write-Host) in general guidance unless also providing a Linux shell equivalent.
- Clarify in the introduction that both Windows and Linux environments are supported, and highlight any differences or limitations.
Create pull request
Flagged Code Snippets
$resourceGroupName = Read-Host -Prompt "Enter the name of the resource group to be created"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"
New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile "inlineScript.bicep"
Write-Host "Press [ENTER] to continue ..."
Name : inlinePS
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Resources/deploymentScripts/inlinePS
ResourceGroupName : dsDemo
Location : centralus
SubscriptionId : aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
ProvisioningState : Succeeded
Identity :
ScriptKind : AzurePowerShell
AzPowerShellVersion : 10.0
StartTime : 12/11/2023 9:45:50 PM
EndTime : 12/11/2023 9:46:59 PM
ExpirationDate : 12/11/2023 10:46:59 PM
CleanupPreference : OnExpiration
StorageAccountId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.Storage/storageAccounts/ee5o4rmoo6ilmazscripts
ContainerInstanceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/dsDemo/providers/Microsoft.ContainerInstance/containerGroups/ee5o4rmoo6ilmazscripts
Outputs :
Key Value
================== ==================
text Hello John Dole.
RetentionInterval : PT1H
Timeout : P1D
param name string = '\\"John Dole\\"'
param location string = resourceGroup().location
resource deploymentScript 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
name: 'inlinePS'
location: location
kind: 'AzurePowerShell'
properties: {
azPowerShellVersion: '10.0'
arguments: '-name ${name}'
scriptContent: '''
param([string] $name)
Write-Host 'The argument is {0}' -f $name
$output = 'Hello {0}' -f $name
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
'''
retentionInterval: 'PT1H'
}
}
output result string = deploymentScript.properties.outputs.text
param name string = '\\"John Dole\\"'
param location string = resourceGroup().location
resource deploymentScript 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
name: 'inlinePS'
location: location
kind: 'AzurePowerShell'
properties: {
azPowerShellVersion: '10.0'
arguments: '-name ${name}'
scriptContent: '''
param([string] $name)
Write-Output "The argument is {0}." -f $name
$output = "Hello {0}." -f $name
$DeploymentScriptOutputs = @{}
$DeploymentScriptOutputs['text'] = $output
'''
cleanupPreference: 'OnExpiration'
retentionInterval: 'PT1H'
}
}
output text string = deploymentScript.properties.outputs.text