30 Mar 2011 @ 5:36 PM 

When using Windows PE (in my case version 3.0) for deployment, you might have already your share of problems that can occur while executing a task sequence.

I just had the “opportunity” to see a new one at a customer’s test site. It happened at unusual times, like in the middle of the image transfer or directly after it. The logs showed that the client was unable to reach his server. But why that? Physical connectivity was tested and ok and it never happened when running Windows 7 itself on the same machine.

It took me a bit because this one isn’t something you stumble upon everyday: the client lost his IP! Why? A DHCP lease time of 10 minutes! So, if a task took more than 10 minutes without a reboot, the IP was gone and the sequence ended in an error.

The lession learned here is that the DHCP Client in Windows PE doesn’t refresh his lease on time (or at all). Doh!

PS: Please don’t ask why this lease time was set at the DHCP server ;-)

Posted By: Christoph Schmidt
Last Edit: 30 Mar 2011 @ 05:36 PM

EmailPermalinkComments (0)
Tags
 25 Oct 2010 @ 3:38 PM 

At some point in the lifecycle of hardware you are in the position to consider an upgrade to achieve better performance without the cost of a complete renewal of the whole system. In most cases, adding some memory does very well. But what if do not have an up-to-date inventory of all the clients out there? You could send out your apprentice-minions, use scripts or just utilize the mighty Configuration Manager!

With little effort you can extend the hardware inventory so you will get to know

  • The total amount of DIMM-Slots
  • The free amount of DIMM-Slots

To get your hands on this information, you have to modify the SMS_DEF.MOF on your primary sites. There are two WMI queries that need to run on the client. The first one gets detailed information about every installed module and the second one is used to determine the total and used slots on the mainboard. This is inspired by some wise guy from the myITforum.

The MOF-File in question is located in the following location: <smsinstalldir>\inboxes\clifiles.src\hinv

Be sure to make a backup and, to be on the safe side, do not test this in a productive environment. It’s unlikely that it causes trouble, but we should always fear Murphy’s Law!

Just add the following code at the bottom of the MOF-File and save it.

//**************************************************************************
//* Class: Physical Memory
//* Derived from: (nothing)
//*
//* Auslesen der Speicherinformationen pro installiertem Modul
//*
//**************************************************************************
[SMS_Report (TRUE),
SMS_Group_Name ("Physical Memory"),
SMS_Class_ID   ("Microsoft|Physical_Memory|1.0")]

class Win32_PhysicalMemory : SMS_Class_Template
{
[SMS_Report (TRUE)] string BankLabel;
[SMS_Report (TRUE), SMS_Units("Megabytes")]  uint64 Capacity;
[SMS_Report (TRUE)] string Caption;
[SMS_Report (TRUE)] string DeviceLocator[];
[SMS_Report (TRUE)] uint16 FormFactor;
[SMS_Report (TRUE)] string Manufacturer;
[SMS_Report (TRUE)] uint16 MemoryType;
[SMS_Report (TRUE)] uint32 PositionInRow;
[SMS_Report (TRUE)] uint32 Speed;
[SMS_Report (TRUE),Key] string    Tag;
[SMS_Report (TRUE),Key] string    CreationClassName;
};

//**************************************************************************
//* Class: Physical Memory Array
//* Derived from: (nothing)
//*
//* Auslesen der verfügbaren Speicherslots
//*
//**************************************************************************
[SMS_Report (TRUE),
SMS_Group_Name ("Physical Memory Array"),
SMS_Class_ID   ("Microsoft|Physical_Memory_Array|1.0")]

class Win32_PhysicalMemoryArray : SMS_Class_Template
{
[SMS_Report (FALSE)] string Caption;
[SMS_Report (FALSE)] string CreationClassName;
[SMS_Report (FALSE)] string Description;
[SMS_Report (FALSE)] uint16 Location;
[SMS_Report (FALSE)] string Manufacturer;
[SMS_Report (TRUE), SMS_Units("Megabytes")] uint32 MaxCapacity;
[SMS_Report (TRUE)] uint16 MemoryDevices;
[SMS_Report (FALSE)] uint16 MemoryErrorCorrection;
[SMS_Report (FALSE)] string Model;
[SMS_Report (FALSE)] string Name;
[SMS_Report (FALSE)] string OtherIdentifyingInfo;
[SMS_Report (FALSE)] string PartNumber;
[SMS_Report (FALSE)] boolean PoweredOn;
[SMS_Report (FALSE)] boolean Removable;
[SMS_Report (FALSE)] boolean Replaceable;
[SMS_Report (FALSE)] string SerialNumber;
[SMS_Report (FALSE)] string SKU;
[SMS_Report (FALSE)] string Status;
[SMS_Report (TRUE), Key] string Tag;
[SMS_Report (FALSE)] uint16 Use;
[SMS_Report (FALSE)] string Version;
};

As you can see, you can gather much more details if you switch some of the “FALSE” values to TRUE. The next time the client updates his policy, the new code will be compiled on the client. The next scheduled hardware inventory will execute the new queries and report the results back to the assigned site server. When this happens, two new tables will be created in the CfgMgr-Database. In this case, this would be:

  • v_gs_physical_memory_array
  • v_gs_physical_memory

Of course, this alone won’t help us so much. To make the data readable, we can create a report. I have created a report that combines both tables to show you the details of each installed module, enriched with the information how many slots there are and how much of them are still unused. Feel free to change the SQL statement to your needs.

Report Example

To make things easier, you can download the report’s .MOF-file for quick import into the CfgMgr.

