The Realm of the Verbal Processor

Jarvis's Ramblings

Speaking at MMS 2012

I just got the alert that one of my session proposals for MMS 2012 was approved! My session will be titled “Case Study: Hierarchy Simplification With ConfigMgr 2012“.

Session Abstract:

One company, 15000 systems, 70 locations…and 23 Primary Sites in ConfigMgr 2007. This may be the poster child for hierarchy simplification with ConfigMgr 2012. Working with ConfigMgr 2012 RC1, we were able to plan the architecture redesign to simplify this down to a single primary site while expanding the ability to safely delegate management across multiple business units. This case study digs into the decision process that took place through the architecture and management redesign process.

I’m super excited! See you in Vegas!

Advertisements

January 18, 2012 Posted by | ConfigMgr 2012, MMS | 5 Comments

ZTItatoo.wsf–Error 9601: DNS Zone Does Not Exist

Recently I ran into an issue where a task sequence was failing on the Tattoo step of an MDT integrated task sequence. The error that shows up in the Status Message viewer is:

The task sequence execution engine failed executing the action (Tattoo) in the group (Execute Task Sequence) with error code 9601.

The operating system reported error 9601: DNS zone does not exist.

Now…I know that the real error has nothing to do with DNZ zone. That error code was generated by the ZTItatoo.wsf script. Taking a quick look through the MDT documentation (gotta love the search function in Word) for that error code shows what the script thinks is going on…

ERROR – ZTITatoo state restore task should be running in the full OS; aborting.

So…at least I’m on the right track…but I’m in the full OS already…why the bogus error? Looking through the script shows that the script is the value of an environment variable:

If oEnvironment.Item(“OSVersion”) = “WinPE” then

oLogging.ReportFailure “ERROR – ZTITatoo state restore task should be running in the full OS, aborting.”, 9601

End If

The reason I got this error is that I had stripped out a bunch of tasks from the default MDT task sequence…including the Gather task that runs just before the Tatoo task. The Gather tasks sets a ton of variables based on the current state of the system…including the “OSVersion” variable. The only time the Gather task had run in my task sequence was at the very beginning…when it was still in PE. Adding that step back in fixed the issue.

September 19, 2011 Posted by | ConfigMgr | Leave a comment

Error Code 31 During Build & Capture Task Sequence

I’ve seen this a few times during Operating System Deployment engagements at clients. During a Build and Capture task sequence the TS will fail with a 80004005 exit code. Looking at the SMSTS log or in the status messages for the advertisement will show messages similar to:

Windows Setup completed with exit code 31

Exiting with code 0x80004005

Windows setup failed, code 31. The operating system reported error 2147500037: Unspecified error

Lovely. What the heck does that mean? Since we all know how helpful 80004005 is. :-)

In looking at the logs located in x:\windows\temp\smstslog\windowssetuplogs (I can’t remember which log file.) I found reference to setup not being able to import a critical driver. Now we are getting somewhere…which driver is it? A blasted Alps Touchpad driver. Not sure about you, but that does not rise to the level of “critical” to me during a completely hands off process like a task sequence.

Basically I left the default “Auto Apply Drivers” step in the B&C Task Sequence. The client had previously imported a ton of drivers…including the “critical” Alps Touchpad driver. Simply disabling the Auto Apply Drivers step in the TS let the task sequence continue. Since the B&C only runs on a virtual machine I don’t need that step anyway.

September 15, 2011 Posted by | ConfigMgr | Leave a comment

UDI Application Weirdness

One of the really cool aspects of MDT 2010 Update 1 is the integration of what was formerly known as Modena…now named “User Driven Installation”. This provides a very slick looking wizard that can pop up at the beginning of a task sequence to allow for customization of the OSD process. There is a lot of functionality there around computer naming, domain/workgroup joining, OU selection, adding a user to the local admin group, language selection, and others. The feature that most of my clients are interested in however is the ability to customize application deployment for apps that are not in the image (Project, Visio, Acrobat, etc).

There has been one aspect of this that has caused issues on multiple occasions that I figured was worthy of a detailed blog post. The issue comes up if you use the default configuration file (UDIWizard_Config.xml) as your starting point when you run through the UDI Wizard Designer. After customizing the applications section, you still see the default applications screen when the wizard runs…either using the “Preview OSDWizard” command or running it in a Task Sequence. What you see is:

