Interview – Jeffrey Snover, The Inventor of PowerShell

Introduction

We had a great talk with Jeffrey Snover, Microsoft Technical Fellow, and CTO for Modern Workforce Transformation. Snover is the inventor of Windows PowerShell, an object-based distributed automation engine, scripting language, and command-line shell.

Enjoy the full interview below!

How to Use Minimal Hybrid to Quickly Migrate Exchange Mailboxes to Office 365

With the increasing popularity of cloud-based services, more and more organizations and businesses are shifting their on-premises Exchange to Office 365 or Microsoft 365. If you are planning to migrate your Exchange on-premises Server to Microsoft 365 or Office 365, you have several options, such as 

  • Cutover Migration
  • Staged Migration
  • Hybrid Migration
  • IMAP-Based
  • Office 365 Import Service
  • Third-Party Software 

You can choose the Office 365 migration option based on the on-premises Exchange Server version your organization is running on. 

Changing a Drive Letter With PowerShell

Here is a short but sweet post on how to change the drive letter of a partition. Despite using my best Google skills I couldn't find an example that was doing it for me. I rolled up my sleeves and just figured it out on my own. I hope this helps someone out there.

Set-Partition -DiskNumber 4 -PartitionNumber 1 -NewDriveLetter X

As long as you know the DiskNumber and PartitionNumber this will immediately change the drive letter of the partition you specify.

Using .NET Core in Jupyter Notebook

Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations, and narrative text. It can be used as a tool for interactively developing and presenting data science projects. Mostly, it is used with Python and R which are scripting languages. However, it can also be used with compiled languages, such as .NET programming languages, Go, and Julia. For a list of supported programming languages, please refer to the Jupyter kernels page in GitHub.

This article explains steps to set up Jupyter Notebook for .NET Core programming languages on Windows 10.  It is based on the .NET Notebooks Preview 2 that supports C#, F#, and PowerShell. This article also provides few C# examples that demonstrate how to use DataFrame and Charts.

Learn Powershell With These 5 Steps

I work with a lot of different technologies every day, some are fun to use while others are a little boring and repetitive. To help with the repetitive part, I turned to scripting. (Blogging has been pretty fun too!)

Recently I started thinking about how much I have learned about scripting over the past few years, and then I thought about sharing this information with my readers. So I came up with this article in the form of a question: How do I learn Powershell for Beginners? 

How to Deploy Azure Function Apps With Powershell

Hi All! Today I want to show a quick’n’dirty way to easily deploy your projects to Azure using Powershell.

I’ve been working a lot recently with Azure Functions and Web Apps. And of course, each time I’m confident with my code, I want to see it deployed on the Cloud.

DevOps Practices for PowerShell Programming

Powershell is a powerful scripting language and I have seen a lot of developers and administrators miss out on all the goodness of DevOps practices such as versioning, test automation, artifact versioning, CI/CD, etc. 

In this blog, I’ll try to explain with a working example on how to program PowerShell (not just scripting) with a predetermined module structure, ensuring quality with unit tests and deliver code in a reliable and repeatable way using continuous integration and continuous delivery pipelines.

Download Blob to Azure VM using Custom Script Extension via PowerShell

Virtual Machines in Azure can be spun up in multiple ways — Azure Portal, PowerShell, or by deploying ARM templates. They are created to serve a purpose, and often, we come across the need to store files in the VM. This can be achieved in multiple ways — Disks, AzCopy, download from Blob, Github, or other URLs. Installing or copying these files post-VM-creation is a daunting task, as that requires you to RDP or SSH into the machine and then start executing commands.

With the help of Custom Script Extension, copying files post VM creation can be automated with a simple PowerShell script. All you have to do is point out the location to the PowerShell script stored as a Blob in one of the containers.

How to Create and Refresh Development and Test Databases Automatically Using SQL Clone and SQL Toolbelt

SQL Toolbelt

Phil Factor shows how a set of Redgate tools can be used together via PowerShell to build a database from object-level source, stock it with data, document it, and then provision any number of test and development servers. Before tearing down and rebuilding a database to a new version, we take care to save any DDL changes made to the existing copy.

You may also like:  Database Continuous Integration With SQL Clone and SQL Change Automation

In order to deliver database changes more quickly, there are several tasks that must be automated. It can be a daunting job to ensure that the whole team has the latest database build when there is a proliferation of copies and the database is big. This article provides a PowerShell automation script that creates and refreshes the various databases on one or more servers that are required for test and development work. It uses Redgate's SQL Clone (a component of SQL Provision), SQL Compare and a few other optional tools from the SQL Toolbelt.

How to Create a Self-Signed Certificate With PowerShell [Snippet]

When we develop web-application or experiment with some technologies, it's quite common to need a certificate. A certificate for real world scenarios can be expensive, and it's over-engineering for testing purposes. So with this simple PowerShell script (on Windows), we can create a self-signed certificate for development enviroments.

$cert = New-SelfSignedCertificate -DnsName mydemowebapp.net -CertStoreLocation cert:\LocalMachine\My

$pwd = ConvertTo-SecureString -String "MyPassword" -Force -AsPlainText

Export-PfxCertificate -Cert $cert -FilePath C:\temp\cert.pfx -Password $pwd


Create and Refresh Development and Test Databases Automatically

In order to be able to deliver database changes more quickly, there are several tasks that must be automated. It can be a daunting job to ensure that the whole team has the latest database build when there is a proliferation of copies and when the database is big.

This article illustrates a solution, showing how a set of Redgate tools can be used together via PowerShell to build a database from object-level source, stock it with data, document it, and then provision any number of test and development servers. Before tearing down and rebuilding a database to a new version, we take care to save any DDL changes made to the existing copy.

SQL Power Doc to Discover, Diagnose, and Document SQL Server

This article will provide an overview of SQL Power Doc, a powerful script to document SQL Server including prerequisites, purpose, installation, processing, and output. Automation seems to be an increasing need in the IT industry. At present, PowerShell leads the game in Windows-based environments since it is capable of handling highly complex workflows. PowerShell is the go-to choice when it comes to automating even requirements such as configuration management. I got the opportunity to assess SQL Power Doc recently. I have worked with PowerShell a lot (I have even written a book on it) and have built my share of automation and designing tools using it. When I took a look at SQL Power Doc, I felt the tool did have its share of capabilities to help DBAs in its own way. Let me detail some of my experiences while exploring this tool.

What Is SQL Power Doc?

SQL Power Doc was written by Kendal VanDyke. It is a command line PowerShell manifest consisting of several PowerShell modules that will help you build a solid foundation to Discover, Document and Diagnose SQL Server instances and Windows Operating system details. Additionally, you’ll gain some insight into what directions you can go for future exploration. It basically invokes PowerShell cmdlets and give you the necessary details front and center.