❌
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 demonstrates a significant Windows bias. While the initial steps use Azure CLI (which is cross-platform), all variable assignments and command examples are written in PowerShell syntax (e.g., $var = ...), and the output is shown from a PowerShell prompt (PS /home/user>). The VHD export process relies on Azure PowerShell cmdlets (New-AzureStorageContext, Start-AzureStorageBlobCopy, Get-AzureStorageBlobCopyState), which are not available or standard on Linux/macOS. There are no equivalent Bash or Linux-native examples provided, and the documentation assumes a Windows/PowerShell environment throughout, despite referencing Azure CLI.
Recommendations:
  • Provide equivalent Bash/Linux shell examples for all steps, especially for variable assignment and command execution.
  • For the VHD export step, include az storage blob copy or azcopy examples, which are cross-platform and work natively on Linux/macOS.
  • Avoid using PowerShell-specific cmdlets (e.g., New-AzureStorageContext) as the only option; if PowerShell is shown, always pair with a Bash/Linux alternative.
  • Show output from both PowerShell and Bash shells, or use a neutral prompt (e.g., $ or >) to avoid implying Windows-only usage.
  • Explicitly state that the workflow can be performed on Linux/macOS, and provide any prerequisites or differences for those platforms.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-08-17 00:01 #83 in_progress âś… Clean
2025-07-13 21:37 #48 completed âś… Clean
2025-07-09 13:09 #3 cancelled âś… Clean
2025-07-08 04:23 #2 cancelled ❌ Biased

Flagged Code Snippets

PS /home/user> az vm image list --all --publisher "Canonical" --offer "UbuntuServer" --sku "12.04.4-LTS"
#Returns all images of type "Windows Server" az vm image list --all --publisher "MicrosoftWindowsserver" --offer "WindowsServer" #Returns all Windows Server 2019 Datacenter images from West US published by Microsoft az vm image list --all --location "westus" --publisher "MicrosoftWindowsserver" --offer "WindowsServer" --sku "2019-Datacenter" #Returns all VM images from a publisher az vm image list --all --publisher "Canonical"
$urn = <URN of the Marketplace image> #Example: “MicrosoftWindowsServer:WindowsServer:2019-Datacenter:Latest” $diskName = <disk name> #Name for new disk to be created $diskRG = <resource group> #Resource group that contains the new disk
az disk create -g $diskRG -n $diskName --image-reference $urn $sas = az disk grant-access --duration-in-seconds 36000 --access-level Read --name $diskName --resource-group $diskRG $diskAccessSAS = ($sas | ConvertFrom-Json)[0].accessSas
$storageAccountName = <destination storage account name> $containerName = <destination container name> $destBlobName = <blobname.vhd> #Blob that will be created, including .vhd extension $storageAccountKey = <storage account key>
Get-AzureStorageBlobCopyState –Container $containerName –Context $destContext -Blob $destBlobName
PS /home/user> $urn = “MicrosoftWindowsServer:WindowsServer:2019-Datacenter:Latest” PS /home/user> $diskName = "newmanageddisk1" PS /home/user> $diskRG = "newrgmd1" PS /home/user> az disk create -g $diskRG -n $diskName --image-reference $urn { "burstingEnabled": null, "creationData": { "createOption": "FromImage", "galleryImageReference": null, "imageReference": { "id": "/Subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2019-Datacenter/Versions/17763.1935.2105080716", "lun": null }, "logicalSectorSize": null, "sourceResourceId": null, "sourceUniqueId": null, "sourceUri": null, "storageAccountId": null, "uploadSizeBytes": null }, "diskAccessId": null, "diskIopsReadOnly": null, "diskIopsReadWrite": 500, "diskMBpsReadOnly": null, "diskMBpsReadWrite": 100, "diskSizeBytes": 136367308800, "diskSizeGb": 127, "diskState": "Unattached", "encryption": { "diskEncryptionSetId": null, "type": "EncryptionAtRestWithPlatformKey" }, "encryptionSettingsCollection": null, "extendedLocation": null, "hyperVGeneration": "V1", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/newrgmd1/providers/Microsoft.Compute/disks/NewManagedDisk1", "location": "eastus", "managedBy": null, "managedByExtended": null, "maxShares": null, "name": "NewManagedDisk1", "networkAccessPolicy": "AllowAll", "osType": "Windows", "propertyUpdatesInProgress": null, "provisioningState": "Succeeded", "purchasePlan": null, "resourceGroup": "newrgmd1", "securityProfile": null, "shareInfo": null, "sku": { "name": "Premium_LRS", "tier": "Premium" }, "supportsHibernation": null, "tags": {}, "tier": "P10", "timeCreated": "2021-06-08T00:39:34.205982+00:00", "type": "Microsoft.Compute/disks", "uniqueId": "1a649ad4-3b95-471e-89ef-1d2ed1f51525", "zones": null } PS /home/user> $sas = az disk grant-access --duration-in-seconds 36000 --access-level Read --name $diskName --resource-group $diskRG PS /home/user> $diskAccessSAS = ($sas | ConvertFrom-Json)[0].accessSas PS /home/user>
$destContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey Start-AzureStorageBlobCopy -AbsoluteUri $diskAccessSAS -DestContainer $containerName -DestContext $destContext -DestBlob $destBlobName
PS /home/user> $storageAccountName = "edgeazurevmeus" PS /home/user> $containerName = "azurevmmp" PS /home/user> $destBlobName = "newblobmp.vhd" PS /home/user> $storageAccountKey = "n9sCytWLdTBz0F4Sco9SkPGWp6BJBtf7BJBk79msf1PfxJGQdqSfu6TboZWZ10xyZdc4y+Att08cC9B79jB0YA==" PS /home/user> $destContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey PS /home/user> Start-AzureStorageBlobCopy -AbsoluteUri $diskAccessSAS -DestContainer $containerName -DestContext $destContext -DestBlob $destBlobName AccountName: edgeazurevmeus, ContainerName: azurevmmp Name BlobType Length ContentType LastModified AccessTier SnapshotTime IsDeleted VersionId ---- -------- ------ ----------- ------------ ---------- ------------ --------- --------- newblobmp.vhd PageBlob -1 2021-06-08 00:50:10Z False PS /home/user> Get-AzureStorageBlobCopyState –Container $containerName –Context $destContext -Blob $destBlobName CopyId : 24a1e3f5-886a-490d-9dd7-562bb4acff58 CompletionTime : Status : Pending Source : https://md-lfn221fppr2c.blob.core.windows.net/d4tb2hp5ff2q/abcd?sv=2018-03-28&sr=b&si=4f588db1-9aac-44d9-9607-35497cc08a7f BytesCopied : 696254464 TotalBytes : 136367309312 StatusDescription : DestinationSnapshotTime : PS /home/user> Get-AzureStorageBlobCopyState –Container $containerName –Context $destContext -Blob $destBlobName CopyId : 24a1e3f5-886a-490d-9dd7-562bb4acff58 CompletionTime : 6/8/2021 12:57:26 AM +00:00 Status : Success Source : https://md-lfn221fppr2c.blob.core.windows.net/d4tb2hp5ff2q/abcd?sv=2018-03-28&sr=b&si=4f588db1-9aac-44d9-9607-35497cc08a7f BytesCopied : 136367309312 TotalBytes : 136367309312 StatusDescription : DestinationSnapshotTime :