PowerShell ISE Preview | A Sneak Peak

There is a new kid in the PowerShell block. Microsoft PowerShell team has announced a new preview ISE version which is separate from WMF 5.0. This product is uploaded to the PowerShell Gallery, to provide more agile builds rather than waiting to be packaged with WMF.  You can run both ISE Preview and OS built-in ISE version side by side without any conflict.

Getting Started

In order to run the ISE preview you should have WMF 5.0 installed. Unless you are using Windows 10 you need to download and install WMF 5.0 package.

Update

WMF 5.0 package has been removed from the Download Center due to a bug. Please refer the announcement here. Therefore you will have to stick with Windows 10 as of the writing of this post.

  • Open a PowerShell window with elevated privileges and execute below cmdlet. Alternatively you can use -Scope CurrentUser parameter if you wish to install the preview only for your user account.

Install-Module -Name PowerShellISE-preview

  • Following cmdlet will install Start menu shortcuts for ISE preview.

Install-ISEPreviewShortcuts

  •  To start the ISE preview type isep and press enter.
  • To update the ISE module simply execute below cmdlet.
Update-Module -Name PowerShellISE-preview

Limitations

  • Currently the ISE Preview only works with PowerShell v5 installed, either with Windows 10  or with WMF 5.0
  • This release is English-only.
  • There is a possibility for existing add-ons to have issues with the new ISE Preview.  PowerShell team states that ISE Steroids and Azure Automation Authoring Toolkit seems to be working fine with the new preview according to their testing.

 

Creating a SQL Database V12 Server in Azure

Few days ago my friend Business Solutions (Dynamics NAV) MVP Tharanga Chandrasekara came up with an interesting question. Creating a logical server for SQL Azure DB (PaaS) in the old Azure Service Management Portal is possible but why can’t we do that in the new Azure Resource Manager Portal. To find out what is happening I tried exploring the SQL PaaS option in the ARM portal.

When we create a new SQL database in the ARM portal we can create a logical server along with it as below.

SQL V12 1

But somehow when we checked two days back there was no Add button under SQL servers. We have tried the same thing in several Azure Subscriptions but there was no luck.

SQL V12 3

But today I checked again the same thing in one of my subscriptions and could see the Add button and could create a server without any problem.

SQL V12 2

Nothing out of the ordinary was mentioned in any forum as well and Tharanga has posted a question in User Voice. We were hoping the PG can shed some light into this. Whether it was a glitch on certain subscriptions or actually missing feature until now.

This led me to explore how to do this in ARM using PowerShell.

  • First you need to install the new Azure PowerShell module to start with. You can refer this to understand how to do so.
  • Then you can execute below cmdlets in Azure Powershell to login to your Azure Subscription and choose the exact subscription (if you have many Azure subscriptions under one account)

Add-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId <Subscription ID>

  • Not all resources in ARM are available in all regions so it is always better to check whether the V12 database servers are available in the region you were planning to deploy.

(Get-AzureRmLocation | where-object {$_.Name -eq “Microsoft.Sql/servers” }).Locations

  • Next step is to create  a resource group in your desired region. I chose East US.

New-AzureRmResourceGroup -Name “jcbv12sql-RG” -Location “East US”

  • Then you can create the SQL V12 server and add firewall rules to allow any connections from outside Azure.

New-AzureRmSqlServer -ResourceGroupName “jcbv12sql-RG” -ServerName “jcbv12svr01” -Location “East US” -ServerVersion “12.0”

New-AzureRmSqlServerFirewallRule -ResourceGroupName “jcbv12sql-RG” -ServerName “jcbv12svr01” -FirewallRuleName “exrule1” -StartIpAddress “<First IP Address>” -EndIpAddress “<Last IP Address>”