If the number of sessions at Microsoft's inaugural Ignite conference is any indication, the company is placing a huge bet on Office 365's success. Of the 674 recordings available for viewing, 81 -- or 12 percent of the total -- are about Office 365. Show-of-hands polls in multiple sessions showed many attendees had either already rolled out an Office 365 migration project or had one in the works.
Session BRK3209, "The Power of the Shell: Advanced Administration of Office 365 with Windows PowerShell" focused on how to do administrative tasks involving many users. The majority of the tips involved using PowerShell to accomplish repetitive and multiple-user tasks.
Office 365: Getting Started
Two downloads are available to get started using the tips presented. The Microsoft Online Services Sign-In Assistant for IT Professionals tool helps streamline the process of connecting to your Office 365 account and comes in both a 32- and 64-bit version. The second thing you'll need is the Azure Active Directory PowerShell module. You must install the first download before the Azure AD module, as it depends on the first. This module only comes in a 64-bit version, so you'll need to be running a 64-bit version of Windows for it to work.
While this session wasn't intended to be a tutorial on the basics of PowerShell, a number of points were presented in an attempt to remove some of the fear often associated with using the command line. Understanding the basic PowerShell syntax will help you better grasp individual commands and how to use them. Each PowerShell command or cmdlet (pronounced command-let) uses a verb-noun structure, as in get-help.
Office 365 and PowerShell
The first command recommended for exploration is Get-Command, which produces information and syntax for other PowerShell cmdlets. Figure 1 shows what you will see when you type the Get-Command *msol*.
The second most import cmdlet mentioned was Get-Help. Get-Help displays the description of and common usage for the subject cmdlet. Figure 2 shows the result of Get-Help Get-MsolContact.
Two common verbs used to accomplish many important tasks are get and set. Using the get verb first will show the current settings before taking any action. After the first get, you would issue a Set command followed by another Get to see the result. An example was given using the following line of PowerShell:
Get-MsolUser –UserPrincipalName email@example.com | ft –auto DisplayName, BlockCredential
The output of this line of PowerShell will show the current state of the BlockCredential property for firstname.lastname@example.org should that user exist. Using the Get command first accomplishes several things. First, it validates the username has been entered correctly. Second, it shows the current state of the user's credentials.
This line of PowerShell also demonstrates the use of the pipe ('|') character. Here the output of the Get-MsolUser command is piped to the ft cmdlet which is an alias for format-table. The output should be a nicely formatted table with column headers and the matching properties.
Another handy option is to use the –WhatIf parameter to prevent any action from taking place before you absolutely want it to happen. This parameter will show the effect of a command without actually executing it.
The MsolUser object is probably the most important and most used object when it comes to automated changes. Documentation for the Set-MsolUser cmdlet on the MSDN site is a good place to go for the definitive explanation of all the options. Set-MsolUserPassword is another commonly used cmdlet to fix forgotten or expired passwords.
Tips for PowerShell and Office 365
Here's a list of tips presented to make using PowerShell a little easier:
- Use tab completion in the command shell to avoid typing mistakes.
- Use ctrl right/left arrow to jump to the next/previous whitespace.
- Use get and pipe the output to fl (format-list) to see explore available parameters.
- Red is your friend. Don't be afraid of errors as they help you see what went wrong.
If you intend to write a good bit of PowerShell, you'll want to get familiar with the PowerShell Integrated Script Editor. PowerShell ISE is a powerful tool which provides a syntax-highlighting editor (see Figure 4) along with an interactive command prompt, allowing you to write and test code one line at a time. The latest version of PowerShell ISE includes a handy show command add-on with descriptions for commands.
The Office 365 Admin App gives you basic functionality to accomplish many tasks right from your mobile device. An example task mentioned in the session consisted of assigning a license for a new executive from a restaurant. The app also provides insight into individual service incidents and can be configured to deliver "toast" notifications.
Future capabilities discussed included the Office 365 Management application programming interfaces (APIs). These will make it possible to deliver customized management tools which a service provider could give to a customer to accomplish specific tasks without giving full access to the entire range of administrative functions.
Impressions of Microsoft Ignite
The Microsoft Ignite conference was the first edition of a combined version of previously separate events. While there were some bumps concerning logistics, the overall conference attitude from attendees was one of excitement, based on the hallway and lunch time conversation. Many people spoke of a new openness and attentiveness to the customer from Microsoft that they haven't seen in quite some time. That can only bode well for everyone who counts on Microsoft to help keep their businesses going.
Paul Ferrill has been writing in the IT trade press for over 25 years. He's written hundreds of articles for publications like Datamation, Federal Computer Week, InfoWorld, Network Computing, Network World and PC Magazine and is the author of two books. He is a regular contributor to ServerWatch and several other QuinStreet Enterprise properties.