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
⚠️
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.
Create pull request
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