A Guide to Passing Azure Exam 70-533

Back in April of this year, I passed Azure exam 70-533:  Implementing Microsoft Azure Infrastructure Solutions.  To be honest, this was actually my second attempt at the exam.  I failed on my first try about three weeks earlier.  But who’s counting?   All that matters is that I persisted and eventually passed.  I’m not mentioning this to be discouraging to anyone intending to take the exam.  However, my intention is to provide encouragement if you don’t pass the first time around.  No one likes seeing the word “Fail” on the exam printout, but it’s not the end of the world.  With that being said, I thought I would write an article outlining the methods I employed to prepare for the test.

Practical Experience

First and foremost, you will need hands-on experience to pass this test.  Azure exam 70-533 is not easy and cannot be passed solely on reading books or articles.  If you do not have access to Azure through your employer or a Visual Studio subscription, Microsoft offers a 30-day free trial, which comes with a $200 credit.  The free trial allows you to create resources in Azure such as VM’s, vrtual networks, storage accounts, web apps, containers, etc.

Once you setup your account, it’s important to have a strategy to learning the skills that are needed to pass the exam.  Microsoft has a list of objectives and related skills that are covered by the exam.  As of this writing, the objectives were last updated on March 29, 2018.  Under each category of objectives are a number of relevant tasks or exercises.  Go to the exam site and do exercises around all the listed skill areas.  Microsoft has excellent documentation that will help you develop the skills measured by exam 70-533.  Also, it’s very important to learn how to accomplish tasks using Powershell and ARM templates, instead of only in the Portal.  For instance, learn how to deploy VM’s and related resources from a script or template.  Perform all of the tasks until you feel you have mastered them.

Training Courses

Pluralsight courses were an asset that proved to be a critical component of my training.  This site offers a number courses that cover topics such as Azure infrastructure solutions, storage, networking, application services, ARM templates, Identity management and more.  Also, there is a learning path for exam 70-533 that consists of about 7 or 8 course.  The training material is excellent, and consists of demos and exercise files that provide some practical training.  Pluralsight courses will give you a solid foundation.  Additionally, a monthly Pluralsight subscription will cost you $29.  The site is more than worth the price.  Another site that was helpful is Cloud Ranger.  The courses are free but many of them are now outdated since they are designed around the old Classic Model.

Practice Exam

I would advise you to get the official Measureup practice exams from Mindhub.  Some of the questions are on the Classic model, however the exam was still very helpful.  The real exam is all ARM, nothing on the Classic model.  The Measureup practice exam provides the option of taking the test in Practice mode, which is a customizable format.  For instance, you can select questions from a particular objective, or only questions that you missed during the last practice exam.  A huge benefit with the practice test is that it offers explanations for why an answer is correct and the others are wrong.  Also, each answer has links to documents that are relevant to each question.  DO NOT memorize the answer; know why an answer is correct.  I retook the full Practice exam (nearly 200 questions) until I consistently passed with at least a 95%.  At this point, I moved on to taking the practice test in Exam mode.  Mindhub currently has a special that offers an exam voucher, the practice test and 2 retakes for $266.00.

Helpful Links

The Exam 70-533 reference book has not been updated for awhile, but this site has tips that were extracted from the book’s content.  These bullet points are important facts that you will need to remember for the exam.  Also, make sure you know the features and pricing with app service plans and SQL database service tiers.

I hope the information I provided was beneficial and will contribute towards you passing exam 70-533.  Good luck!








Powershell Function to Get Messages

If you are an Exchange server administrator, you more than likely spend a fair amount of time searching the Message Tracking logs.  The data provided by these logs can be helpful in finding all messages with a particular subject or sent by a certain user during a specific time frame.  Of course, there are two ways to search the Message logs:  the Exchange Admin Center (EAC) or Exchange Management Shell.  Using the GUI is perfectly fine, if that is your preference.  However, if you are having to perform searches on a regular basis, the EMS is the more efficient option.

To help make your job and mine alot easier, I wrote this Powershell function that can be used to find messages based on various criteria.  Check it out on Github, and let me know what you think.




No Reminders

