Early Experts Exam Study Guide for 70-533: Implementing Microsoft Azure Infrastructure Solutions

One of the greatest challenges with certification exams is finding study materials for new exams. To get you started, I’ve starting pulling together some resources I’ve collected based off the targets skills listed for 70-533.

Exam 70-533 is one of three exams that can be successfully passed to complete the Microsoft Specialist certification on Microsoft Azure.  The other exams in this series include:
70-532, Developing Microsoft Azure Solutions
70-534, Architecting Microsoft Azure Solutions
This exam guide is not intended as a replacement for any formal training on Microsoft Azure or for this exam that might come available in the future, however we all have to start somewhere, right? You can find the PDF version of the exam guide here and it will be updated as I collect additional resources.
If you also plan to prepare for Exam 70-532, you can find some study resources at:
If you plan to prepare for Exam 70-534, check out these resources:
If you are looking for study resources for other Microsoft certifications and  you didn’t get here from there already, check out http://EarlyExperts.net for other study guides and information.

Windows Server 2003 Still Around? Check out some useful webcasts!

Ah, Windows Server 2003, that sturdy workhorse that just keeps going and going.  If you still have a server or two chugging along, you might find some of these upcoming webcasts of interest.

For additional information, you can also visit Microsoft Virtual Academy for some on-demand courses.

The Imperfect Lab: Syncing AD to Azure AD

Today I decided to ease myself into my next steps and build out a member server to sync AD to.  I reused some previous PowerShell to deploy a member server and join it to my domain.  It is possible to run the sync services on an existing domain controller, but as a best practice I don’t like to install one-off applications on my domain controllers.  I like to keep them identical, thus the need for different member server to perform the sync role.

I had previously uploaded the Microsoft Azure AD Sync Services (aka AADSync) application to my Azure file share, but you can find it at http://aka.ms/azureadsync.  You will want to install and run the Microsoft Azure AD Connection Tool.  Please note that Microsoft Azure AD Sync Services is DIFFERENT from Windows Azure Active Directory Sync (aka DirSync)

Once the Sync Server is built, you will want to kick off the installation of the application, but not before you’d made some adjustments to your Azure Directory.  In the Portal, I went to my directory and created a new user account to be my Azure AD Administrator (newuser@imperfectlab.com) and made it a Global Administrator.  You will also need to go through the sign-in process to set a non-temporary password.

Once you have this account, you simply need to throw the switch under “Directory Integration -> Directory Sync” from Inactive to Active.  Once the setting is saved, the “Last Sync” field will say “never synced”.  Now go over to your sync server and run that connection tool.

You’ll need the account and credentials you created for the new Azure AD Admin and some information about your domain.  For the addition of the forest, you’ll need your domain name and the username and password of a enterprise domain admin from your local domain.  This will be different than the account your created directly in Azure AD.

Leave the User Matching page at the defaults but select “Password Synchronization” from the Optional Features. Finally, review your configuration screen and verify that “Synchronize Now” is checked and click finish.  At this point, your users should sync into Azure AD and after a few minutes you’ll see a list of them in the portal.

If you want to make any changes to the settings of your AD Sync, like adding in a feature, simply rerun the tool after disabling the Azure AD Sync Task in Task Scheduler.  The task will be re-enabled automatically when you finish the wizard again.

If you want to force a sync for Azure AD Sync Services for any reason, the default location of the command line tool is:

c:\program files\microsoft azure ad sync\bin\directorysyncclientcmd [initial|delta]

Happy Syncing!

Seattle IT Pros: Feb 4th is the next SITPUG Meeting!

The  next meeting for the Seattle IT Pros User Group is scheduled for Wednesday, February 4, 2015 at the Microsoft Civica Office Commons (South Tower) in Bellevue, WA at 6:00PM. Please RSVP if  you will be attending! 

The guest speaker will be Ben Armstrong of Microsoft. Officially Ben is a Principle Program Manager at Microsoft who works on the Hyper-V development team. Unofficially, he is the virtualization guru at Microsoft. Some of you may know him as the Virtual PC Guy from his blog posts on MSDN. The topic of his presentation is Hyper-V in Windows 10. Ben will discuss the new functionality for Hyper-V that is coming in Windows 10 and the new scenarios Microsoft is hoping to enable in the new version.
Ben’s complete bio is available here.
Windows 8 Giveaway
SITPUG will be giving away a copy of Windows 8 Professional at the meeting. The name of the lucky winner will be announced at the end of the meeting. Please check out the rules on the SITPUG Web site.
Directions
The meeting is held at the Microsoft Civica Office in Bellevue. Parking will be validated by the receptionist at the sign in. Visit the Directions page for details.
Microsoft Civica Office
205 108th Avenue NE
Suite 200 (4th floor)
Bellevue, WA 98004

Certification Update

With the new year, you might be taking a fresh look at some certifications to round out your resume or impress your boss.  Now is the time to tackle them, because the free “2nd Shot” is back!


Between January 5 and May 31, 2015, take any Microsoft Certified Professional (MCP) or Microsoft Dynamics exam, and get a free Second Shot if you fail the first take.  Learn more! 

