Creating your first Azure Resource Manager Template

Here is a basic video of creating Azure Resource Manager template.  Not detailed but quick one.


Windows Azure – Exam preperation Links 70-533, 70-532 – Part 4

Staged Deployment on Microsoft Azure Websites


Azure Web Sites – Continuous Deployment with Staged Publishing

Azure Powershell Script to list Sites / Staging / Deployment Slots for Web Hosting Plans

Azure Websites Web Hosting Plans In-Depth Overview

Changing Azure Hosting Plans with PowerShell

Creating Azure Web Site using PowerShell

$WebSiteTitle = "TestWebSiteJY"
$Location = "East US"
New-AzureWebsite -Location $Location -Name $WebSiteTitle -
$WebSiteTitle = "azuretestjy123(staging)"
$WebSite = Get-AzureWebSite -Name $WebSiteTitle
$WebSite | Select Name, NetFrameworkVersion, AppSettings

#Adding App Setting to Azure Web Site Staging Slot
$CustomerAppSetting = @{"SiteUrl"=""}
Set-AzureWebsite $WebSiteTitle -AppSettings $CustomerAppSetting
Restart-AzureWebsite $WebSiteTitle

Enable IIS On Azure VM using Remote PowerShell

With Simple modification you can do anything you want.


# Define functions:
Function InstallWinRMCertificateForVM ($servicename, $svrname)
    Write-Host "Installing WinRM Certificate for remote access: $servicename $svrname"
    $WinRMCert = (Get-AzureVM -ServiceName $servicename -Name $svrname | select -ExpandProperty vm).DefaultWinRMCertificateThumbprint
	$AzureX509cert = Get-AzureCertificate -ServiceName $servicename -Thumbprint $WinRMCert -ThumbprintAlgorithm sha1

	$certTempFile = [IO.Path]::GetTempFileName()
	$AzureX509cert.Data | Out-File $certTempFile

	# Target The Cert That Needs To Be Imported
	$CertToImport = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $certTempFile

	$store = New-Object System.Security.Cryptography.X509Certificates.X509Store "Root", "LocalMachine"
	Remove-Item $certTempFile

$adminUsername  = '<username>'
$adminPassword = '<password>'

$vmname       = "HQServer1"
$cloudsvcName =  "HQServer1"

# Install the WinRM Certificate first to access the VM via Remote PS
InstallWinRMCertificateForVM $cloudsvcName $vmname

# Return back the correct URI for Remote PowerShell
$uri = Get-AzureWinRMUri -ServiceName $cloudsvcName -Name $vmname
$SecurePassword = $adminPassword | ConvertTo-SecureString -AsPlainText -Force
$credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $adminUsername,$SecurePassword

# Test Remote Script 
Invoke-Command -ConnectionUri $uri.ToString() -Credential $credential -ScriptBlock {
  Get-ChildItem c:\

# Install IIS
Invoke-Command -ConnectionUri $uri.ToString() -Credential $credential -ScriptBlock {
  Install-WindowsFeature -Name Web-Server -IncludeManagementTools -Source C:\Windows\WinSxS

# Disable Windows Firewall:
Invoke-Command -ConnectionUri $uri.ToString() -Credential $credential -ScriptBlock {
  Set-NetFirewallProfile -All -Enabled False 

Assign Availability Set to Existing Azure Virtual Machines

Import-AzurePublishSettingsFile 'D:\Windows Azure MSDN - Visual Studio Ultimate-12-2-2014-credentials.publishsettings'
Set-AzureSubscription -SubscriptionName "Windows Azure MSDN - Visual Studio Ultimate"

$VMHQServer1 = Get-AzureVM -Name HQServer1 -ServiceName "HQServer1"
$VMHQServer1 | Set-AzureAvailabilitySet -AvailabilitySetName WestAvailabilitySet | Update-AzureVM

$VMBranchServer1 = Get-AzureVM -Name BranchServer1 -ServiceName "BranchServer1"
$VMBranchServer1 | Set-AzureAvailabilitySet -AvailabilitySetName WestAvailabilitySet | Update-AzureVM

Get-AzureVM | Select Name, AvailabilitySetName, DNSName

Launch or Save Azure VM Remote Desktop Files using PowerShell

#Get VM Names
$VM1Name = "HQServer1"
$VM2Name = "BranchServer1"
#You can also seperate the Service names if they are different.
#Get VMs
$VM1 = Get-AzureVM -ServiceName $VM1Name -Name "HQServer1"
$VM2 = Get-AzureVM -ServiceName $VM2Name -Name "BranchServer1"
#Save to Desired folders
Get-AzureRemoteDesktopFile -Name $VM1Name -ServiceName $VM1.ServiceName -LocalPath D:\Azure\VM1.rdp
Get-AzureRemoteDesktopFile -Name $VM2Name -ServiceName $VM2.ServiceName -LocalPath D:\Azure\VM2.rdp
#Launch Directly
Get-AzureRemoteDesktopFile -Name $VM1Name -ServiceName $VM1.ServiceName -LocalPath -Launch
Get-AzureRemoteDesktopFile -Name $VM2Name -ServiceName $VM2.ServiceName -LocalPath -Launch

Azure – Creating Storage Account and Uploading VHD using PowerShell

A pretty basic script here.

Create Afinity Group

Create and Get Storage Account

Get Primary keys  and Generate Context

Create a new Container and Upload the VHD.

New-AzureAffinityGroup -Name "2053320532afinitygroup" -Location "East US"
$AfinityGroup = Get-AzureAffinityGroup -Name "2053320532afinitygroup"
New-AzureStorageAccount -StorageAccountName "2053320532storage" -AffinityGroup $AfinityGroup.Name
$StorageAccount = Get-AzureStorageAccount -StorageAccountName "2053320532storage"
$StoragePrimaryKey = (Get-AzureStorageKey -StorageAccountName $StorageAccount.StorageAccountName).Primary
$StorageContext = New-AzureStorageContext -StorageAccountName $StorageAccount.Label -StorageAccountKey $StoragePrimaryKey

New-AzureStorageContainer -Name "storeddisks1" -Permission Container -Context $StorageContext
$Container = Get-AzureStorageContainer -Name storeddisks1 -Context $StorageContext
$Url = ""
Add-AzureVhd -LocalFilePath D:\Azure\WindowsAzureTest2.vhd -Destination $Url

Microsoft Azure – Virtual Labs/Demo

Demo 4.1 Provision Microsoft Azure Virtual Machines By Using the Management Portal

Demo 6.2 Configure Multi-Factor Authentication in Microsoft Azure Active Directory

Demo 6.1 Getting Started with Microsoft Azure Active Directory

Demo 5 Monitor Virtual Machines By Using the Management Portal

Demo 4.5d Manage Microsoft Azure Virtual Machine Checkpoints By Using Windows PowerShell – Setting up Static IP to Azure VM

Demo 4.5c Export and Import Microsoft Azure Virtual Machines By Using Windows PowerShell

Demo 4.5a Provision Microsoft Azure Virtual Machines By Using Windows PowerShell

Demo 4.5b Configure Microsoft Azure Virtual Machines By Using Windows PowerShell


Find some other fancy demos below