We have very busy work and personal lives, which can easily involve several meetings in the span of one week.  Outlook reminders serve an important role in helping to manage scheduled appointments and meetings.  Although, it’s not sufficient to have a slot on the calendar for that demo scheduled next week with a software vendor.    This is where Reminders come to the rescue of human memory shortcomings.  A reminder will popup and say  “your demo session with Vendor X starts in 15 minutes”.  That’s not what it actually says, but you get the point.

Recently, I received a request from someone to have reminders disabled for all calendar items.  Personally, I couldn’t survive without having reminders for upcoming events, but to each her own.  This is a very simple request to fulfill, right?  Just go into Outlook and click File > Options > Calendar Options to uncheck Default Reminders.  After performing these steps, calendar reminders should be disabled…at least I thought.  After making this change, reminders were still enabled by default.

To determine why reminders were still enabled on meeting invites, we have to turn our attention to the mailbox settings in Exchange.  Specifically, we must examine the properties of the mailbox in the Exchange Management shell (EMS) to get the answer.  Since the EMS is technically Powershell just customized with a different look and loaded with Exchange cmdlets, we can use it to get the properties and methods of any object.  Naturally, one would think that a mailbox object would contain a property which contains settings for calendar reminders.  Let’s see.  In the EMS, I will run the following command to see the properties of my mailbox:

Get-Mailbox -Identity Burrs | Get-Member

The output of this command consists of a long list of properties, however the only calendar related items are:

Hmmm…not exactly what we are looking for.

If the Reminder settings are not configured by a property on the Get-Mailbox cmdlet, we must determine where that setting exists.  Let’s check in the EMS by searching for any cmdlets that are related to Calendar configuration. The following search query will reveal any cmdlets that contain the noun calendar:

Get-Command *calendar*

The output of this query shows something interesting.  It includes a command called “Get-MailboxCalendarConfiguration”.  Let’s take a look at the properties of this command to see what we are able to configure.  To do this, we must include the identity parameter in the command syntax to pipe to “Get-Member”.  I will use my mailbox name as the Identifier.

Get-MailboxCalendarConfiguration -Identity Burrs | Get-Member

Bingo!  One of the properties available for the “”Get-MailboxCalendarConfiguration” command is called “RemindersEnabled”.  Also, you can see included in the properties definition  is “{get;set;}”.  This means we can apply a value to the RemindersEnabled property using the verb “Set”.

Now we have something to work with.  If we take a look at the calendar configuration settings of my mailbox, here’s what we see:

Get-MailboxCalendarConfiguration -Identity Burrs | Format-List

It appears that reminders are enabled on my mailbox with the DefaultReminderTime being set to 15 minutes.  Here’s how he we disable reminders:

Set-MailboxCalendarConfiguration -Identity Burrs -RemindersEnabled:$false -DefaultReminderTime 00:00:00

After executing the above command, reminders are now disabled for my mailbox.




A Case for Exchange Personal Archives

With the expanded role of email in business communication, there is a need for organizations to preserve emails for compliance and security reasons.  Email has become the lifeblood of companies, the primary means by which employees communicate with clients, coworkers and vendors.  Since electronic messages contain business related data or content, emails often maintain importance that extends months or years into the future.  Additionally, many times an Email administrator will be faced with the task of gathering and producing messages for legal cases.  For these reasons, message Archiving is a vital process.

Lets examine some of the evidence for considering Exchange Archives over other solutions.

Exhibit A:  The Archive is a secondary mailbox in Outlook

The Archive mailbox is a secondary mailbox that appears in Outlook beneath a user’s Primary mailbox.  Archive Retention policies on the Exchange server are configured to move messages from the Primary mailbox into the Archive once the messages reach a certain age.  For the end-user, this is a seamless process.  Additionally, the archived messages are stored in the same folder hierarchy in which they resided in the Primary mailbox.  For users, it’s a benefit to have a consistent view between the two mailboxes.  However, there isn’t a process in place to synchronize the Primary and Archive mailbox folder structures.  If a folder is deleted or moved in the Primary mailbox, the same actions are not applied to the corresponding folder in the Archive mailbox.  This can lead to some divergence between the two folder structures.

Exhibit B:  No third-party utility needed for management