Speaking of certifications, the new Azure certifications are available.  Just one test and you can be Microsoft Specialist in Developing or Architecting Microsoft Azure Solutions or Implementing Azure Infrastructure.

The Imperfect Lab: Adding A Custom Domain

This will be a super short post, because this task is super easy!
My lab in Azure wouldn’t be complete without its own custom domain. Honestly, this is one of those “just pop over to the Portal” tasks because it only takes a few clicks, particularly if you are only doing it once.  But you won’t be able to complete in a hurry, because your registrar will update the public DNS entries on their own sweet time and that update is needed to complete the process.
By the way, if you really want to do this without the Portal, you can find information on installing the right PowerShell modules and the commands here. (http://msdn.microsoft.com/en-us/library/azure/jj151815.aspx)  If you are going to managing multiple tenants over time, PowerShell will likely be the best way to go.
Anyway, when you are in the Portal, click “Active Directory” in the navigation.  Select the domain directory you want to add a custom domain to.  In this case, I wanted to create a new Azure Directory for the Imperfect Lab, so I clicked “New” and then went to APP SERVICES -> ACTIVE DIRECTORY -> DIRECTORY -> CUSTOM CREATE.
I named my directory “ImperfectLab” and picked my region.  The domain name for the directory is now “Imperfectlab.onmicrosoft.com”.  Since I don’t want to be using the “onmicrosoft.com” moniker for very long, I need to add my recently purchased domain.  You actually have to a own (or at least control) the domain you want to add because it’s requirement to add a TXT or MX record to your public DNS.
Click into the directory you want to use and go to the “Domains” section. On the bottom action bar, click “Add”. Then type in the FQDN for your “real” domain, in my case “imperfectlab.com”.  You be given the information to create either at TXT or MX record that needs to be added to your DNS records managed by your registrar.
My registrar doesn’t accept the @ symbol for the parent zone, but leaving that field blank worked fine.  You have to add the record, wait for the external DNS to update and then return to the portal to verify it.

Once verified, you can create (or sync) users into your Azure Active Directory using either your “user@domain.onmicrosoft.com” UPN or your “user@domain.com” UPN.

The Imperfect Lab: Fleshing Out Active Directory

Having a domain with no users isn’t any fun.  So my next task for the Imperfect Lab was to create a few accounts to act as my users for provisioning access and eventually syncing with Azure Active Directory.
You can do a lot with some basic PowerShell to create OUs and User Accounts.  Here are a few basic lines that would create something in my lab domain:
New-ADOrganizationalUnit –Name “DOGS” –Path “DC=imperfectlab, DC=Com”
New-ADUser -Name “Lizbeth Tiburon” -Path “OU=DOGS,dc=imperfectlab,dc=com” -AccountPassword $newPassword -Department “Career Changed” -SamAccountName “LTibu” -Surname “Tiburon” -GivenName “Lizbeth” -DisplayName “Lizbeth Tiburon”
Those lines would create a OU and then a user account in the new OU.  But what if you wanted to create more users at once?  I could simply duplicate the 2nd line, but figured there had to a relatively easy way to get data straight from a CSV file.
I did some looking around online and since no good Internet search goes unpunished, I found this: https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Create-Active-7e6a3978#contentby @mwashamtx.  Honestly, this a great script that I couldn’t have written by myself at this point, but I was able to tweak it enough to do my bidding. 

I changed the paths (to reflect the drive letter and file location I set up using Azure Files), removed a lot of the fields the script used to populate account attributes and edited the CSV file to match.  I uploaded my CSV file to my Azure file share. I left the script writer’s five character SAM account name creation as is and ran it remotely via PS-Session on my domain controller.  The DC tapped the CSV file in my Azure File share and wrote the log to that same location.  The script does some great error handling, which was really helpful for troubleshooting.  Mission accomplished!
And for those of you who are curious about the user created in that line above, Lizbeth is a dog who didn’t complete the training to become a guide dog

The Imperfect Lab: Azure Files as a Repository

Oh, the chicken before the egg… or the horse before the cart!  I have this laundry list of things I want to do in the lab, but realized that I would likely need to store some files for my Azure VMs to access.  I will admit that the enhancements with RDP, particularly being about to copy and paste files from a local Explorer window to a remote one are super handy, but I wanted to avoid relying on connecting to the GUI as much as possible.  Plus I wanted to create a centralized location for these files, so I wouldn’t need to ensure that file services was always accessible from a particular VM.
Enter Azure Files.
Azure Files allows you to create a SMB share in Azure Storage that is then accessible from machines in the same region. For the Imperfect Lab, my first goal with this is create a location where I can put some files for use later when connect to my Imperfect Lab domain controllers.  You can find a basic, step-by-step for getting Azure Files going  in the Azure documentation, but this is what I did for my lab.
Also for those of you want a neater way to copy my lines of code, you can find the code from this post here. (It’s not embedded because the Blogger platform is a PITA, but I digress.)
Created a new storage account:
New-AzureStorageAccount -StorageAccountName -Location ‘West US’

Captured the Access Key as a variable:
$storageAccessKey = (Get-AzureStorageKey –StorageAccountName ).Primary
You can also get the full key from the Azure Portal. Just click “Manage Access Keys” from the black tool bar at the bottom of the page for the storage account.
Created a security context with the access key:
$storageContext = New-AzureStorageContext $storageAccessKey
Created a new share:
$share = New-AzureStorageShare -Context $storageContext
Created a directory in the share. I called mine “powershell” in this example:
New-AzureStorageDirectory -Share $share -Path powershell
I wanted to upload a file to my new directory, so I used:
Set-AzureStorageFileContent -Share $share -Source “localfilepath” -Path powershell
To check that it made it, I used: Get-AzureStorageFile -Share $share -Path powershell
Okay, now that I have my Azure Files going, I need to be able to access it from my VM in Azure.  You can do this simply by RDPing to your client, passing it your storage credentials and then mounting the share.  You’ll need that key from the portal to do this since your VM likely won’t be connect to your Azure subscription to capture it as a variable like I did in the previous code.
If you don’t want to RDP to the machine, you can do this from the command line of your remote machine by opening a PS-Session, just note that the credentials won’t be persistent that way and your mapping won’t be retained after a reboot.
cmdkey /add:.file.core.windows.net /user: /pass:
Alternatively, if you don’t have persistent credentials, you can just pass them along right with the net use command:
net use z: \\imperfectfiles.file.core.windows.net\imperfectshare/p:no /u:imperfectfiles $storageAccessKey
Once I have that drive mapped, I can use PS-Session commands remotely, yet access files that are stored locally on the VM, like CSV files or to write logs.  And if you want to delete files, use REMOVE instead of SET, or GET if you want to download them.  For example:
Remove-AzureStorageFile –Share $share –Path [foldername]/[filename]

 As an added note, Azure Files differ from Blob storage because they are accessible via SMB and allows you to build a traditional folder hierarchy if you need one.  However only VMs in the same region can access it.  Regular blob storage has the ability to be accessed globally and by the “public” without an access key.  Azure Files are accessible via both REST and SMB, where Blob storage is only accessible via REST. 

Some Fun Holiday Reading: Fall on the Interwebs

Here are some interesting links you might have missed that came across my Twitter feed the last few months.  I figured you might want some light reading for the holidays.  
  1. @edbott – Why Windows 10 isn’t version 6 anymore and why it will probably work. Nice explainer from @drpizza http://ars.to/1tb8eRQ 
  2. @WIRED – A definitive ranking of the most important characters in the “Hunger Games” franchise http://wrd.cm/1r6ewl7http://t.co/XBtueePekX 
  3. @99u – What your passwords say about you: http://nyti.ms/1yYKcgD 
  4. @stevenbjohnson – Terrific backstory from @StevenLevy on the origins of “information wants to be free” (entirely news to me): https://medium.com/backchannel/the-definitive-story-of-information-wants-to-be-free-a8d95427641c?curator=MediaREDEF 
  5. @ruthm – Windows 10, OneDrive sync and the art of difficult conversations | ZDNet http://ow.ly/EyAs3 
  6. @RangerStation – How a Deaf Couple Had Their Baby Officially Registered with a Sign Name http://shar.es/1XsySc via @sharethis 
  7. @BBCNewsMagazine – This intricate pop-up medical textbook is nearly 500 years old http://bbc.in/1vliHk1 http://t.co/8aPvNzRDQX 
  8. @beckynagel – The world’s biggest chocolate-maker says we’re running out of chocolate http://wapo.st/1zqKCgz 
  9. @afreshspace – Digital tools for remote workers…some of my faves on here! http://buff.ly/1EK3s5f 
  10. @MichaelBender – Amazing video on creative experience on #SurfacePro3 with #adobe. https://www.youtube.com/watch?v=PlLR9ANGsOo 
  11. @HeikeRitter – Freaking awesome! Mobile Azure Manager for Windows Phone is NOW available! Manage your #Azure stuff “on the go” http://ow.ly/DKxBq 
  12. @windowsserver – Want to understand Active Directory Federation Services at a deeper level? Then this blog post is for you! #MSPFE http://cic.ms/bSmQnH 
  13. @bbnetman – Number 1 Reason to Upgrade to PowerShell 4.0: Desired State Configuration – Hey, Scripting Guy! Blog http://blogs.technet.com/b/heyscriptingguy/archive/2014/10/24/number-1-reason-to-upgrade-to-powershell-4-0-desired-state-configuration.aspx?linkId=10187347 
  14.  @2600 – A fairly decent BBC piece on the hacker world http://www.bbc.com/news/technology-28214646

Yeah! Windows Phone!

This morning, I woke up to an early Christmas present…. Verizon was finally updating my Lumia 922 with Windows Phone 8.1.  I’ve only been waiting for this for what seems like forever.

There were actually two updates that needed to be done, but I think the first one was related to the fact that I had recently factory reset my phone to fix a few other odd problems it had been having. Not totally sure, but who cares, right?  It’s on 8.1!!

Go Verizon!!!  (Sort of, but not really…)