DHCP Failover and Recovery

,

I recently had an issue with a Domain Controller that was unresponsive at a remote site. Since it was just a virtual machine with no special settings, I punted and rebuilt the server. After I did all the recommended steps for removing a DC from Active Directory and was already configuring the new server, I remembered that I had setup DHCP Failover for this site. I would be lying if I did not say a twinge of panic set in at that moment. I had setup DHCP Failover in hot standby mode almost five years ago and had not not given it a second thought. Fortunately, the process was so simple that I did not even need to use PowerShell. I deleted the old Failover Relationship and then recreated it. The detailed steps are below.

Delete Old Failover Relationship

First on the active DHCP server, open DHCP Manager. Right click on IPv4 and choose Properties

On the Failover tab, select the failover relationship and click Delete.

Click OK to confirm the deletion.

The Failover Relationship is deleted. Note that you will see failure messages if the partner server cannot be reached. Click Close.

Create New Failover Relationship

Now that the old failover relationship is removed, we can recreate it. Obviously, you will need to repair or rebuild the DCHP failover partner server first. Once the partner server is ready, open the DHCP Manager on the active server. Right click on the scope and choose Configure Failover.

Select the Scopes and click Next.

Click Add Server.

Type the server name or select it from the list of authorized DHCP servers. Click OK.

Click Next.

Configure Failover Options for your environment. You may need to choose a new Relationship Name if the previous DHCP Failover was not successfully deleted. Click Next.

Confirm the settings and click Finish.

Once the DHCP Failover is created click Close.

DHCP Failover is easy to configure and easy to recover. I was surprised at how smoothly I was able to add and delete the partnerships using Windows Server 2016 and 2019. I repeated the process several times as I wrote this article. I would suggest creating a DHCP failover partner especially if you have a remote site with little or no IT support staff. I was fortunate that I had setup DHCP Failover at this site several years ago. Of course, in my case better monitoring software would have helped alert me to the server failure sooner. Hopefully, I will be writing about installing and configuring monitoring software soon.

You may need to rely on PowerShell to remove a Failover Relationship. The commend Remove–DhcpServerv4Failover will delete the specified partnership. A complete list of PowerShell commands can be found here:

https://blogs.technet.microsoft.com/teamdhcp/2012/12/18/dhcp-failover-using-powershell/

 

Ben Dumke

@BenDumke

ConfigMgr Guides, Resources, and References

, , ,

ConfigMgr Guides, Resources, and References

As a relative newbie to the whole IT professional thing, one of the first things I learned was that there’s a near infinite amount of things I still need to learn and that Google was my very best friend in the field. While that’s still true 7 years later, I probably wouldn’t be where I am today without the guidance of the pathfinders who are generous enough and willing to share their wisdom online. This post is about some of the resources I’ve found along the way. The goal is to help navigate some of the vast amount of resources available to a ConfigMgr Admin, new or veteran.

Communities

I’m a very big fan of how the ConfigMgr community is always ready to share how they get things done. One of my favorite ways of learning is talking to other ConfigMgr admins who’ve done what I want to do and have an opinion on it. I think it’s a sign of a healthy product when the development team is actively interacting and engaging with the community; there are a few ways to do that.

Twitter

I’m pretty new to Twitter myself, but it is a veritable smörgåsbord of information and networking opportunities. I use TweetDeck to keep my eyes peeled on the #ConfigMgr, #SCCM, #PowerShell, #CMPivot, and #MMSMOA conversations. Through watching those hashtags, you’ll get a feel of who to follow to keep up to date with the latest information. Have any recommendations for hashtags that you’re following? Leave a comment below!

WinAdmins Slack

The WinAdmins Slack is a Slack group that covers a wide array of topics that a typical Windows Systems Administrator might be interested in conversating about. Some of these channels include topics like Active Directory, ConfigMgr, Exchange, O365, PowerShell, Windows OSD, and a ton others. The Slack also includes channels that aren’t IT related, so it’s a good chance to talk to others with similar hobbies or passions. If you’re worried about participation, the ConfigMgr channel has almost 5500 members alone!

To join the WinAdmins slack, you can e-mail winadmslack@gmail.com for an invite.

Reddit

Reddit is a social news aggregation site with sub-communities, also known as Subreddits. These are good places to post general questions or look for opinions on a decision. There are a few that come to mind when it comes to ConfigMgr.

/r/SCCM – One of the first ways I ever interacted with the ConfigMgr community was through this subreddit, and it’s how I found the WinAdmins slack. This subreddit has participation from the ConfigMgr development team, several superstar MVPs and thousands of other ConfigMgr admins, making it a great place to share information, or ask a question.