This article will not explain the steps involved in creating Retention polices and Archive mailboxes.  But will only highlight the advantages they provide towards managing them.  For Exchange administrators, Archive mailboxes are managed using the Exchange Management shell or console.  The Archive mailbox can be created via the shell or console.  As with Primary mailboxes, limits can be placed on Archive mailboxes or the databases that contain them.  If limits are placed on both, the mailbox settings will override limits that are configured at the database level.  Also, the Retention policies that determine when and what items are Archived are setup in the console.

Exhibit C:  Can leverage native Exchange HA solutions

The databases that hold Archive mailboxes are not different from the databases that contain Primary mailboxes.  As a matter of fact, both types of mailboxes can reside on the same database.  For this reason, Archive mailboxes are able to be included in a DAG and replicated.  Some organizations may require Archives to be available in database *over scenarios.

Exhibit D:  No Stubbed messages

Due to the fact that messages are not transferred to a separate database with Exchange Archives, there are no linked messages that point to the actual email.  This is particularly important for compliance reasons.  Most organizations have compliance standards that mandate emails are retained and produced for legal cases.  When messages get archived with 3rd Party solutions, important meta data gets removed.  This can render the message incomplete and not reflective of its original state when collected for discovery procedures.


Upon looking at the evidence, it can be stated that Exchange Personal archives in most cases is a better choice:  seamless integration, access to native high availability, no linked messages, Of course, all situations aren’t equal and in some cases a 3rd party solution could be more viable.  Each organization will have to evaluate its particular needs and challenges, and make a decision accordingly in regards to an archiving solution.







Message Delivery Reports

In this post, I will show how to view a delivery for a Sent Item.  This report, which can be seen from Outlook and OWA, will provide information on the status of an email such as:  when the message was submitted, delivered and if it was read.

View Message Delivery Report in Outlook 2013:

1.  Open a Sent Item to view its report

2.  Click File and select “Open Delivery Report”

Delivery Report

3.  The Message Delivery Report will open in a browser window



View Message Delivery Report in OWA

1.  After logging into OWA, click on Options and select See All Options…


2.  Next select Organize E-mail and then Delivery Reports

deliver report 2

3.  On the Delivery Reports page, fill in the criteria that you want to use to search for the desired message:  ie, based on recipients, sender or subject.  In this case, I searched for messages from a particular sender.  Once the data has been inputted, hit search to get the results.

delivery report criteria


The results of the report shows that the the message was submitted and delivered on 6/10/2016 2:10 PM.  Also, it indicates that the message has been read or at least opened.


Exchange 2010 Helpful CMDLETS

Here are some useful cmdlets that I’ve collected over time and keep on hand in my toolbox.  I hope they come in handy for you as well:

The following command will retrieve the entire Outlook folder hierarchy of a user’s Primary mailbox and export it to a csv file.  It’s useful in situations where a user has a lot of folders and is unable to locate emails or certain folders.  To get the Archive mailbox folder structure, add the “archive” switch.

Get-Mailbox “username” | Get-MailboxFolderStatistics | select folderpath | export-csv “desired path”

This command will list Exchange ActiveSync users assigned to a specific ActiveSync policy:

Get-content C:\content2.txt | Get-CASMailbox |select primarysmtpaddress, ActiveSyncMailboxPolicy | export-Csv C:\policy.csv -notype

If you need to find out the available new space or white space on all mailbox databases, use the following:

Get-MailboxDatabase -Status | Select-Object Server,Name,AvailableNewMailboxSpace | Export-csv “desired path”

This is how you enable a Retention Hold on a group of users for a specified period of time.  The command will retrieve the input from a list of users and pipe it to the command.  No items will be Archived for the users during this time frame:

Get-content C:\userlist.txt | Set-Mailbox -RetentionHoldEnabled $true -StartDateForRetentionHold ’10/06/2015 10:47:24 PM’ -EndDateForRetentionHold ’11/06/2015 8:58:24 PM’

Here’s how to move a group of users Primary mailbox to a another database.  Change the PrimaryOnly switch to ArchiveOnly to move the Archive mailboxes.  A list of users will get piped to the command to initiate the move to the target database:

Get-Content C:\userlist.txt | New-MoveRequest -Confirm:$False -PrimaryOnly -SuspendWhenReadyToComplete -TargetDatabase “Database”

This is just a sample of some of the commands that I use on a regular basis.  I hope you find this information to be helpful.