Sunday, January 25, 2015

MCSE Studying - Week 33

Overview
I have completed week 33 of my MCSE studies, and overall, I was pleased by the results. I finished the KnowledgeNet 70-410 Live Learning course, finished chapters 3 and 4 in the 70-410 training guide, had a little bit of time learning PowerShell, and spent some more time going over my exam notes. I also started exercising this week. I am fortunate that my wife cared enough to drag me out twice this past week for an hour long walk with some of our friends. I really need the exercise, especially now, with my sedentary lifestyle. I think I shall continue the exercise, it seems to help my brain think.

Cool Stuff
I have learned a lot of cool stuff this past week, but I think the biggest victory for me, was finally getting around to figuring out how PowerShell DSC (Desired State Configuration) works. I have been hearing a lot about it in the PowerScripting podcast, but had never got around to learning how to use it, as it is generally considered an advanced PowerShell topic. However, once I discovered it was covered on the 70-410 exam, I knew I had to tackle it head on. I did, and I discovered just how much potential it has to reduce administrative burden, and just how easy it is to use. In a nutshell, DSC is a way to ensure that the servers in a network environment conform to a set configurations, and that any new servers also, automatically, get the same configurations. If you want to know more about DSC, there is a great presentation here:


PowerShell cmdlet of the Week
This week's cmdlet is one I used to setup a multi-domain forest in Active Directory over the past few days.

Install-ADDSDomain

Allow me to describe one of the scenarios I where I used this cmdlet.

I had an existing forest root domain called "corp.contoso.com" and I wanted to add a child domain called "europe.corp.contoso.com". I also wanted to ensure that a DNS delegation was setup in the corp.contoso.com domain.

The new server was setup as a member of a workgroup, DNS client configured to point to two of the DNS servers in the corp.contoso.com domain, and had the AD Domain Services role installed.

It is important to remember that when you are adding a new child domain to an existing Active Directory forest, you must supply the credentials for a user in the 'Enterprise Admins' group. Also, even though it is not required, I explicitly stated that I wanted to setup a DNS delegation, and provided the credentials. Finally, again, even though the default parameter for the -DomainType switch is ChildDomain, I added it anyhow, as I wanted to gain as much familiarity as I could with this cmdlet. The final result for this command, also employing Get-Credential:

Install-ADDSDomain `
-NewDomainName europe `
-ParentDomainName corp.contoso.com `
-Credential (Get-Credential corp\Administrator) `
-CreateDnsDelegation
-DnsDelegationCredential (Get-Credential corp\Administrator) `
-DomainType ChildDomain

After entering the password for the corp\Administrator user, I entered the DSRM (Directory Services Restore Mode) password and confirmed it, hit 'Enter' and sat back and waited. A few minutes and one reboot later I had a new child domain created. I logged into one of the DNS servers in the corp.contoso.com domain, and confirmed that the DNS delegation was created successfully.

Of course, I made sure I conformed to Microsoft best practices, and I used Install-ADDSDomainController to add another writable domain controller to the Europe domain. Maybe I'll cover that cmdlet another day.

There we are, one new child domain, lovingly created with Windows PowerShell!

Stats
Total time studying: 25 hrs.
  • 70-410: 24 hrs. 25 min.
  • PowerShell: 35 min.
Resources used:

In Closing
I had another really good week. My confidence level is finally up the point where I feel that I will be able to pass the 70-410 exam. I will still need to continue to study for another 2-3 weeks, but I will get there. Just a few more weeks, then I can focus on 70-411!

Have a great week everyone!

Sunday, January 18, 2015

MCSE Studying - Week 32

Overview
Week 32 of my MCSE studies was not quite as solid a week as I had hoped for, but I still made some progress. I continued the KnowledgeNet 70-410 Live Learning course, started and finished the KnowledgeNet PowerShell 101 Live Learning course, finished the first two chapters in the 70-410 training guide, and spent quite a bit of time going over and organizing my exam notes. I lost a chunk of one day due to a headache that made concentrating quite difficult, and another day due to family obligations. The day I had family obligations was not really lost, as I had a great time with my kids building cardboard airplanes and other fun activities.

Cool Stuff
The coolest thing from week 32 was working with the Windows Server Migration Tools (WSMT). It was nice to not only learn about how it works, but I also spent a few hours in my lab environment migrating the DHCP role from a Windows Server 2008 R2 server to a 2012 R2 server with all settings, reservation, and leases intact. Very cool! I wrote down quite a few notes while I worked through the process, and I have the general flow figured out now. Finally, I can strike WSMT off the list of thing I still need to learn prior to taking the exam.

PowerShell cmdlet of the Week
This week's cmdlet is going to be one of many I used during the DHCP server migration I did this past week.

New-NetFirewallRule

I know it might have been easier to do this using the GUI tools, or perhaps the netsh command line tool (perhaps not), but I would have lost an opportunity to familiarize myself with this new cmdlet. While working on various tasks, I always ask myself "Could I be doing this in PowerShell?". That way, I regularly give myself an opportunity to learn new cmdlets and techniques,

I used it to open up an inbound port to allow WSMT to work it's magic. In this case I used it to create and enable an inbound rule to allow TCP traffic on port 7000, but only on the Domain firewall profile.

New-NetFirewallRule `
-DisplayName "WSMT - Port 7000" `
-Direction Inbound `
-Action Allow `
–LocalPort 7000 `
-Protocol TCP `
-Profile Domain `
-Enabled True

A quick check of the GUI interface for the firewall confirmed that it had been created.

There it is! A firewall rule created, and another PowerShell cmdlet added to my sysadmin tool belt.

* I have decided to start using the back-tick character " ` " in my blog posts to break up a single PowerShell command over several lines. I have noticed that the readability of some of my older posts is a little tricky at times, so by using the ` , I can post a long cmdlet and still have it readable. This is also valid to use at the PowerShell prompt. Typing ` at the end of New-NetFirewallRule will give you a >> prompt, which you can use to enter parameters one at a time. When you are done, simply press 'Enter' to execute the command.

Stats
Total time studying: 25 hrs. 50 min.
  • 70-410: 19 hrs. 50 min.
  • PowerShell: 6 hrs.
Resources used:

In Closing
While I did not get as much study time in as I would have liked, I did get more in than last week. A little bit more focus next week should ensure I get the time in I need to study for and pass the 70-410 exam. I had also planned to get an Office 365 subscription and sign up for the free trial of Microsoft Azure last week, but time did not permit that, so I will work on that this coming week as well. With a little luck, and a lot of hard work, I should be able to get back on schedule.

Have a great week everyone!

Sunday, January 11, 2015

MCSE Studying - Week 31

Overview
Week 31 of my MCSE studies was my first week back after a break for Christmas, and it was a fantastic week! I started my third and final pass through the KnowledgeNet 70-410 Live Learning course, finished the 70-411 Microsoft Training Guide, started my second pass through the 70-410 Microsoft Training Guide, and did some maintenance to the lab hardware. I also setup 16 virtual machines and one Hyper-V host in preparation for the final push through the 70-410 material before taking the exam. Not only did I learn a lot from the courses, but I also learned quite a bit from setting up Hyper-V and getting virtual machines setup on that particular host. All in all, I had a great time this past week!

Cool Stuff
The coolest thing from week 31? Wow. I'm not sure if it's going to be an easy task to pick just one thing. If I had to pick, it would have to be the 'gotcha' that I discovered while working on setting up some virtual machines on Hyper-V.

I had downloaded the Windows Server 2012 R2 as a VHD in order to speed up the deployment of the lab. I was initially dismayed that I couldn't set up a Generation 2 virtual machine with the VHD, since Gen. 2 VMs can only use the newer VHDX virtual hard drive files. No big deal, I had just found the link in Hyper-V Manager to edit and convert virtual hard drives. I converted the downloaded VHD file to a VHDX, and set up a new Gen. 2 VM. Once again, disappointment. I got a boot failure message. I tried a couple of other things, including re-converting the VHD, but nothing worked. I could get the Gen.2 VM to boot.

A little digging around on the Web revealed the issue. When converting a boot VHD to a VHDX file, a Gen. 1 VM will boot, but a Gen. 2 VM will not. This is due to the difference in boot partition layout and it's incompatibility with UEFI firmware in Gen. 2 VMs. So, in short, if you are using a virtual hard drive converted from a VHD to VHDX, a Gen. 1 VM can use it as either a boot drive or a data drive, but a Gen. 2 VM can only use it as a data drive.

So, while I was disappointed that I couldn't use the converted VHDX file to set up a Gen. 2 VM, I was quite happy that I had discovered this little 'gotcha', and was able to put it into my list of lessons learned.

PowerShell cmdlet of the Week
I was torn between two PowerShell cmdlets this week, but I ultimately chose the one most closely related to the topic I discussed in 'Cool Stuff'.

Convert-VHD

For example, if I wanted to convert the VHD file "Server-2012-R2-Eval.vhd", located in the "E:\ISO" folder, to a VHDX file, I would use the following:

Convert-VHD -Path E:\ISO\Server-2012-R2-Eval.vhd -DestinationPath E:\ISO\Server-2012-R2-Eval.vhdx

After waiting for a few minutes, I would have a new vhdx file alongside the original.

To convert a VHD file to a VHDX, remove the original file after the conversion, and change it to a Fixed disk vs. a Dynamic disk, I would use the following:

Convert-VHD -Path E:\ISO\Server-2012-R2-Eval.vhd -DestinationPath E:\ISO\Server-2012-R2-Eval.vhdx -DeleteSource -VHDType Fixed

Simple enough. Just remember, you cannot boot a Generation 2 virtual machine from a VHDX file that has been converted from a VHD file.

Stats
Total time studying: 25 hrs.
  • 70-411: 8 hrs. 15 min.
  • 70-410: 15 hrs. 25 min.
  • Lab Maintenance: 1 hr. 20 min.
Resources used:

In Closing
This has been one of the best weeks so far! I had a great time, learned a lot, and regained some of the confidence that I had lost over the past few weeks. I am really looking forward to continuing my studies and learning more as I prepare for the 70-410 exam. Also on the plan for the week is to get an Office 365 subscription and sign up for the one month free trial of Microsoft Azure. I look forward to telling you all about my experiences in my next weekly post.

Have a fantastic week everyone!

Sunday, January 4, 2015

The Start of Another Trip Around Our Star

Well, the last trip around our star was eventful, to say the least. Some of the highlights include my decision to earn the MCSE certification from Microsoft, start pursing my own self-education (both in IT and in other areas), getting laid off from the job I held for nearly 14 years, learning to become a better father and husband to my family, and travelling approximately 940 million kilometers around the Sun. I cannot take any credit for that last one, though. I was merely along for the ride.

Making the decision to earn myself the MCSE certification was not risky, but it has been challenging. Perhaps more challenging than I thought it would initially be. For the first four months, carving out enough time to study was a huge issue, and one I'm not certain I ever really was able to overcome. Getting laid off from my job certainly opened up a lot of free time, but there is still a lot of material to cover. It wasn't until I broke down the exam objectives into discrete items that I started to realize just how much Microsoft expects you to know in order to pass these exams. Daunting task aside, I am confident that I will be able to complete my MCSA exams before June, and my MCSE exams by the end of the year.

As I have stated in a previous post, getting laid off suddenly, after nearly 14 years, was a huge shock. I don't think anyone could have seen that one coming. The up side to this event is that it has given me ample time to examine where I have come from, and where I want to go. I had been told several times that I was getting too comfortable where I was. I did not understand, at the time, why being comfortable was a bad thing. Everything seemed to be going quite well. I was happy! Or was I?

As I look back, yes I was too comfortable, but no, I don't think that I was happy. I think that my growth as a System Administrator was actually being hampered by the fact that I was unable to expand my knowledge and experience beyond what I had learned in that particular network environment. In a nutshell, I had outgrown the nest I grew up in, and it was time for me to go. So, like any good momma bird would do, for my own good, I was picked up, and dropped out of the nest. I won't deny that the first bounce hurts, but it was what I needed.

Becoming a better husband and father is always a challenge, but one that I gladly accept. I cannot recall anything specific over that past year that has led to a general feeling of improvement, but I know it's there. I have a little bit more patience than I used to, and I am able to pitch in and help more than I used to. If I was forced to identify one change, I would say that it is the realization that a family has to work together as a team. Sure, we are all individuals, with our own desires, wants, needs, and responsibilities, but we also have to work together in order to grow together.

The Earth's orbit around the Sun is nothing I can take credit for. I just held on to the Earth as it whizzed around the our closest star. When I say held on, I really meant that Earth's gravity held my down to it's surface. So, really, I cannot take any credit for this last trip. Here's an interesting fact, the day that I wrote this was the same day as Earth's perihelion (closest point in it's orbit to the Sun). Strange. It doesn't feel that warm. In fact, it was a frosty -30 C when I got up this morning. If you'd like a better explanation of why it's so cold at our closest point to the sun, check out this article.

On to 2015 then!

I usually do not feel compelled to make a bunch of resolutions to mark the beginning of a purely arbitrary point along our orbit of the Sun, and this year is no different. What I will do, is share a couple of my longer term plans that are simply carried over from last year.

First and foremost, is finding employment somewhere that I feel I belong. I am still not sure what I want to do, but as I continue my search for a network I can call home, I am considering a few options. These include working for a large corporation as an Enterprise System Administrator, working as a consultant, and becoming a IT trainer/author. They all have their pros and cons, and before accepting any position, I will be weighing those pros and cons carefully.

My second objective is to complete my MCSE certification. My time frame for completing it is at most, a wild guess. There are so many variables to consider, that it is almost impossible to predict the exact completion date, but it will be completed. I still have the occasional doubt as to how well I will do on the exams, but thankfully I have friends, family, and my instructors all telling me that I am going to do fine.

To be truthful, I feel a little like Bilbo Baggins does at the beginning of The Hobbit. I was in a nice, comfortable home, with a nice, comfortable life, and suddenly, almost inexplicably, I find myself on an adventure, not knowing where exactly it will lead. I do know, however, that by the time I get through the next year, I will be a vastly different person than I am today, and God willing, a better one.

Have a wonderful trip around the Sun!


MCSE Studying - Week 30

Overview
Week 30 of my MCSE studies wrapped up the last of the courses and self study that I would do before taking a break for the Christmas holidays. I finished both KnowledgeNet Live Learning courses, 70-412 and 70-414, and did a little bit of work in the 70-411 Training Guide. My brain was getting full and I was getting tired, so I decided not to pursue any further training until the new year.

Cool Stuff
The coolest thing from week 30 was reviewing the best practices for Certificate Services. I know I have mentioned it before, but I don't think I can overstate it by saying Certificate Services and PKI are critical to IT and to your career. Learn it!

Stats
Total time studying: 12 hrs. 55 min.
  • 70-411: 40 min.
  • 70-412: 6 hrs.
  • 70-414: 6 hrs. 15 min.
Resources used:

In Closing
I will be returning to my studies on January 5th, 2015, after taking a well deserved break, and spending quite a bit of time with friends and family, eating well, and resting a lot. I am looking forward to continuing this self study adventure, and will be certified by the end of 2015.

Have a great year everyone!

Tuesday, December 16, 2014

MCSE Studying - Week 29

Overview
Week 29 of my studies was quite a routine week of live, online classroom learning as I continued the 70-412 and 70-414 classes through KnowledgeNet. I also took a little time to start doing a detailed map of all of the 70-410 exam requirements so that I can start seeing where I need to focus my attention.

