This page contains Windows bias

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:
⚠️ powershell_heavy
⚠️ windows_first
⚠️ windows_tools
⚠️ missing_linux_example
Summary:
The documentation is heavily biased toward Windows and PowerShell environments. All examples and instructions are provided exclusively for Windows PowerShell, with explicit requirements for Windows-specific tools (e.g., Windows Management Framework, .NET Framework, Microsoft Online Services Sign-In Assistant). There are no references to Linux, macOS, or cross-platform PowerShell Core usage, nor are there any CLI or Bash examples. The documentation assumes the user is on Windows and does not mention or support alternative platforms.
Recommendations:
  • Add equivalent instructions and examples for Linux and macOS environments, including installation steps for PowerShell Core (pwsh) and Az modules on those platforms.
  • Provide Azure CLI (az) command examples for authentication and credential management, as Azure CLI is cross-platform.
  • Clarify which steps are Windows-specific and offer alternative guidance for non-Windows users.
  • Mention and support PowerShell Core (7+) as a cross-platform option, and note any differences or limitations compared to Windows PowerShell.
  • Avoid requiring Windows-only tools (e.g., Microsoft Online Services Sign-In Assistant) where possible, or provide alternatives for Linux/macOS.
  • Reorder sections or provide parallel instructions so that Linux/macOS users are not treated as an afterthought.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-07-12 23:44 #41 in_progress ❌ Biased
2025-07-12 00:58 #8 cancelled ✅ Clean
2025-07-10 05:06 #7 processing ✅ Clean
2025-07-09 23:22 #6 cancelled ✅ Clean

Flagged Code Snippets

Workflow Workflow { Param ( [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $AzureSubscriptionId, [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] [String] $AzureVMList="All", [Parameter(Mandatory=$true)][ValidateSet("Start","Stop")] [String] $Action ) # Ensures you do not inherit an AzContext in your runbook Disable-AzContextAutosave -Scope Process # Connect to Azure with system-assigned managed identity $AzureContext = (Connect-AzAccount -Identity).context # set and store context $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext # get credential $credential = Get-AutomationPSCredential -Name "AzureCredential" # Connect to Azure with credential $AzureContext = (Connect-AzAccount -Credential $credential -TenantId $AzureContext.Subscription.TenantId).context # set and store context $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription ` -TenantId $AzureContext.Subscription.TenantId ` -DefaultProfile $AzureContext if($AzureVMList -ne "All") { $AzureVMs = $AzureVMList.Split(",") [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs } else { $AzureVMs = (Get-AzVM -DefaultProfile $AzureContext).Name [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs } foreach($AzureVM in $AzureVMsToHandle) { if(!(Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM})) { throw " AzureVM : [$AzureVM] - Does not exist! - Check your inputs " } } if($Action -eq "Stop") { Write-Output "Stopping VMs"; foreach -parallel ($AzureVM in $AzureVMsToHandle) { Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Stop-AzVM -DefaultProfile $AzureContext -Force } } else { Write-Output "Starting VMs"; foreach -parallel ($AzureVM in $AzureVMsToHandle) { Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Start-AzVM -DefaultProfile $AzureContext } } }