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_tools
⚠️
windows_first
⚠️
missing_linux_example
Summary:
The documentation is heavily oriented toward Windows environments, with all command-line examples using PowerShell, explicit references to Windows file paths (e.g., C:\WINDOWS\system32), and instructions for editing the Windows hosts file using Notepad as administrator. Tools like Storage Explorer and AzCopy are mentioned, but their usage is described in a Windows context. There are no CLI or shell examples for Linux/macOS users, and no guidance for Linux-specific workflows (e.g., editing /etc/hosts, using Linux-native editors, or running Azure CLI from Bash). Even when Linux VMs are discussed, the operational steps are Windows-centric.
Recommendations:
- Provide equivalent Azure CLI (az) commands for all PowerShell examples, with sample outputs from a Bash shell.
- Include Linux/macOS instructions for editing the hosts file (e.g., using sudo nano /etc/hosts) and for certificate management.
- Show file paths and command prompts for both Windows (C:\...) and Linux/macOS (/home/user/...), or use platform-agnostic variables.
- Demonstrate how to use Storage Explorer and AzCopy on Linux/macOS, including installation and usage examples.
- Ensure that all screenshots and sample outputs are balanced between Windows and Linux environments.
- Explicitly state that all steps can be performed from Linux/macOS as well as Windows, and provide any necessary prerequisites or caveats for non-Windows users.
Create pull request
Flagged Code Snippets
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "vm1"
},
"adminUsername": {
"value": "Administrator"
},
"Password": {
"value": "Password1"
},
"imageName": {
"value": "myaselinuximg1"
},
"vmSize": {
"value": "Standard_NC4as_T4_v3"
},
"vnetName": {
"value": "vswitch1"
},
"subnetName": {
"value": "vswitch1subNet"
},
"vnetRG": {
"value": "myaserg1"
},
"nicName": {
"value": "nic1"
},
"privateIPAddress": {
"value": ""
},
"IPConfigName": {
"value": "ipconfig1"
}
}
}
Get-AzureRmVirtualNetwork
Command:
$templateFile = "<Path to CreateVM.json>"
$templateParameterFile = "<Path to CreateVM.parameters.json>"
$RGName = "<Resource group name>"
New-AzResourceGroupDeployment `
-ResourceGroupName $RGName `
-TemplateFile $templateFile `
-TemplateParameterFile $templateParameterFile `
-Name "<DeploymentName>"
PS C:\WINDOWS\system32> New-AzResourceGroupDeployment `
>> -ResourceGroupName $RGName `
>> -TemplateFile $templateFile `
>> -TemplateParameterFile $templateParameterFile `
>> -Name "Deployment4" `
>> -AsJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Long Running... AzureLongRun... Running True localhost New-AzureRmResourceGro...
PS C:\WINDOWS\system32> Get-Job -Id 4
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
New-AzResourceGroup -Name <Resource group name> -Location DBELocal
PS C:\WINDOWS\system32> New-AzResourceGroup -Name myaserg1 -Location DBELocal
ResourceGroupName : myaserg1
Location : dbelocal
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myaserg1
PS C:\WINDOWS\system32>
New-AzureRmResourceGroup -Name <Resource group name> -Location DBELocal
PS C:\windows\system32> New-AzureRmResourceGroup -Name myasegpurgvm -Location DBELocal
ResourceGroupName : myasegpurgvm
Location : dbelocal
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/myasegpurgvm
PS C:\windows\system32>
New-AzStorageAccount -Name <Storage account name> -ResourceGroupName <Resource group name> -Location DBELocal -SkuName Standard_LRS
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment `
>> -ResourceGroupName $RGName `
>> -TemplateFile $templateFile `
>> -TemplateParameterFile $templateParameterFile `
>> -Name "Deployment2" `
>> -AsJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 Long Running... AzureLongRun... Running True localhost New-AzureRmResourceGro...
PS C:\WINDOWS\system32> Get-Job -Id 2
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
PS C:\WINDOWS\system32>New-AzStorageAccount -Name myasesa1 -ResourceGroupName myaserg1 -Location DBELocal -SkuName Standard_LRS
StorageAccountName ResourceGroupName PrimaryLocation SkuName Kind AccessTier CreationTime ProvisioningState EnableHttpsTrafficOnly
------------------ ----------------- --------------- ------- ---- ---------- ------------ ----------------- ------
myasesa1 myaserg1 DBELocal Standard_LRS Storage 4/18/2022 8:35:09 PM Succeeded False
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> Get-AzStorageAccountKey
cmdlet Get-AzStorageAccountKey at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
ResourceGroupName: myaserg1
Name: myasesa1
KeyName Value Permissions
------- ----- -----------
key1 7a707uIh43qADXvuhwqtw39mwq3M97r1BflhoF2yZ6W9FNkGOCblxb7nDSiYVGQprpkKk0Au2AjmgUXUT6yCog== Full
key2 2v1VQ6qH1CJ9bOjB15p4jg9Ejn7iazU95Qe8hAGE22MTL21Ac5skA6kZnE3nbe+rdiXiORBeVh9OpJcMOfoaZg== Full
PS C:\WINDOWS\system32>
New-AzureRmStorageAccount -Name <Storage account name> -ResourceGroupName <Resource group name> -Location DBELocal -SkuName Standard_LRS
PS C:\windows\system32> New-AzureRmStorageAccount -Name myasegpusavm -ResourceGroupName myasegpurgvm -Location DBELocal -SkuName Standard_LRS
StorageAccountName ResourceGroupName Location SkuName Kind AccessTier CreationTime
------------------ ----------------- -------- ------- ---- ---------- ------------
myasegpusavm myasegpurgvm DBELocal StandardLRS Storage 7/29/2020 10:11:16 PM
PS C:\windows\system32>
PS C:\windows\system32> Get-AzureRmStorageAccountKey
cmdlet Get-AzureRmStorageAccountKey at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
ResourceGroupName: myasegpurgvm
Name: myasegpusavm
KeyName Value Permissions
------- ----- -----------
key1 GsCm7QriXurqfqx211oKdfQ1C9Hyu5ZutP6Xl0dqlNNhxLxDesDej591M8y7ykSPN4fY9vmVpgc4ftkwAO7KQ== 11
key2 7vnVMJUwJXlxkXXOyVO4NfqbW5e/5hZ+VOs+C/h/ReeoszeV+qoyuBitgnWjiDPNdH4+lSm1/ZjvoBWsQ1klqQ== ll
PS C:\windows\system32> Certutil -encode 'C:\myasegpu1_Blob storage (1).cer' .\blobstoragecert.pem
Input Length = 1380
Output Length = 1954
CertUtil: -encode command completed successfully.
$templateFile = "Path to CreateImage.json"
$templateParameterFile = "Path to CreateImage.parameters.json"
$RGName = "<Name of your resource group>"
New-AzResourceGroupDeployment `
-ResourceGroupName $RGName `
-TemplateFile $templateFile `
-TemplateParameterFile $templateParameterFile `
-Name "<Name for your deployment>"
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\CreateImage\CreateImage.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\CreateImage\CreateImage.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myaserg1"
PS C:\WINDOWS\system32> New-AzResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment1"
DeploymentName : deployment1
ResourceGroupName : myaserg1
ProvisioningState : Succeeded
Timestamp : 4/18/2022 9:24:26 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
osType String Linux
imageName String myaselinuximg1
imageUri String
https://myasepro2stor.blob.dm1176047910p.wdshcsso.com/myasepro2cont1/ubuntu13.vhd
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
$templateFile = "Path to CreateImage.json"
$templateParameterFile = "Path to CreateImage.parameters.json"
$RGName = "<Name of your resource group>"
New-AzureRmResourceGroupDeployment `
-ResourceGroupName $RGName `
-TemplateFile $templateFile `
-TemplateParameterFile $templateParameterFile `
-Name "<Name for your deployment>"
Get-AzureRmImage -ResourceGroupName <Resource Group Name> -name <Image Name>
PS C:\WINDOWS\system32> login-AzureRMAccount -EnvironmentName aztest -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
EdgeArmUser@localhost Default Provider Subscription aaaabbbb-0000-cccc-1111-dddd2222eeee aztest
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\CreateImage\CreateImage.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\CreateImage\CreateImage.parameters.json"
PS C:\WINDOWS\system32> $RGName = "rg2"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment4"
DeploymentName : deployment4
ResourceGroupName : rg2
ProvisioningState : Succeeded
Timestamp : 12/10/2020 7:06:57 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
osType String Linux
imageName String myaselinuximg
imageUri String
https://sa2.blob.myasegpuvm.wdshcsso.com/con1/ubuntu18.04waagent.vhd
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> Get-AzVirtualNetwork
Name : ASEVNET
ResourceGroupName : ASERG
Location : dbelocal
Id : /subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/ASERG/providers/Microsoft
.Network/virtualNetworks/ASEVNET
Etag : W/"990b306d-18b6-41ea-a456-b275efe21105"
ResourceGuid : f8309d81-19e9-42fc-b4ed-d573f00e61ed
ProvisioningState : Succeeded
Tags :
AddressSpace : {
"AddressPrefixes": [
"10.57.48.0/21"
]
}
DhcpOptions : null
Subnets : [
{
"Name": "ASEVNETsubNet",
"Etag": "W/\"990b306d-18b6-41ea-a456-b275efe21105\"",
"Id": "/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/ASERG/provider
s/Microsoft.Network/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
"AddressPrefix": "10.57.48.0/21",
"IpConfigurations": [],
"ResourceNavigationLinks": [],
"ServiceEndpoints": [],
"ProvisioningState": "Succeeded"
}
]
VirtualNetworkPeerings : []
EnableDDoSProtection : false
EnableVmProtection : false
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> Get-AzureRmVirtualNetwork
Name : ASEVNET
ResourceGroupName : ASERG
Location : dbelocal
Id : /subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/ASERG/providers/Microsoft
.Network/virtualNetworks/ASEVNET
Etag : W/"990b306d-18b6-41ea-a456-b275efe21105"
ResourceGuid : f8309d81-19e9-42fc-b4ed-d573f00e61ed
ProvisioningState : Succeeded
Tags :
AddressSpace : {
"AddressPrefixes": [
"10.57.48.0/21"
]
}
DhcpOptions : null
Subnets : [
{
"Name": "ASEVNETsubNet",
"Etag": "W/\"990b306d-18b6-41ea-a456-b275efe21105\"",
"Id": "/subscriptions/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a/resourceGroups/ASERG/provider
s/Microsoft.Network/virtualNetworks/ASEVNET/subnets/ASEVNETsubNet",
"AddressPrefix": "10.57.48.0/21",
"IpConfigurations": [],
"ResourceNavigationLinks": [],
"ServiceEndpoints": [],
"ProvisioningState": "Succeeded"
}
]
VirtualNetworkPeerings : []
EnableDDoSProtection : false
EnableVmProtection : false
PS C:\WINDOWS\system32>
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "VM1"
},
"adminUsername": {
"value": "Administrator"
},
"Password": {
"value": "Password1"
},
"imageName": {
"value": "myaselinuximg"
},
"vmSize": {
"value": "Standard_NC4as_T4_v3"
},
"vnetName": {
"value": "ASEVNET"
},
"subnetName": {
"value": "ASEVNETsubNet"
},
"vnetRG": {
"value": "aserg"
},
"nicName": {
"value": "nic5"
},
"privateIPAddress": {
"value": ""
},
"IPConfigName": {
"value": "ipconfig5"
}
}
}
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\CreateVM\CreateVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\CreateVM\CreateVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myaserg1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "Deployment2"
DeploymentName : Deployment2
ResourceGroupName : myaserg1
ProvisioningState : Succeeded
Timestamp : 04/18/2022 1:51:28 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String vm1
adminUsername String Administrator
password String Password1
imageName String myaselinuximg
vmSize String Standard_NC4as_T4_v3
vnetName String vswitch1
vnetRG String myaserg1
subnetName String vswitch1subNet
nicName String nic1
ipConfigName String ipconfig1
privateIPAddress String
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32
Command:
$templateFile = "<Path to CreateVM.json>"
$templateParameterFile = "<Path to CreateVM.parameters.json>"
$RGName = "<Resource group name>"
New-AzureRmResourceGroupDeployment `
-ResourceGroupName $RGName `
-TemplateFile $templateFile `
-TemplateParameterFile $templateParameterFile `
-Name "<DeploymentName>"
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\CreateVM\CreateVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\CreateVM\CreateVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "rg2"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "Deployment6"
DeploymentName : Deployment6
ResourceGroupName : rg2
ProvisioningState : Succeeded
Timestamp : 12/10/2020 7:51:28 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String VM1
adminUsername String Administrator
password String Password1
imageName String myaselinuximg
vmSize String Standard_NC4as_T4_v3
vnetName String ASEVNET
vnetRG String aserg
subnetName String ASEVNETsubNet
nicName String nic5
ipConfigName String ipconfig5
privateIPAddress String
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32
"imageUri": {
"value": "https://myasegpusavm.blob.myasegpu1.wdshcsso.com/windows/WindowsServer2016Datacenter.vhd"
},
Get-AzImage -ResourceGroupName <Resource Group Name> -name <Image Name>
"parameters": {
"osType": {
"value": "Windows"
},
"hyperVGeneration": {
"value": "V2"
},
}