DefaultSoftware

Digging into that default XML file shows us why this issue comes up. First you will notice that one of the “Preflight” checks that is performed is the “Application Discovery” check.

Preflight

This allows you to configure app replacement in a re-image scenario (i.e. if Office 2007 is installed, install Office 2010…if Acrobat 9 is installed, install Acrobat X…if EditPlus is installed, install Notepad++). This really is a cool feature. However…if you haven’t configured this aspect it’s not necessary to run the check, so you can just delete it. However…deleting that from the Preflight does not clean up the other references to it in the XML file. If you edit the XML directly you will notice the following lines down in the Application configuration section. Note that there is still a reference to the AppDiscovery preflight check.

<Page Name="ApplicationPage" Behavior="enabled">
      <Applications Link.Uri="preflight\AppDiscovery\AppDiscoveryresult.xml" TsAppBaseVariable="PACKAGES" RootDisplayName="Applications">

Removing the reference in the “Link.Uri” attribute resolves the issue. That section should look like:

<Page Name="ApplicationPage" Behavior="enabled">
        <Applications Link.Uri="" TsAppBaseVariable="PACKAGES" RootDisplayName="Applications">

After doing so, you will see the customized application section that you configured using the wizard:

CustomSoftware

August 25, 2011 Posted by | ConfigMgr, MDT 2010 | Leave a comment

PXE Booting and IP Helper-Address Resources

I commonly work with clients who want to use PXE as the method for starting the Operating System Deployment process. In practically all instances the ConfigMgr server (and hence the PXE Service Point) and the clients are not on the same subnet. By default the PXE UDP packet will not be forwarded by the router…it will just drop it. As a result there are two methods for getting PXE to work across subnets…the IP Helper-Address and setting DHCP options.

Let me first address the DHCP Options scenario. First, this option is officially unsupported by Microsoft for getting PXE to work (per this blog post). It can work, but it may not be reliable and consistent. The DHCP options to set are a combination of 60, 66 and 67 depending on the scenario…in particular depending on whether the PXE server is on the same box as the DHCP server. The blog post linked above describes the options.

Below are a few resources that I have found helpful in understanding what the IP Helper-Address is, why you would set it, and defending the decision with the network team (which nearly ALWAYS happens). I will update this list as I find others. If

Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

Cisco IP Addressing and Services Commands

Cisco Support Forum: DHCP and PXE Question (see the response in this thread from Robert Taylor)

Trinity Explains The IP Helper-Address Command

Checklist for getting PXE to work in ConfigMgr

PXE Service Point causes the Windows Deployment Services Server service to crash and hang

PXE clients computers do not start when you configure the Dynamic Host Configuration Protocol server to use options 60, 66, 67

Windows Deployment Service stops responding when you use a PXE service point on a computer that is running a System Center Configuration Manager 2007 SP1 or SP2 site server

Windows Deployment Services server that is running Windows Server 2003 may not start after you move the server to a different organizational unit

August 19, 2011 Posted by | ConfigMgr | Leave a comment

ConfigMgr Version Numbers

I posted on this once before but realized last week that an update was in order. First, there were a few version numbers missing from my original post. Second…I only dealt with part of the question. When looking at version numbers for ConfigMgr, there are typically two items that someone might be referring to…the version of ConfigMgr installed on the site server or the version of the ConfigMgr client installed on the clients. My previous post mostly dealt with the site server question. This one will be an update to the original along with dealing with the client version numbers as well. BTW…I’ve seen posts scattered around the web that deal with this to varying degrees…I’m trying to gather all of the info out there into one place…something I haven’t been able to find.

ConfigMgr Site Server version numbers:

ConfigMgr RTM

4.00.5931.0000

ConfigMgr SP1

4.00.6221.1000 “R2 installed: No” (See the screenshot below.)

ConfigMgr SP1 R2

4.00.6221.1000 “R2 installed: Yes”

ConfigMgr SP2 (RC)

4.00.6468.2001

ConfigMgr SP2 (RTM)

4.00.6487.2000

ConfigMgr SP2 R3

4.00.6487.2000 “R3 installed: Yes”

