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 exhibits a strong Windows bias. All deployment and management examples use PowerShell commands, even for Linux VMs. The Windows section appears first and is more detailed, with explicit file paths and output samples. Linux instructions reuse the same PowerShell-centric workflow, and there are no examples using native Linux tools (e.g., Azure CLI on Linux, Bash). File paths and user names in Linux examples (e.g., /home/Administrator) are Windows-like, and there is no demonstration of using Linux-native scripting or command-line environments.
Recommendations:
  • Provide Linux-native examples using Bash and Azure CLI, not just PowerShell.
  • Include Linux file paths and typical user names (e.g., /home/ubuntu, /home/user) in Linux examples.
  • Show how to deploy and manage the extension from a Linux management machine, not just from Windows.
  • Present Windows and Linux instructions in parallel, or start with a neutral overview before splitting by OS.
  • Demonstrate how to check extension status and logs using Linux-native commands (e.g., tail, cat, ls).
  • Clarify that PowerShell is not required for Linux VM management and provide alternatives.
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

Flagged Code Snippets

Get-AzureRmVMExtension -ResourceGroupName myResourceGroup -VMName <VM Name> -Name <Extension Name>
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "vmName": { "value": "VM5" }, "extensionName": { "value": "CustomScriptExtension" }, "publisher": { "value": "Microsoft.Compute" }, "type": { "value": "CustomScriptExtension" }, "typeHandlerVersion": { "value": "1.10" }, "settings": { "value": { "commandToExecute" : "md C:\\Users\\Public\\Documents\\test" } } } }
$templateFile = "<Path to addCSExtensiontoVM.json file>" $templateParameterFile = "<Path to addCSExtWindowsVM.parameters.json file>" $RGName = "<Resource group name>" New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensiontoVM.json" PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtWindowsVM.parameters.json" PS C:\WINDOWS\system32> $RGName = "myasegpuvm1" PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment7" DeploymentName : deployment7 ResourceGroupName : myasegpuvm1 ProvisioningState : Succeeded Timestamp : 12/17/2020 10:07:44 PM Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vmName String VM5 extensionName String CustomScriptExtension publisher String Microsoft.Compute type String CustomScriptExtension typeHandlerVersion String 1.10 settings Object { "commandToExecute": "md C:\\Users\\Public\\Documents\\test" } Outputs : DeploymentDebugLogLevel : PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension ResourceGroupName : myasegpuvm1 VMName : VM5 Name : CustomScriptExtension Location : dbelocal Etag : null Publisher : Microsoft.Compute ExtensionType : CustomScriptExtension TypeHandlerVersion : 1.10 Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension PublicSettings : { "commandToExecute": "md C:\\Users\\Public\\Documents\\test" } ProtectedSettings : ProvisioningState : Creating Statuses : SubStatuses : AutoUpgradeMinorVersion : True ForceUpdateTag : PS C:\WINDOWS\system32>
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.*\Downloads\<n>
$templateFile = "<Path to addCSExtensionToVM.json file>" $templateParameterFile = "<Path to addCSExtLinuxVM.parameters.json file>" $RGName = "<Resource group name>" New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensionToVM.json" PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtLinuxVM.parameters.json" PS C:\WINDOWS\system32> $RGName = "myasegpuvm1" PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment99" DeploymentName : deployment99 ResourceGroupName : myasegpuvm1 ProvisioningState : Succeeded Timestamp : 12/18/2020 1:55:23 AM Mode : Incremental TemplateLink : Parameters : Name Type Value =============== ========================= ========== vmName String VM6 extensionName String LinuxCustomScriptExtension publisher String Microsoft.Azure.Extensions type String CustomScript typeHandlerVersion String 2.0 settings Object { "commandToExecute": "sudo echo 'some text' >> /home/Administrator/file2.txt" } Outputs : DeploymentDebugLogLevel : PS C:\WINDOWS\system32>
Get-AzureRmVMExtension -ResourceGroupName <Name of resource group> -VMName <Name of VM> -Name <Name of the extension>
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension ResourceGroupName : myasegpuvm1 VMName : VM5 Name : CustomScriptExtension Location : dbelocal Etag : null Publisher : Microsoft.Compute ExtensionType : CustomScriptExtension TypeHandlerVersion : 1.10 Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension PublicSettings : { "commandToExecute": "md C:\\Users\\Public\\Documents\\test" } ProtectedSettings : ProvisioningState : Creating Statuses : SubStatuses : AutoUpgradeMinorVersion : True ForceUpdateTag : PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> Remove-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM6 -Name LinuxCustomScriptExtension Virtual machine extension removal operation This cmdlet will remove the specified virtual machine extension. Do you want to continue? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Yes RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK