Sad Tux - Windows bias detected
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

Detected Bias Types
powershell_heavy
windows_first
missing_linux_example
windows_tools
Summary
The documentation is heavily biased towards Windows and PowerShell environments. All examples, prerequisites, and instructions are specific to Windows (e.g., requiring Windows Management Framework, .NET Framework, and Windows PowerShell). There is no mention of Linux, macOS, or cross-platform PowerShell Core support. Installation and usage steps assume a Windows OS, and no Bash, CLI, or cross-platform alternatives are provided.
Recommendations
  • Add equivalent instructions and examples for Linux and macOS environments, including how to use PowerShell Core (pwsh) and the Azure CLI.
  • Clarify which steps are Windows-specific and provide alternative steps for non-Windows users (e.g., installing modules on Linux/macOS, using dotnet instead of .NET Framework).
  • Include Bash/Azure CLI examples for authentication and automation tasks, not just PowerShell.
  • Mention cross-platform compatibility of the Az module and how to use it in non-Windows environments.
  • Explicitly state OS requirements and provide links to relevant installation guides for Linux/macOS.
  • Where Windows tools (e.g., Sign-in Assistant, WMF) are required, note their absence or alternatives on other platforms.
GitHub Create Pull Request

Scan History

Date Scan Status Result
2026-02-19 00:00 #398 in_progress Biased Biased
2026-02-18 00:00 #394 in_progress Biased Biased
2026-02-17 00:00 #390 in_progress Biased Biased
2026-02-16 00:00 #386 in_progress Biased Biased
2026-02-15 00:00 #382 in_progress Biased Biased
2026-02-14 00:00 #378 in_progress Biased Biased
2026-02-13 00:00 #374 in_progress Biased Biased
2026-02-12 00:00 #370 in_progress Biased Biased
2026-02-11 00:00 #366 in_progress Clean Clean
2026-02-10 00:00 #362 completed Biased Biased
2026-02-09 00:00 #358 completed Biased Biased
2026-02-08 00:00 #354 completed Biased Biased
2026-02-05 00:00 #342 completed Biased Biased
2026-02-04 00:00 #338 completed Biased Biased
2026-02-03 00:00 #334 completed Biased Biased
2026-02-02 00:00 #330 completed Biased Biased
2026-02-01 00:00 #326 completed Biased Biased
2026-01-31 00:00 #322 completed Biased Biased
2026-01-30 00:00 #318 completed Biased Biased
2026-01-27 00:00 #306 completed Biased Biased
2026-01-26 00:00 #302 completed Biased Biased
2026-01-24 00:00 #294 completed Biased Biased
2026-01-23 00:00 #290 failed Biased Biased
2026-01-14 00:00 #250 in_progress Biased Biased
2026-01-13 00:00 #246 completed Biased Biased
2026-01-12 00:00 #243 cancelled Biased Biased
2026-01-11 00:00 #240 completed Biased Biased
2026-01-10 00:00 #237 completed Biased Biased
2026-01-09 00:34 #234 completed Biased Biased
2026-01-08 00:53 #231 completed Clean Clean
2026-01-06 18:15 #225 cancelled Clean Clean
2025-08-25 00:01 #91 cancelled Biased Biased
2025-07-25 00:00 #60 completed Clean Clean
2025-07-16 00:00 #52 completed Biased Biased
2025-07-13 21:37 #48 completed Clean Clean
2025-07-09 13:09 #3 cancelled Clean Clean
2025-07-08 04:23 #2 cancelled Biased Biased

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
        } 
    } 
}