Friday, September 16, 2016

Tips for Microsoft Ignite Attendees

A few years ago the very first blog post on this blog was Tips for Teched Attendees. Now that Teched North America is Microsoft Ignite, we offer an updated list of some helpful tips for Microsoft Ignite Attendees.

Tips for #MSIgnite Attendees 
  1. Take some Chewing gum for the flight. Years ago someone told me about chewing gum during takeoff and landing helps with air pressure in your inner ear (known as airplane ear) when ascending and descending. I always pack some gum in my carry-on just for this purpose.  
  2. Do not to pack too many clothes. You can get free T-shirts from most vendors and some usually have incentives for wearing their shirt on the Expo Floor. You will not have time to wear all the extra clothes if you bring them but you will have room in your bag to take home all the T-shirts you will get.
  3. Bring comfortable shoes, (go for worn-in shoes, not new shoes) for all the walking you will have to do to get to sessions and meals (breakfast and lunch are provided at Ignite) and maybe back to your hotel if is close.
  4. You will most likely get a backpack as an Ignite Attendee so unless you really like yours or it is a road warrior type or laptop bag, one is not needed.
  5. Bring your cell phone charger(s), portable battery packs and/or power strip. There should be outlets available in sessions in the convention center and in the lounges. If you bring a power strip you can make some new friends as you network in the lounges. 
  6. Try to arrive early for breakfast and lunch times at Ignite. Lines can be long but they move quickly. Vegetarian food is included in the regular food offerings this time around. There are separate areas for pre-registered dietary needs only (Vegan, Dairy-Free/Lactose Intolerant, Gluten-Free, Halaal or Kosher).
  7. Plan to arrive for your sessions early. Rooms can fill up for some of the more popular speakers and topics. Try to attend the second session of a topic if there is one available. Use the Schedule Builder to know what will be available. If you are above a 101 level skip those sessions and attend the ones that will be more beneficial to you and your company. Also add multiple sessions to the same timeslot on your schedule, it can help if a session is full and there is only that one for the entire conference.
  8. If you really want to attend the early morning sessions, try not to stay up too late at night. Keep in mind most sessions will be recorded and available later for attendees to download after the conference.
  9. Get to registration early with your final confirmation email(on paper or on your mobile device) and your Government Issued ID. In past years, there is a self-checkin process that was really efficient. This year they are offering check-in at the airport and other places including some hotels.
  10. Do NOT lose your badge. This is needed to get into sessions, events and will be scanned by the vendors on the Expo Floor so they can contact you after the show.(it's a business card without walking around with 500 cards).
  11. Use the My Ignite Site . It contains all the latest changes including room swaps, cancellations and other updated information during the conference.
  12. If you are on Twitter, follow the @MS_Ignite Account for great information and find posts from other attendees, vendors and Microsoft Ignite account with the official hashtag #msignite.  Also another helpful account to follow is @TheKrewe and search hashtag #thekrewe to make your Ignite experience better. 
  13. Pack a fleece or light jacket or long sleeved shirt that you can remove when you go outside. The air conditioning units may be on blast in some of the rooms.
  14. Use the Interactive Labs formerly Hands-On Labs. Those are great opportunities to get familiar with the Microsoft products and there usually very helpful staff nearby that can help with technical issues. Add them to your schedule in the Schedule Builder. Tip: Get to these early since they are usually in high demand throughout the conference.
  15. Remember to recycle your unwanted papers etc. from the Ignite backpack. There is usually a recycle station at the booth for THE CODE PROJECT.
  16. Save your wristband for the Ignite Attendee Celebration on Thursday evening. It is usually a tear-off perforated strip on the side of the flyer announcing the Attendee celebration. Do not throw it away without removing the wristband first. You will be unable to purchase another one this year since they are sold out.
  17. Schedule some break time to recover from the walking around the convention center and the food. There are plenty of lounge areas at Ignite this year. I'll see you there.
  18. Provide feedback about the sessions you attend using the surveys. Microsoft is listening and you can help shape the next Ignite by just filling out the surveys.
  19. Ice-cream bars come out at around 3 pm. Be on the lookout for the coolers. They disappear fast. There are usually frozen fruit bars available too. A few years ago when Ignite was TechEd, these were not there but Microsoft is bringing them back.
  20. For you coffee and tea drinkers, you should bring a travel mug with you or if you get one as swag from a vendor, you can use that since it will hold more liquid and keep your drink hot longer than the paper cup at the coffee and tea stations.
  21. Put Ignite in your pocket and download the Microsoft Ignite App. It is available for Windows, Android and iOS. Learn more at
Enjoy Microsoft Ignite and go back to your jobs and share what you have learned! Comments are welcomed.

Wednesday, August 17, 2016

5 More Tips for Exchange Server 2013 Administrators

Are you thinking about deploying Exchange Server 2103 or have you already done it? Microsoft released the Exchange Server 2103 Preview  in July 2012 and the Release to Manufacturing (RTM) build for Exchange Server 2013 in October 2012. Exchange Server 2013 is now up to cumulative Update (CU) 13 released in June 2016 at the time of this blog post.  In this blog series, we share some helpful tips that will help you as an Exchange Server 2013 Administrator. Here is a link to the first post titled 5 Tips for Exchange 2013 Administrators. Now on to the next post in the series:"5 More Tips for Exchange Server 2013 Administrators"
5 More Tips for Exchange Server 2013 Administrators
  1. Learn how to search in the Exchange Admin Center
    Searching in the Exchange Admin Center is different than the Exchange Management Console in Exchange 2007. In older versions of Exchange using the Exchange Management Console (EMC) or the Exchange Control Panel (ECP), you were able to find mailboxes when searching by just entering the name or part of the name and you would get results. We published a post on how to search using the Exchange Admin Center so please check that out.

  2. Triple verify that your third party applications work with Exchange 2013.
    This includes Anti-virus exclusions, monitoring and auditing software. This is very important to know as you deploy Exchange 2013. If the vendor does not have a version that supports Exchange 2013 you run the risk of having the product impact your Exchange deployment and cause issues or if you opt not to use it until they do, then you lose the benefits that you purchased the product for in the first place. Either outcome is not what you want. We dealt with McAfee Anti-virus exclusion paths for Exchange directories impacting our Exchange 2013 deployment and until it was addressed we actually suspended migrations while we worked with McAfee, Microsoft and our security team. For more information on Anti-Virus Software in the Operating System on Exchange Servers

  3. Learn how the Exchange Administration Center works in Exchange Server 2103
    In an environment like ours which is a large enterprise, there are thousands of admins that manage user issues like creating mailboxes, distribution groups, Public Folders and adding user photos to name a few. We have created documentation to assist them using the Exchange Administration Center since the new interface is different to how users were managed in Exchange 2007 which is what we migrated from to Exchange 2013.

  4. Learn how Database Availability Groups(DAGs)work
    Database Availability Groups (DAGs) were first introduced in Exchange 2010 and are here to stay. DAGs are a base component of the high availability and site resilience framework built into Exchange 2013. A DAG is a group of up to 16 Mailbox servers that host a set of databases and provides automatic, database-level recovery from failures that affect individual databases, networks, or servers. Any server in a DAG can host a copy of a mailbox database from any other server in the DAG. When a server is added to a DAG, it works with the other servers in the DAG to provide automatic recovery from failures that affect mailbox databases, such as a disk failure or server failure. for more information, reference Database availability groups (DAGs)

  5. Use the tools provided by Microsoft: Microsoft Remote Connectivity Analyzer and the Exchange Server Deployment Assistant
  6. When you are preparing to deploy Exchange, Microsoft has provided resources to help you. The Microsoft Remote Connectivity Analyzer validates External connectivity to your servers and lets Exchange Admins run connectivity diagnostics to test issues with Exchange, Skype for Business/Lync and Office 365. There is also now a Client Testing option and Message Analyzer in the latest version of the tool. Here is a screenshot from

    The Exchange Server Deployment Assistant is a web-based tool that asks you a few questions about your current environment and then generates a custom step-by-step checklist that will help you deploy different versions of Exchange Server for different types of scenarios. Learn more at

BONUS TIP : Do not ignore the cloud.
The cloud has come a long way and should not be ignored in your Exchange 2013 deployment. A hybrid configuration where some user mailboxes are hosted in the cloud and are connected to the others deployed in your data centers is becoming a common scenario. A hybrid configuration provides a seamless look and feel for Exchange in your organization and Exchange Online in Microsoft Office 365. In addition, a hybrid deployment can serve as an intermediate step to moving completely to an Exchange Online organization. Reduced costs, benefits of not maintaining hardware and accessibility from anywhere are some of the factors that make Office 365 appealing to some companies and you may want to take a look at that.

We hope these tips have been helpful in your Exchange 2013 deployments. If you have any thoughts, opinions or comments feel free to share them below.

Tuesday, July 19, 2016

How to run multiple PowerShell commands in c# (including pre-environment commands like set-adserversettings -viewentireforest:$true)

This allows me to create a script in a string with multiple commands, it processes 1 command at a time and then creates a runspace in c# and runs all of the powershell commands. The amount of commands that you could put inline in the string is endless.

<pre lang="C#">string scriptText = @"$pw = convertto-securestring -AsPlainText -Force -String '<password>'; $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist '<domain>\<username>', $pw;  $session = new-pssession -ConfigurationName Microsoft.Exchange -ConnectionUri '<server url>/powershell' -credential $cred; import-pssession $session; Set-ExecutionPolicy bypass -confirm:$false -force; $pic = ([System.IO.File]::ReadAllBytes('" + <picture file name> + "')); set-userphoto -identity <username> -picturedata $pic -domaincontroller '<dc fqdn>' -confirm:$false;";


<pre lang="C#">private string runExchangeShellScript(string scriptText)
            Runspace runspace = RunspaceFactory.CreateRunspace();

            // open it

            // create a pipeline and feed it the script text
            Pipeline pipeline = runspace.CreatePipeline();
            RunspaceInvoke runSpaceInvoker = new RunspaceInvoke(runspace);
            runSpaceInvoker.Invoke(&quot;Set-ExecutionPolicy Unrestricted&quot;);

            // add an extra command to transform the script output objects into nicely formatted strings
            // remove this line to get the actual objects that the script returns. For example, the script
            // &quot;Get-Process&quot; returns a collection of System.Diagnostics.Process instances.

            // execute the script
            Collection&lt;PSObject&gt; results = null;
                results = pipeline.Invoke();
            catch (Exception ex)
                MessageBox.Show(ex.InnerException + &quot; - &quot; + ex.Message + &quot; - &quot; + ex.Source + &quot; - &quot; + ex.StackTrace + &quot; - &quot; + ex.TargetSite + &quot; - &quot; + ex.Data);
                return &quot;&quot;;

            // close the runspace

            // convert the script result into a single string
            StringBuilder stringBuilder = new StringBuilder();
            foreach (PSObject obj in results)

            // return the results of the script that has
            // now been converted to text
            return stringBuilder.ToString();