Cool Stuff
The coolest thing from week 29 was the chance to further cement my knowledge of DNS security. DNS security is accomplished through a variety of means, including randomizing the DNS socket pool, DNS cache locking, and DNSSEC, to name but a few. DNS is definitely one of the critical services that all sysadmins need to know if they want to secure their career.

PowerShell cmdlet of the Week
I once again failed to come up with a cmdlet to cover this week, so I turned to my peers and took suggestions as to which cmdlet I should cover this week. I know they are relatively simple ones, but I use one of them quite regularly. They are:

Restart-Computer
Stop-Computer

Restart-Computer is one of those cmdlets that I use all the time, usually to reboot a server after using Add-Computer to join it to the domain. The other place I used it was in a script that, among other things, performed a maintenance reboot on a group of computers that were used to display flight schedule information in common areas. The line in the script was:

Restart-Computer -ComputerName DisplayPC01,DisplayPC02,DisplayPC03 -Force -Wait

This had the advantage of forcing an immediate restart of the remote computers, and, at least in the ISE, displayed a status bar showing how many of the computers had successfully restarted. This last part, using the -Wait switch, meant that I would not be returned to the PowerShell prompt until after the computers had rebooted. This saved me the hassle of walking around the building to check and see if they had rebooted.

The second cmdlet, Stop-Computer has similar usage, but instead of rebooting the machine, it will shut it down.

I may actually create a small script to shut down the various training and testing environments in my lab. This would be a time saver, as in the past I have had to shut down as many as 12 servers in order to switch to a different training environment, say, between 70-411 and PowerShell. The script might look something like this:

Stop-Computer -ComputerName PS-Member01,PS-FileServer01,localhost -Force

I'll let you know how that works out.

Stats
Total time studying: 13 hrs.
  • 70-410: 1 hr.
  • 70-412: 6 hrs.
  • 70-414: 6 hrs.
Resources used:

In Closing
The hours spent studying this week were a little lower than I would like. I will need to refocus on carving out the time to study and get back into the books. While I am enjoying having time to study, I am starting to miss having real world challenges to work on. Soon enough, soon enough.

Have a great week everyone!

Monday, December 8, 2014

MCSE Studying - Week 28

Overview
Week 28 of my MCSE studies was a much better and less chaotic week than the previous few. I started two live KnowledgeNet courses: 70-412 (Configuring Advanced Windows Server 2012 R2 Services), and 70-414 (Implementing an Advanced Server 2012 R2 Infrastructure). I also finished three chapters in the 70-411 Training Guide, discovering a change to Windows Server 2012 R2 between when the book was published, and when I did the practice exercises at the end of one of the chapters. I won't cover that change here, but I'll put it up on my other blog: The Frozen Geek.

Cool Stuff
The coolest thing from week 28 wasn't anything specific, but just the chance to start learning about Microsoft System Center 2012 R2. Taking the 70-414 course has further cemented the thought that becoming an enterprise systems administrator (2000+ users) is definitely one of the career paths I am going to consider for myself over the next couple of months!

PowerShell cmdlet of the Week
I know that in last week's blog post I had said that I would get back on track this week, but I'm afraid that just isn't going to happen. Quite simply, I didn't find a PowerShell cmdlet from last week that was new or cool enough. So, rather than pick a random PowerShell cmdlet, I'll just hold off until next week.

Stats
Total time studying: 17 hrs. 5 min.
  • 70-411: 5 hrs. 5 min.
  • 70-412: 6 hrs.
  • 70-414: 6 hrs.
Resources used:

In Closing
This was a much better week for studying! I must thank my beautiful, supportive wife for kicking my butt into gear on Friday when I really didn't feel like studying. Thanks to her, I got just over 5 hours of study time in the 70-411 Training Guide! It is very important to have someone in you life, whether it be a friend, co-worker, or family member that can keep you on target when pursuing your goals.

Have a great week everyone!