Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I'm often creating new VM instances with PowerShell. I always like to use the most recently published template from the Azure marketplace when creating it. If you've ever ran the Get-AzureVMImage powershell cmdlet you'll be overwhelmed with hundreds of choices. This is a quick one-liner to find the most recently published template in the Windows Server 2012 R2 Datacenter family.
#One liner to get the image name
$imageName = (Get-AzureVMImage | WHERE {$_.ImageFamily -like "Windows Server 2012 R2 Datacenter"} | Sort-Object PublishedDate -Descending | Select -First 1 ImageName).ImageName
#Create a VM instance based on it
$subscriptionName = "subscription"
$storageAccount = "accountname"
$adminName = "admin"
$adminPassword = "password"
$vmName ="yourVM"
$location = "West US"
$vmSize ="Standard_D2"
$OSDiskPath = "https://" + $storageAccount + ".blob.core.windows.net/vhds/" + $vmName + "_OS.vhd"
Set-AzureSubscription -SubscriptionName $subscriptionName -CurrentStorageAccountName $storageAccount
$vm = New-AzureVMConfig -Name $vmName -ImageName $imageName -InstanceSize $vmSize -MediaLocation $OSDiskPath
Add-AzureProvisioningConfig -Windows -VM $vm -AdminUsername $adminName -Password $adminPassword
New-AzureVM -ServiceName $vmName -VMs $VM -Location $location
Comments
- Anonymous
April 01, 2015
This looks awesome!, but as just a quick follow up it'd be nice if us PS users started trying to watch line count and readability. Here is the same code with some clean up.$subscriptionName = "subscription"$storageAccount = "accountname"$adminName = "admin"$adminPassword = "password"$vmName = "yourVM"$location = "West US"$vmSize = "Standard_D2"$osselection = "Windows Server 2012 R2 Datacenter"$imageName = (Get-AzureVMImage | WHERE { $_.ImageFamily -like $osselection } | Sort-Object PublishedDate -Descending | Select -First 1 ImageName ).ImageName$OSDiskPath =
("https://" + $storageAccount + ".blob.core.windows.net/vhds/" +
$vmName + "_OS.vhd") Set-AzureSubscription -SubscriptionName $subscriptionName
-CurrentStorageAccountName $storageAccount$vm = New-AzureVMConfig -Name $vmName
-ImageName $imageName -InstanceSize $vmSize
-MediaLocation $OSDiskPath Add-AzureProvisioningConfig -Windows
-VM $vm -AdminUsername $adminName
-Password $adminPassword New-AzureVM -ServiceName $vmName
-VMs $VM ` -Location $location - Anonymous
August 18, 2016
Hi How can we get $imageName in Resource Manager. I need to deploy multiple VMs which will be using Premium Disk hence i am planning to use powershell. Thanks