Note: If an International Client Pack is installed it will change the second digit of the last section. ICP1 makes that digit a “4” while ICP2 makes it a “7”, so the SP1 version would be 4.00.6221.1700 with ICP2 installed.

image

ConfigMgr client version numbers:

ConfigMgr RTM

4.00.5931.0000

ConfigMgr SP1

4.00.6221.1000

ConfigMgr SP1 (with KB977203)

4.00.6221.1193

ConfigMgr SP2 (Beta)

4.00.6425.2000

ConfigMgr SP2 (RC)

4.00.6468.2001

ConfigMgr SP2 (RTM)

4.00.6487.2000

ConfigMgr SP2 (with KB977203)

4.00.6487.2111

ConfigMgr SP2 (with KB977384 beta)

4.00.6487.2119

ConfigMgr SP2 (with KB977384 beta)

4.00.6487.2125

ConfigMgr SP2 (with KB977384)

4.00.6487.2157

ConfigMgr SP2 (with KB2509007)

4.00.6487.2188

Note: R2 and R3 do not change the client version number.

August 18, 2011 Posted by | ConfigMgr | 3 Comments

Weight Loss: Goal Achieved

Back in May Julie and I made dramatic changes to our diet and exercise. For me that meant that french fries were no longer an entire food group. I’ve probably eaten more produce in the last three months than I had in the previous three years…and that might not be much of an exaggeration. It meant that exercise actually happened instead of just being thought about. I set two goals at the time. The initial goal was to lose 15 pounds by my 40th birthday…which I did. The overall goal was to get back to the weight I was when my eight year old was born. Julie’s goal was to lose the baby weight from Sam that simply would not go away.

I achieved the second goal yesterday! My net loss is 34 pounds. I’ve dropped over 6 inches off my waist, and my heart rate has dropped from 91 beats per minute to 65. A couple of weeks ago my son called me “Skinny Daddy” when I picked him up from childcare are church. I actually might need to get my wedding ring resized because it is dangerously loose. Julie hit her target weight a week ago…I’m really proud of her! We are both within four pounds of our high school weight!

Our new goal is to maintain this weight…to be within five pounds of where we currently are on August 11, 2012.

August 12, 2011 Posted by | Health, Personal | 3 Comments

A Healthier Me

Back in the middle of May, Julie and I were talking about both of us wanting to lose some weight. I had put on 35 pounds since our daughter Marybeth was born eight years ago. Julie had significantly less weight than that to lose. :-) I came in from work the day after that conversation, and Julie was walking out the door to go for a run as I was walking in. That motivated me to also go for a walk/run that day. And quite honestly, before I started that run I prayed a very sincere prayer for God to not let me have a heart attack while running…I was honestly nervous. That night I stepped on the scales to see what my starting weight was. The initial goal I set for myself that night was “15 by 40”…fifteen pounds by my fortieth birthday…which was 6 1/2 weeks away. That goal seemed within the realm of possibility, but it was one that I was going to have to work very hard to achieve. It was clearly going to take a lot of work.

I started eating healthier and exercising daily that week. One week later I started an official diet and exercise program that a coworker (thanks Eric!) had told me about. It sounded like the hokiest fad diet I had ever heard of…the book is even bright pink. But I knew that he had lost a ton of weight fast…which was exactly my goal.

Today is my fortieth birthday. Final result of the last 6 1/2 weeks…I have lost a total of 21.2 pounds! None of my pants fit anymore. My belt is tightened up to the last notch. I’m wearing clothes very comfortably that I haven’t been able to fit into in over two years. Overall I’m feeling fantastic…no back pain…I’m sleeping better…I have more energy. Instead of walking over half of a one mile walk/run, I recently averaged under 9.5 minutes/mile for a three mile run. Not blazing fast by any means…but exciting considering where I was just six weeks ago!

I’m still continuing the diet and exercise. Continuing to burn fat. My eventual goal is to get back to the condition I was in when Marybeth was born…so approximately 14 more pounds to go! One of the very nice things about this particular diet is that it gets you eating healthier. I’ve never eaten so much produce in my life! It also changes how you think about eating so that you don’t gain it all back after you reach your target weight. It’s actually very clear…you will be on a “diet” the rest of your life. If you go back to how you were eating before, you are obviously going to get right back into the same (bad) shape you were in before! It still sounds like a hokey fad diet…but the results don’t lie!

