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 page exhibits a strong Windows/PowerShell bias. All code samples, explanations, and tool references are exclusively for Windows PowerShell and related cmdlets. There is no mention of Linux, Bash, or cross-platform scripting, nor are there examples or guidance for users running Azure Automation from non-Windows environments. The documentation assumes the reader is using PowerShell and Windows-centric tools, and Linux or cross-platform users are not addressed.
Recommendations
  • Add equivalent examples for Python runbooks, which are supported in Azure Automation, especially in sections discussing output and message streams.
  • Include information and examples for retrieving runbook output and messages using Azure CLI (az command), which is cross-platform and widely used on Linux.
  • Clarify which features and cmdlets are available or behave differently in Linux Hybrid Runbook Workers or in cross-platform environments.
  • Where PowerShell preference variables or cmdlets are discussed, note their applicability (or lack thereof) in Python or other supported runbook types.
  • Provide links to documentation or guides for managing Azure Automation from Linux environments, and mention any limitations or differences.
  • Rephrase sections that refer to 'Windows PowerShell' to 'PowerShell', and clarify when instructions apply to Windows-only versus cross-platform PowerShell Core.
  • Explicitly state if certain features (such as graphical runbooks or specific cmdlets) are only available on Windows, and suggest alternatives for Linux users.
GitHub Create Pull Request

Scan History

Date Scan Status Result
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-17 00:01 #83 cancelled Clean Clean
2025-07-13 21:37 #48 completed Biased Biased
2025-07-09 13:09 #3 cancelled Clean Clean
2025-07-08 04:23 #2 cancelled Biased Biased

Flagged Code Snippets

#The following lines both write an object to the output stream.
Write-Output -InputObject $object
$object
Workflow Test-Runbook
{
  Write-Verbose "Verbose outside of function" -Verbose
  Write-Output "Output outside of function"
  $functionOutput = Test-Function
  $functionOutput

  Function Test-Function
  {
    Write-Verbose "Verbose inside of function" -Verbose
    Write-Output "Output inside of function"
  }
}
Workflow Test-Runbook
{
  [OutputType([string])]

  $output = "This is some string output."
  Write-Output $output
}
#The following lines create a warning message and then an error message that will suspend the runbook.

$ErrorActionPreference = "Stop"
Write-Warning -Message "This is a warning message."
Write-Error -Message "This is an error message that will stop the runbook because of the preference variable."
Write-Output "This is an output message." 
Write-Debug "This is a debug message."
Write-Output "This is an output message." 
$GLOBAL:DebugPreference="Continue" 
Write-Debug "This is a debug message." 5>&1
#The following line creates a verbose message.

Write-Verbose -Message "This is a verbose message."
$job = Start-AzAutomationRunbook -ResourceGroupName "ResourceGroup01" `
  -AutomationAccountName "MyAutomationAccount" -Name "Test-Runbook"

$doLoop = $true
While ($doLoop) {
  $job = Get-AzAutomationJob -ResourceGroupName "ResourceGroup01" `
    -AutomationAccountName "MyAutomationAccount" -Id $job.JobId
  $status = $job.Status
  $doLoop = (($status -ne "Completed") -and ($status -ne "Failed") -and ($status -ne "Suspended") -and ($status -ne "Stopped"))
}

Get-AzAutomationJobOutput -ResourceGroupName "ResourceGroup01" `
  -AutomationAccountName "MyAutomationAccount" -Id $job.JobId -Stream Output

# For more detailed job output, pipe the output of Get-AzAutomationJobOutput to Get-AzAutomationJobOutputRecord
Get-AzAutomationJobOutput -ResourceGroupName "ResourceGroup01" `
  -AutomationAccountName "MyAutomationAccount" -Id $job.JobId -Stream Any | Get-AzAutomationJobOutputRecord