Download: CfgMgr RAM Report MOF

Posted By: Christoph Schmidt
Last Edit: 03 Apr 2011 @ 10:31 AM

EmailPermalinkComments (2)
Tags
 10 Dec 2009 @ 5:49 PM 

Hello everyone!

Our company tries very hard to use the newest software available, so customers see it in action when our consultants work with them. But in the “real world”, the clocks don’t tick as fast. Most of the time we face companies that are now migrating to Windows XP and Office 2003… oh my. In order to stay “compatible” with their workflows, it can be very complicated to maintain both worlds in one notebook.

To ease this pain, I looked into the Microsoft Desktop Optimisation Pack, short MDOP. The MDOP is available for companies that have Microsoft Software Assurance. One part of it is App-V. It virtualizes a software package in order to let it run on systems where compatibility issues due to other installed software would occur. It is not a full operating system virtualization, it’s just the application itself, running in a sandbox. So the software has still the prerequisite to be compatible to your target machines.

This step-by-step guide shows you the basic workflow to create a virtual software package and distribute it to a client with the ConfigMgr, in this case Microsoft Office 2003.

The following environment was used:
“Test Client”
Windows 7 Enterprise x64
Virtual Guest (Hyper-V)
App-V Sequencer installed

“Productive Client”
Windows 7 Enterprise x64
LenovoT61 Notebook
App-V Client and ConfigMgr Client installed (as well as a bunch of other stuff)

“ConfigMgr Server”
Windows Server 2008 R2 Enterprise x64
Virtual Guest (Hyper-V)
System Center Configuration Manager 2007 R2 installed

Be warned, this is a very long, screenshot-heavy post. To view the pictures correctly, click on the little button on the top right corner of the header to increase the column width.expandwidth

 

More »

Posted By: Christoph Schmidt
Last Edit: 16 Dec 2009 @ 12:00 PM

EmailPermalinkComments (4)
Tags
 25 Nov 2009 @ 3:24 PM 

2008 I installed a System Center Configuration Manager 2007 environment at a customer’s site. In the end, we had quite large task sequences with dozens of “install software” entries to automate OS deployments as good as possible. A “feature” of ConfigMgr was to wait 90 seconds in between each task. Imagine 50 software packages… and do the math. It took much too long. A hotfix (KB955955) was released by Microsoft and I deployed it on the SCCM Server. It extended the CCM Client Agent with a MSP file that is applied while the agent is installed. The 90-sec limitation was gone.

So far, so good. This works well, until you upgrade to service pack 2! This will update the Client Agent and render it incompatible with the MSP file. Unfortunately, if you didn’t touch that software package for several months, you may forget about the MSP file. As a result, all your deployments will fail at the “Setup windows and ConfigMgr” task. Pretty simple: removing the MSP will solve the issue. The way to this solution took me a little longer than just a quick bing’ing, anyone who debugs System Center products knows what I’m talking about.

Here are screenshots from the smsts.log, which was logged on the failing client:

Posted By: Christoph Schmidt
Last Edit: 25 Nov 2009 @ 04:02 PM

EmailPermalinkComments (2)
Tags
 24 Nov 2009 @ 2:19 PM 

Today’s task was to upgrade an existing SCCM R2 SP1 installation to service pack 2. I checked the site status before I started: everything was “green”. The prerequisite check was “ok”, despite two minor warnings. So I went on and all SP2 tasks finished successfully. Well then, I thought, let’s check the existing OS deployment tasks to see if it’s still working.

MP Error Log

MP Error Log

We set up a VM and tried booting into PXE… with no response of the server. Restarting the WDS service didn’t do the trick. So I dug a little deeper and took a look at the logs in %programfiles%\Microsoft Configuration Manager\Logs. Interesting files to look at: mpcontrol.log and pxecontrol.log (use SMS TRACE to

PXE Error Log

PXE Error Log

view these logs, if you don’t have any other preference). The PXE log didn’t tell me anything interesting, it even logged successful self-tests! Funny, because the log in the ConfigMgr-Console told me otherwise: the PXE service was not responding. It also told me the Management Port was giving a HTTP 500 error.

After a lot of rebooting and error-hunting I came up with a “solution” to this problem. It seemed the service pack installation didn’t properly update the PXE and management point and caused the unresponsiveness of both service roles.

WARNING: You may already know it, but just to be clear on this: the Configuration Manager takes some time to do it’s work. So be calm and watch the application log for MSI events, stating a successful (de)installation before rebooting. This is true for both the ConfigMgr Roles and Client Agent.

I did the following to solve it:

  • Removed the Management Point Role (in ConfigMgr)
  • Reboot
  • Reinstalled the Management Point Role
  • Removed the ConfigMgr Client Agent (ccmsetup /uninstall)
  • Removed the PXE Role (in ConfigMgr)
  • Reboot
  • Removed the WDS Role (Windows Server)
  • Reboot
  • Reinstalled the WDS Server Role (no configuration after that of course)
  • Reinstalled the PXE Role
  • Reinstalled the CCM Client Agent
  • Reboot

Yes I know: lots of lots of reboots. You may skip them if you dare, please drop me a line if it work anyway.

After that, all components went to green in the system state view and the PXE service started to respond as expected.

Posted By: Christoph Schmidt
Last Edit: 25 Nov 2009 @ 04:18 PM

EmailPermalinkComments (0)
Tags
Change Theme...
  • Users » 1
  • Posts/Pages » 21
  • Comments » 17
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

About



    No Child Pages.

Disclaimer



    No Child Pages.