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
⚠️ missing_linux_example
Summary:
The documentation is heavily biased towards Windows and PowerShell usage. All deployment and configuration steps are provided exclusively using Azure PowerShell cmdlets, with no mention or examples for Azure CLI, Bicep, ARM templates, or Terraform, which are commonly used on Linux and cross-platform environments. The only command-line example for SFTP connection is generic, but the setup and management instructions assume a Windows/PowerShell environment throughout.
Recommendations:
  • Provide equivalent Azure CLI examples for all deployment and configuration steps, as Azure CLI is cross-platform and widely used on Linux and macOS.
  • Include Bicep or ARM template snippets for infrastructure-as-code parity.
  • Add a note at the beginning clarifying that the instructions are PowerShell-specific, and link to cross-platform alternatives.
  • Explicitly mention that all steps can be performed from Linux/macOS using Azure CLI, and provide links or examples.
  • Ensure that any references to tools or commands (such as 'command prompt') are platform-neutral or include both Windows and Linux/macOS equivalents.
  • Consider including a table or section comparing PowerShell and CLI commands for each major step.
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

$rg = "<resource-group-name>" $location = "<location>" $storageaccountname = "<storage-account-name>" $staticEP = "10.0.2.10" $SubscriptionName = "<your Azure subscription name>" $UserPrincipalName = "<your AD user principal name>" $ContainerName = "<container-name>"
# Create a new resource group New-AzResourceGroup -Name $rg -Location $location # Create new subnets for the firewall $FWsub = New-AzVirtualNetworkSubnetConfig -Name AzureFirewallSubnet -AddressPrefix 10.0.1.0/26 $Worksub = New-AzVirtualNetworkSubnetConfig -Name Workload-SN -AddressPrefix 10.0.2.0/24 # Create a new VNet $testVnet = New-AzVirtualNetwork -Name test-fw-vn -ResourceGroupName $rg -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $FWsub, $Worksub # Create a public IP address for the firewall $pip = New-AzPublicIpAddress ` -ResourceGroupName $rg ` -Location $location ` -AllocationMethod Static ` -Sku Standard ` -Name fw-pip
# Create the firewall $firewall = New-AzFirewall ` -Name fw-01 ` -ResourceGroupName $rg ` -Location $location ` -VirtualNetwork $testvnet ` -PublicIpAddress $pip ` -FirewallPolicyId $policy.id
Set-AzStorageAccount ` -ResourceGroupName $rg ` -Name $StorageAccountName ` -EnableSftp $true $permissionScopeBlob = New-AzStorageLocalUserPermissionScope ` -Permission rwdlc ` -Service blob ` -ResourceName $ContainerName $localuser = Set-AzStorageLocalUser ` -ResourceGroupName $rg ` -AccountName $StorageAccountName ` -UserName testuser ` -PermissionScope $permissionScopeBlob $localuserPassword = New-AzStorageLocalUserSshPassword ` -ResourceGroupName $rg ` -StorageAccountName $StorageAccountName ` -UserName testuser # Examine and manually save the password $localuserPassword
# Create a new firewall policy $policy = New-AzFirewallPolicy -Name "fw-pol" -ResourceGroupName "$rg" -Location $location # Define new rules to add $newrule1 = New-AzFirewallPolicyNatRule -Name "dnat-rule1" -Protocol "TCP", "UDP" -SourceAddress "*" -DestinationAddress $pip.ipaddress -DestinationPort "22" -TranslatedAddress $staticEP -TranslatedPort "22" # Add the new rules to the local rule collection object $natrulecollection = New-AzFirewallPolicyNatRuleCollection -Name "NATRuleCollection" -Priority 100 -ActionType "Dnat" -Rule $newrule1 # Create a new rule collection group $natrulecollectiongroup = New-AzFirewallPolicyRuleCollectionGroup -Name "rcg-01" -ResourceGroupName "$rg" -FirewallPolicyName "fw-pol" -Priority 100 # Add the new NAT rule collection to the rule collection group $natrulecollectiongroup.Properties.RuleCollection = $natrulecollection # Update the rule collection Set-AzFirewallPolicyRuleCollectionGroup -Name "rcg-01 " -FirewallPolicyObject $policy -Priority 200 -RuleCollection $natrulecollectiongroup.Properties.rulecollection
New-AzStorageAccount -ResourceGroupName $rg -Name $StorageAccountName -SkuName Standard_LRS -Location $location -EnableHierarchicalNamespace $true -PublicNetworkAccess enabled # Get the subscription and user information $subscriptionId = (Get-AzSubscription -SubscriptionName "$SubscriptionName").SubscriptionId $user = Get-AzADUser -UserPrincipalName $UserPrincipalName # Give the user contributor role New-AzRoleAssignment -ObjectId $user.id -RoleDefinitionName "Storage Blob Data Contributor" -Scope "/subscriptions/$subscriptionId/resourceGroups/$rg/providers/Microsoft.Storage/storageAccounts/$StorageAccountName" #Create the container and then disable public network access $ctx = New-AzStorageContext -StorageAccountName $StorageAccountName New-AzStorageContainer -Name $ContainerName -Context $ctx Set-AzStorageAccount -ResourceGroupName $rg -Name $StorageAccountName -PublicNetworkAccess disabled -Force
# Place the previously created storage account into a variable $storage = Get-AzStorageAccount -ResourceGroupName $rg -Name $StorageAccountName # Create the private endpoint connection $pec = @{ Name = 'Connection01' PrivateLinkServiceId = $storage.ID GroupID = 'blob' } $privateEndpointConnection = New-AzPrivateLinkServiceConnection @pec # Create the static IP configuration $ip = @{ Name = 'myIPconfig' GroupId = 'blob' MemberName = 'blob' PrivateIPAddress = $staticEP } $ipconfig = New-AzPrivateEndpointIpConfiguration @ip # Create the private endpoint $pe = @{ ResourceGroupName = $rg Name = 'StorageEP' Location = 'eastus' Subnet = $testvnet.Subnets[1] PrivateLinkServiceConnection = $privateEndpointConnection IpConfiguration = $ipconfig } New-AzPrivateEndpoint @pe
Remove-AzResourceGroup -Name $rg -Force