Another cool thing is that my wife and brother both joined me on the same diet and are also seeing awesome results. I’ve thanked her personally…and I’m going to thank her publically now. Julie…thank you for going for that run back on May 16. Don’t know why, but nothing has ever motivated me to exercise like seeing you walk out to go run that day.

June 30, 2011 Posted by | Personal | , , | 3 Comments

Task Sequence Hangs During Updates–Fixed?

I’ve seen this many times and just found out that it has potentially been fixed. Situation is that during a task sequence, the whole TS will hang at the apply updates step. The hang occurs when the “Download xx of xx updates” shows.

In theory this has finally been fixed! I haven’t had the opportunity to test it, but it certainly looks promising! Check out this KB for the fix:

http://support.microsoft.com/kb/2509007/en-US

Thanks to Jeff Boehlke at Campus Crusade for Christ for alerting me to this. Jeff is the guy I trained to be my replacement when I left CCC a few years ago.

June 10, 2011 Posted by | ConfigMgr | Leave a comment

Easter surprise from my daughter

Our daughters have been planning for Easter for a week or so. Yesterday they asked us to take them to Target and the dollar store…but did not want my wife or I to go in with them…they were planning something for us for today.

This morning after getting up early and locating their Easter baskets (that crazy Easter Bunny always hides them in odd places)…they came into our bedroom very eager for my wife and I to come out and look for our Easter bags that they had prepared. They were very excited. Very very excited.

After locating my bag (in the coat closet), my eight year old daughter was eager for me to open it. Turns out that she had picked me, and my eleven year old had picked Julie. As I started pulling things out of the bag…more and more kept coming…multiple kinds of candy, a couple of different snack foods, a watch, a basket… It wasn’t until she mentioned using her “Mom-Mom money” that I realized what she had done. She had taken the ten dollars that her great-grandmother had sent her…and taken three more dollars out of her bank to make sure that Daddy had an Easter basket. My eight year old spent thirteen dollars of her own money on me.

Things that will bring a grown man to tears.

April 24, 2011 Posted by | family, kids | Leave a comment

Green Romans?

A few nights ago as my wife was finishing up the nightly Bible reading with our daughters, my eight year old asked my wife about the trip to Israel that our local radio station (KTIS) has talked about. One of the things that the station mentioned about the trip was something about “walking in the footsteps of Jesus”. My daughter was skeptical…knowing that there is no way that footprints could survive two thousand years. Julie explained that they were just meaning that you could visit Bethlehem, Jerusalem, the Sea of Galilee and other places that Jesus visited.

Marybeth thought for a second then very seriously asked if the cross was still there. I explained how the cross that Jesus died on was very likely used many times before Jesus…and many times after Jesus because of how the Romans used crucifixion as a means of execution.

Without missing a beat Marybeth sing-songed one of the more morbidly funny things I have ever heard:

Reduce Reuse Recycle!”

April 11, 2011 Posted by | comedy, Jesus, kids | Leave a comment

Why People Write Viruses

Tonight over dinner I was telling my wife about a conversation I had with someone today about a virus issue at a company. One of my daughters asked why people write viruses. Before I could formulate an answer I hear the lovely voice of my wife pipe up:

“Because their fathers beat them and their mothers dressed them funny.”

Now that I think about it, I don’t know that I ever did actually answer my daughter’s question! :-)

April 11, 2011 Posted by | comedy | Leave a comment

Bluetooth Mouse Losing Connection–Fixed

imageFor the last few years I have been using the Microsoft Wireless Notebook Presenter Mouse 8000 and absolutely love it. I got it as a gratuity for participating in a focus group. I love that it is responsive and gives me the ability to control PowerPoint or media controls while giving a presentation to a client.

My one frustration with it has been that it would randomly lose connection to the computer when using my laptop’s internal Bluetooth adapter instead of the included USB Bluetooth dongle. I don’t want to keep up with the USB dongle…I want to use the internal Bluetooth. But I also want the mouse to always work. I had done internet searches on a couple of occasions to no avail…until recently.

A couple of months ago I did another search and came across an article where someone had been having the same issue and had a potential fix to the issue…she nailed it. The issue is that the computer is turning off Bluetooth to save power. The fix is really simple.

Open up Device Manager, then open up Bluetooth Radios.

image

Double click your Bluetooth adapter to view properties, then switch to the Power Management tab. Uncheck the box for “Allow the computer to turn off this device to save power”.

image

After unchecking that box, I have not had an issue with the mouse losing connection in over two months. Problem solved. Big time thanks to Sheryl Canter for posting the fix in the article linked to above.

April 6, 2011 Posted by | Misc, Windows 7 | 3 Comments

System Center Roadmap 2011

This was one of the slides from the second keynote at MMS last week. This is a slide they show every year to highlight what is coming in the System Center arena over the coming year. What is really exciting about this one is that a new version is coming for everything in the System Center family this calendar year. This is a lot of very exciting changes coming. This does come with a caution though…there’s a lot of work to be done ahead of time to be prepared for the launches!

image

March 29, 2011 Posted by | ConfigMgr, ConfigMgr 2012, Microsoft, MMS 2011 | Leave a comment

Anti Malware–the landscape just changed

HUGE announcement at MMS just now. Forefront Endpoint Protection 2010 is now part of the Microsoft Core CAL. This means that all the customers who have a Core CAL already…which many who own ConfigMgr have it licensed via the Core CAL…ALREADY have the licensing in place for FEP…they already own it. If you have a Core CAL…it eliminates the need to purchase a separate AV license. You can just use FEP…which is managed via the ConfigMgr console…which eliminates a separate management infrastructure for malware…you simply manage it all via ConfigMgr.

This will likely have a big impact on AV vendors. I can hear clients asking the question now…”I already have FEP licensed via the Core CAL…and I can manage it with ConfigMgr which I already have deployed. Why should I renew my AV licensing with ______________?”

This is huge. It should be very interesting to see the full impact of this announcement over the next year or so.

March 23, 2011 Posted by | ConfigMgr, ConfigMgr 2012, MMS 2011 | Leave a comment

ConfigMgr 2012 Beta 2–OSD Findings

I was poking around in one of the ConfigMgr 2012 Hands on Labs at MMS today to see what is new/different. I came across some pretty interesting things when looking at task sequences.

[Thanks to Torsten for pointing out an oversight on my part…that one of the “new things” I mentioned is already in ConfigMgr 2007. I’ve done plenty of OSD…I’ve never noticed the “Apply Data Image” task sequence step. Heck…I even pointed it out to two other people yesterday and they had never noticed it either.]

First, there is a new option for “Apply Data Image”. Not apply an OS Image…take a WIM file that does not include an OS…and apply that to a disk/partition. Definitely some cool options with that.

Second, I was looking at the “Options” tab on a task sequence item and found some new (and VERY cool) options there. The new options with their key components that were available as criteria on the Options tab are:

  • File Properties
    • Path
    • Version
    • timestamp
  • Folder Properties
    • Path
    • timestamp
  • Registry Setting
    • Exists
    • Not exists
    • Equals
    • Not equals
    • Greater than
    • Greater than or equals
    • Less than
    • Less than or equals
  • Installed software
    • Choose filename which fills out
      • Name
      • Version
      • Product code
      • Upgrade code
    • Options for
      • Match specific product (Product code and upgrade code)
      • Match any version of this product (Upgrade code only)

Over time I have written vbscripts to pull file properties, registry settings and installed software to then set a TS variable…which I could then use later as criteria in a “TS variable equals xyz” condition on a task. It is very cool that this will be part of the core functionality in ConfigMgr 2012.

March 23, 2011 Posted by | ConfigMgr 2012, MMS 2011 | 1 Comment

MMS Bible Study–Details

Three years ago I started leading a brief morning Bible study at MMS. I’ve had numerous emails from people over the last few years who were very encouraged by this event. Every year up til this one Rod Trent has graciously offered his room for a meeting place. Because it was being held in his room, I’ve never posted the location on my blog to protect his room number. This year Rod’s room was too small for the group to meet in, so he contacted the MMS event staff and got us an actual meeting room. We met this morning and had a decent turnout…in spite of me not getting the meeting room info out to my email list til late last night.