/r/SysAdmin – A more general subreddit, but this community is certainly the largest IT subreddit I follow. You’ll often find very useful posts about news or the latest disasters spawned by the most recent Patch Tuesday.

ConfigMgr UserVoice

Arguably one of the best ways to interact with the product team is by submitting your ideas on how to improve ConfigMgr. There are a few ways to accomplish that officially; the UserVoice and the Smiley Faces in the console, pictured below. The product team is responsive to feedback via both of these avenues, and it shows they really care about their work.

Conferences

I’m a very introverted individual, and though I suspect this is a fairly common trait amongst IT professionals, conferences are still one of my favorite things to get to do. It’s a great opportunity to be in proximity with potentially thousands of like individuals who share either a similar passion or similar experiences. Also, it’s a great opportunity to fangirl over some of the rockstars who’ve helped shape your career…

For ConfigMgr, there are three general conferences that I’m aware of or have been to, that I would recommend to anyone who’s able to go.

MMS – Midwest Management Summit

I’ve only been to MMSMOA once so far, but far and away, it was one of the most valuable experiences of my career. It’s really cool to feel like a part of a community in the various online groups that are available, but it was never more real for me than when I was at MMSMOA in 2018. I was exposed to more than I can absorb, was overwhelmed the entire time, and learned a ton of helpful, useful information, and I’d do it again in a heartbeat. This is a real-world conference, with real-world solutions, and the sessions are not recorded; this encourages participation with the audience and speakers, and it’s great. Deep, and pretty wide.

MMS has since started spin-off editions in order to be available to those who aren’t able to make it to the main event, and they put work in to make sure it’s worth your time.

You can read more about MMS here, and on Twitter @mmsmoa.

Microsoft Ignite

The big event. Microsoft’s huge, giant, stunning, impressive showcase of the year. Your superstar Microsoft MVP’s will be here with the latest to share, and there aren’t many networking opportunities like it. Real, real wide, but not very deep. However, it is great exposure to the entire Microsoft stack, and the range of IT Professionals attending is incredible. Additionally, all of the sessions are generally recorded and made available online, so if you miss a session you’re interested in, you can always check the VOD later.

You can read more about Microsoft Ignite here.

Local User Groups

If a System Center user group, Windows Management user group, or any relevant IT “thing” user group is available to you, locally, I highly recommend participation in those events. The production isn’t going to be comparable to a big conference, but that’s not the point. It’s a great opportunity to network with some of your local peers! Finding some local user groups can be difficult, though. It’s possible such a user group does not exist in your area. If that’s the case, there stands an opportunity to start something new! It doesn’t have to be extravagant, and could even start out as a booth at a local pub. You can use Twitter, local Facebook groups, local subreddits, or any number of ways to reach out to potentially interested IT professionals in your area. Maybe your TAM is even willing to help you start one.

Learning

You could call this section training, but I always think of the Rocky movies when someone brings up training, and am somehow let down by that fact. For ConfigMgr, these are the resources I’ve recommended the most.

Justin Chalfant’s SCCM Video Guides

Justin Chalfant (@setupconfigmgr) of PatchMyPC posts, very regularly, to his blog, and the youtube channel linked here. These videos are probably what I see most often recommended, and for good reason. Justin posts quality videos, with great details, and paired with a paired with a lab, are a great way to dig in and learn ConfigMgr. I’m sure there are other channels out there, but Justin’s videos are the ones I know, and the ones I recommend.

Home Labs

Speaking of labs, I can’t recommend one enough. Microsoft provides a free to download lab, by way of the Modern Desktop Deployment and Management Lab Kit, and it’s a quick and easy way to get started with your own lab. Build it up, tear it down, and do it again. Break what you can, and then fix it; deploy Windows 10 to a VM, then deploy an app you’ve packaged to that VM, and then remove that app with a configuration baseline! Outside of these pre-built labs, you could take it a step further and build a lab yourself, from the ground up. This is how I did it, and it provides the most opportunity to learn, in my opinion.

Books

Recommending books in 2019? Yeah, why not. These books helped me when I first started out. Real-world opportunities, a lot of free time, books, and labs. These are the two books I’m familiar with and have on my bookshelf in the office. I’m providing Amazon links to the books for your convenience, but they’re not affiliate links or anything like that.

System Center Configuration Manager Current Branch Unleashed

Mastering System Center Configuration Manager

The One-Stop Shop

/u/ExeqZ on Reddit posted a Google Document intended to serve as a community-driven, one-stop shop for ConfigMgr resources. The ConfigMgr Community is one of the most eager communities out there when it comes to sharing knowledge. This document serves as a single point of reference for contributor blog sites, relevant twitter accounts, Microsoft documentation, and a lot more. You could have an entire bookmark folder dedicated to ConfigMgr related links, and still learn about something new from the doc.

So here I am, trying to do my part in sharing the doc wherever I can. I expect that this document will evolve over time, and maybe Google Docs isn’t the final form of a resource like this, but it’s a start.

If you’re reading this blog post, you’re probably a techie, and you’ve probably been inspired by one of the many people featured in this Doc. Maybe you want to give back to the ConfigMgr community and this is a low-effort way to do just that. You can contribute your favorite blog, guide, twitter account, or whatever, just add it to the doc where you see it’s most relevant. Don’t see a category that you think is relevant to what you’d like to contribute? Just make it! That’s the whole point, it’s by the community, for the community.

I hope that something in this list has helped you out if you’ve made it this far, and if so, let me know what you found interesting! If I posted something wrong, or if you have anything you would like me to add, just let me know. Interested in one of these for PowerShell resources? Let me know below, and I can start working on that as well.

If you’d like to reach out to me, you can always contact me @tstolswo.

To find other posts I’ve contributed to the blog, you can check my Author page here.

WMI for Dummies

, , ,
WMI for Dummies
Part 1 – Basic Queries
To query WMI, you need to use the Get-WmiObject cmdlet.  An example is below:
No special formatting, filtering, output, etc.   A call to WMI like this will only query your local machine. If you’re trying to get information from a remote computer, then you need  to use the –ComputerName flag.  Be warned, that the credentials that work for your computer might be completely worthless on another machine.  If that happens, you’ll see an error like this:
You have some options when this happens, you can either open a new PowerShell window with the “RunAs” right click option and enter your credentials at that point, or you can use the –Credential flag to enter them on the fly.
That should be enough to give you a basic understanding of how to query WMI on your computer and remote machines.
Part 2 – Filtering Results
Sometimes when you query WMI, you’ll get a ton of results back. Easy examples of that are the Win32_Product class (a list of everything in Add/Remove programs), or our example, the Win32_NetworkAdapter class.
There are three typical ways of filtering WMI results. The first is with a pipe to the where-objectcommand, usually aliased to where or just ?
Here’s what the wherecommand looks like in action:
The downside to using whereto filter your results is that the first command will complete before the filtering is performed. This means that if you’re filtering against a giant list, that entire list has to be generated before it can even start filtering.   For things like our Win32_NetworkAdapter class, that isn’t a big deal, but if you’re filtering a few machines out of your entire SCCM SMS_R_Device database, it’s highly inefficient.  When you have giant datasets to filter against, you’re usually better off filtering the list as it’s being generated. The first example of this is the –filter flag.
Notice that when we use the where command, the filtering is done with “-like” and the “*” symbol , while WMI filtering has no “-“ and uses “%” instead.  We can also use the –query flag to construct the entire command as a WQL query statement.
That should give you a basic idea of how to filter your WMI search results.
Part 3 – Selecting Output
Up until now, we’ve just taken our output however WMI decided to give it to us, which was usually List format.  When looking for a lot of detail about one or two specific results, List is a great format, but when you’re getting data about more than a couple items, you usually want them as a Table.   If you just want to select one data point about your results, there are three main ways of doing this. The first is to pipe your output to the select-object or select command.
Now, we just have the Name value.  You can also do your selection from within a WQL query statement.
What you’ll notice with both of those options is that there’s some header information that comes along with the value you wanted. Personally, I like to use this method of calling out one specific value:
As you can see, that just returns the value we requested with no other information coming along for the ride.
Part 4 – Formatting and Exporting
Now, we’ve done some basic formatting by only selecting values we needed, but let’s say your SCCM architect really wants a nice report to show off and has come to you about it.  For this example, let’s say he wants a list of all the network adapters on your computer that actually have physical addresses.  Here’s what that statement looks like.
That gives us our dataset to work with, but it’s unformatted.  To format it in a report-friendly way, we pipe it to the format-tablecommand.
Note that we can use the –propertyflag to specify which values from the dataset we want to display. Now, if you want to export this as a CSV, you can’t just pipe your format-table command to the export-csvcommand.   Instead, we use the select command from earlier to pick out the values we want, and pipe that to the export-csvcommand.
You’ll get no output on your screen (assuming you typed it all in correctly), but when you open the CSV you created, you’ll see your data.
You may be wondering about the –notypeinformation flag. That’s to stop your CSV file from having weird header information in the first row like this:

 

Hopefully, that gives you some basic information to start with. WMI is one of those commands that just don’t have great documentation within the Get-Help command because each class has its own quirks, values, etc.  Microsoft does have excellent documentation for each class if you have a basic understanding of how WMI works, so just go to Google® and type in the exact name of the class you’re querying to see it.
Any further questions, just let me know!