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 and PowerShell bias. All command-line examples for creating and deploying resources use Azure PowerShell scripts, with no equivalent Azure CLI (az) or Bash examples provided. The tutorial centers on deploying a Windows VM, and the only template referenced is for a Windows VM. There is no mention of Linux VM templates or how to use Key Vault secrets with Linux deployments. The instructions for connecting to the VM use RDP, a Windows-specific protocol, and do not mention SSH or Linux alternatives. Visual Studio Code is recommended as the editor, which is cross-platform, but all automation and scripting is Windows/PowerShell-centric.
Recommendations
  • Provide equivalent Azure CLI (az) and Bash examples for all PowerShell scripts, especially for key vault creation, secret retrieval, and template deployment.
  • Include a Linux VM deployment scenario alongside or instead of the Windows VM example, referencing a Linux quickstart template.
  • Demonstrate how to connect to a Linux VM using SSH, and how to use Key Vault secrets for Linux admin credentials.
  • When referencing password requirements, link to both Windows and Linux VM documentation.
  • Explicitly state that the instructions apply to both Windows and Linux, or clarify when steps are OS-specific.
  • Consider providing a toggle or tabs for PowerShell and CLI/Bash instructions throughout the tutorial.
GitHub Create Pull Request

Scan History

Date Scan Status Result
2026-01-12 00:00 #99 completed Biased Biased
2026-01-11 06:20 #98 completed Biased Biased
2026-01-10 00:00 #92 completed Clean Clean
2026-01-09 00:00 #87 cancelled Clean Clean
2026-01-06 22:28 #78 completed Clean Clean
2025-12-29 18:00 #48 cancelled Biased Biased
2025-12-15 00:00 #7 completed Clean Clean
2025-12-14 05:05 #6 completed Clean Clean

Flagged Code Snippets

When you copy and paste the ID, it might be broken into multiple lines. Merge the lines and trim the extra spaces.

To validate the deployment, run the following PowerShell command in the same shell pane to retrieve the secret in clear text. The command works only in the same shell session, because it uses the variable `$keyVaultName`, which is defined in the preceding PowerShell script.

Now you've prepared a key vault and a secret. The following sections show you how to customize an existing template to retrieve the secret during the deployment.

## Open a quickstart template

Azure Quickstart Templates is a repository for ARM templates. Instead of creating a template from scratch, you can find a sample template and customize it. The template that's used in this tutorial is called [Deploy a simple Windows VM](https://azure.microsoft.com/resources/templates/vm-simple-windows/).

1. In Visual Studio Code, select **File** > **Open File**.

1. In the **File name** box, paste the following URL:

    
    When you deploy the template, use the same resource group that you used in the key vault. This approach makes it easier for you to clean up the resources, because you need to delete only one resource group instead of two.

## Validate the deployment

After you've successfully deployed the virtual machine, test the sign-in credentials by using the password that's stored in the key vault.

1. Open the [Azure portal](https://portal.azure.com).

1. Select **Resource groups** > **\<*YourResourceGroupName*>** > **simpleWinVM**.
1. Select **Connect** at the top.
1. Select **Download RDP File**, and then follow the instructions to sign in to the virtual machine by using the password that's stored in the key vault.

## Clean up resources

When you no longer need your Azure resources, clean up the resources that you deployed by deleting the resource group.

    > [!IMPORTANT]
    > Replace the value for `id` with the resource ID of the key vault that you created in the previous procedure. The `secretName` is hardcoded as **vmAdminPassword**.  See [Prepare a key vault](#prepare-a-key-vault).

    ![Integrate key vault and Resource Manager template virtual machine deployment parameters file](./media/template-tutorial-use-key-vault/resource-manager-tutorial-create-vm-parameters-file.png)

1. Update the following values:

    * `adminUsername`: The name of the virtual machine administrator account.
    * `dnsLabelPrefix`: Name the `dnsLabelPrefix` value.

    For examples of names, see the preceding image.

1. Save the changes.

## Deploy the template

1. Sign in to [Cloud Shell](https://shell.azure.com).

1. Choose your preferred environment by selecting either **PowerShell** or **Bash** (for CLI) on the upper left corner.  Restarting the shell is required when you switch.

    ![Azure portal Cloud Shell upload file](./media/template-tutorial-use-template-reference/azure-portal-cloud-shell-upload-file.png)

1. Select **Upload/download files**, and then select **Upload**. Upload both *azuredeploy.json* and *azuredeploy.parameters.json* to Cloud Shell. After uploading the file, you can use the `ls` command and the `cat` command to verify the file is uploaded successfully.

1. Run the following PowerShell script to deploy the template.