If you are interested in coming, we will be meeting each morning for the rest of the week at 7:15am in Reef D on Level 2 at the convention center. If you are interested, we’d love to have you join us. We will be wrapping up no later than 8:00 each morning to allow time to get to breakfast and the first session of the day…Reef D is only a short walk away from the meal room.

March 22, 2011 Posted by | Jesus, MMS 2011 | Leave a comment

ConfigMgr 2012 Beta 2–Tomorrow?

During the State of the Union session at MMS this morning, there may have been a slip of the tongue by one of the presenters. They had been saying that Beta 2 for ConfigMgr is “very soon”…then at one point I’m almost positive that I heard a slip of the tongue stating “when you download it tomorrow”.

By no means definitive, and could have just been a slip that is not based in reality…or it could have been a slip to an announcement that was being held for tomorrow.

March 22, 2011 Posted by | ConfigMgr, MMS 2011 | 2 Comments

Logging Task Sequence Variables

How many times have you worked with Task Sequence variables via either a script or CustomSettings.ini and really needed to know what the value of a particular variable was at a specific point in the task sequence? I really need to know what that variable is so that I can use it appropriately for some of the customization I have set around the variables.

One of the most helpful posts I have come across in the last several months was written by Daniel Oxley on the Deployment Guys blog. It was a post from a while ago that essentially shows how to easily log the variables. You simply download the VBS from his post and put it in the scripts folder of your MDT package. Then just call the script via a “Run command line” task. It dumps a log to the standard logs folder on the client with Variable/value for every variable that is currently in use. One cool thing is that it names the file based on date/time stamp, so you can run it multiple times in the same task sequence to see how the variables change as it walks through the process. I found it to be immensely helpful when working with some of the other MDT scripts that are customized heavily on variables.

Check out Daniel’s post and download the script here.

March 7, 2011 Posted by | ConfigMgr, scripting | Leave a comment

Computer Association Script

Fairly recently I was talking with someone who was in the midst of an XP to Windows 7 migration. They were replacing groups of computers and using a ConfigMgr task sequence to install Windows 7 on the new computers…with the USMT integration migrating the user state. Now…before that can be done, there are a few things that have to be set up:

  1. Create a Computer Association between the old computer and the new computer
  2. Add the old computer to a collection that will run a task sequence to capture the user state
  3. Add the new computer to a collection that will install Windows 7 and restore the user state

The guy I talked with was having a very slow time manually clicking through the ConfigMgr GUI to create these Computer Associations one by one. That is an awful lot of clicks and it was obviously slowing down his ability to move the migrations along at the speed he wished.

So…I did a little internet scavenging of scripts and put them together inside a different framework. I freely admit that my main contribution to this was pulling key components out of the other scripts and putting them into a framework that worked well for this purpose. The end result is that the task that was taking several hours for him to do by hand is now accomplished in a few seconds.

First there was a script that I found referenced by several people that was originally written by a guy named Mark Nunn. His website is now dead, but I found where his “Add to Collection” script was available on myITforum.com. From this I mainly pulled the command for adding to a collection along with how to equate a computer name to the SMS ResourceID.

Second was an excellent post by Donnie Taylor. His script will create the computer association one at a time via command line arguments. It does require that the command line argument be the SMS Resource ID of the computers. His script showed the command line for creating the computer association along with having a basic logging function.

I took those two and put logic around them to create a script that will read computer names from a CSV file, query ConfigMgr to find the SMS ResourceID, then create the association and add each computer to the appropriate collection. The list.csv file expects the first column to be the computer names of the “old” computers and the second column to the the “new” computers. The script does expect a command line argument of “import” before it will do anything. Read through it carefully…you will need to set the name of your server, the path to the CSV and the path to the log file, along with setting the Collection IDs of the Capture and Restore collections that the computers will be added to.

There are definite limitations to the script. If a computer name is in ConfigMgr more than once…I honestly don’t know what it will do. I think it will grab the first one that it finds, but I don’t know for sure. I’m sure there are others, but that is a glaring one. Feel free to download and use…but as always…use at your own risk…the script is free…you get what you pay for! You can download it from my SkyDrive.

March 6, 2011 Posted by | ConfigMgr, scripting | 5 Comments