SCCM Client

IIS 7 causing SCCM client install problem

Posted on Updated on

Recently I ran into a problem installing the SCCM client on some Windows Server 2008 R2 systems.  In digging through client.msi.log, I found errors 0x80004005 and 1603.  Steve Schofield, Microsoft MVP for IIS, discovered the problem was with the client install was, for some reason, performing IIS checks on anonymous authentication.  If the authentication is configured to use Application Pool Identity, which was a new feature in IIS 7, then the install will fail.  The workaround is simply to switch to using IUSR, install the client, and switch back to the Application Pool Identity.

This successfully resolved my issues on a dozen R2 servers!  Thank you Steve!!

The original post: http://www.iislogs.com/steveschofield/iusr-account-and-sccm-2007-r3-agent

More thorough explanation: http://www.iislogs.com/steveschofield/iis-7-iusr-account-sccm-2007-client-status-messages-not-working

Advertisements

Hotfix for Windows 7 Extremely Slow Boot Performance

Posted on Updated on

When our company first implemented Windows 7, the performance was quite good and we were impressed.  However, now that Win7 has been in our organization for the last 1 1/2 years, we’re beginning to see a significant performance degradation in boot times.  What was a 1 minute boot time can now be anywhere from 4 to 10 minutes for Windows to get to Ctrl-Alt-Del screen.

In performing analysis on extremely slow boot/login times, I identified both the cause and a Win7 hotfix to correct the issue.  If you are having a similar problem, check out KB2505348 – High CPU usage or a lengthy startup process occurs during WMI repository verification when a large WMI repository exists in Windows 7 or in Windows Server 2008 R2.

One has to chuckle at Microsoft’s titled description on the issue as “lengthy startup process” which in the real world means “so slow that you never want ever EVER shut off your computer because every time you do, you consider making a switch to Linux”.

** Update 10/2/12: there is a newer version for Windows 7 SP1 at http://support.microsoft.com/kb/2617858 **

SCCM 2007 client crashes on Win2k8 R2

Posted on Updated on

If a Win2k8 R2 server should experience an alert from SCOM that the SMS Agent Host (e.g. the client) service is running, then the resolution is to simply restart the server.  It is possible to prevent this on new server builds – Microsoft claims that restarting the server after installation of the SCCM client will keep the issue from occurring.

This alert is generated because the client crashes and then does a self-reinstall to recover from the error.  You can confirm the client is crashing by checking for application event ID 1000 and 1001 for ccmexec.exe or system log event 7031.  Microsoft has confirmed this is a recently discovered issue with SCCM 2007 clients on R2 servers and that the information is currently only published internally.  The root cause is that Microsoft has found a problem in the code, but it is only fixed in SCCM 2011 and won’t be for SCCM 2007.

***Update 8/17/11***
John Nelson may have isolated the cause of the client crash, attributing it to execution of the Resource Monitor. Check out his post at http://myitforum.com/cs2/blogs/jnelson/archive/2011/08/17/158887.aspx

***Update 7/24/12***
Now there is a hotfix available! See http://support.microsoft.com/kb/2724939/en-us

Save Software Inventory Scan XML Files

Posted on

Sometimes when troubleshooting SCCM client software inventory, it is useful to retain the XML file which contains details on what the scan discovered.  To do this, simply create a file named “archive_reports.sms” within C:\WINDOWS\system32\CCM\Inventory\temp\.  If the scan is just reporting a delta, the file will be small.  But if it is a full SINV scan, then it could be large (the biggest I’ve seen is around 75 MB)

Schedule a Full SCCM Client Software Inventory

Posted on Updated on

There are times when you may be unable to use “Right-click tools” to initiate a full software inventory scan on an SCCM client.  To schedule this to occur automatically upon the next normally schedule SINV cycle, do the following:

  1. Click on Start\Run and type wbemtest
  2. Connect to root\ccm\invagt
  3. Click on Enum Classes with recursive selected Look for a class named InventoryActionStatus
  4. Double click  InventoryActionStatus On the Object Explorer for InventoryActionStatus dialog box
  5. Click on Instances Select
  6. Delete the instance with value InventoryActionID = “{00000000-0000-0000-0000-000000000002}”

Duplicate SCCM Client GUIDs / Full Client Reinstall

Posted on Updated on

This was an issue that I came across from our recent upgrade from SMS 2003 to SCCM 2007.  While we were still using SMS, some systems had been cloned/p2v’d from a production system to a virtual then renamed.  It wasn’t caught at the time, but it appears SMS may have been unable to automatically give the cloned SMS clients a new GUID.  When we migrated to SCCM, these clients were fighting over which of them was the real and live system in SCCM, such that some client records would suddenly disapper from the console…then if they’re client was fixed, a different client record would disappear.

However, simply uninstalling/reinstalling the SCCM client was not resolving the issue.  After some digging around, I found a couple of utilities to help rip out the SCCM client and force a new GUID to be assigned.  I brought these utilities together and created a simple executable to coordinate the process.  This was created with the old, but very reliable, SMS Installer, the code below is for that, but can easily be rebuilt as a vbscript.

If you have any questions about this process, feel free to leave me a comment and I can respond!

  1. On your computer, download and install the SMS 2003 Toolkit v2
  2. In the directory containing your SCCM client install, create a subdirectory (such as “SOURCE”)
  3. From the Toolkit directory, copy ccmdelcert.exe and tranguid.exe to the newly created subdirectory in previous step
  4. In the SCCM client install directory, create an executable or script that does the following in order
    • Execute ccmdelcert.exe (wait for process termination)
    • Delete the file %WINDIR%\SMSCFG.ini
    • Execute ccmsetup.exe /uninstall (wait for process termination)
    • Delete directory %WINDIR%\system32\ccm\
    • Delete registry key HKLM\SOFTWARE\Microsoft\CCMSetup
    • Delete registry key HKLM\SOFTWARE\Microsoft\SMS
    • Execute ccmsetup.exe (wait for process termination)

Below is the ‘code’ for the SMS Installer executable that I built to facilitate this.

Document Type: IPF
item: Global
  Version=6.0
  Title English=Duplicate SCCM GUID Repair
  Flags=00000100
  Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  LanguagesList=English
  Default Language=2
  Copy Default=1
  Japanese Font Size=9
  Start Gradient=0 0 255
  End Gradient=0 0 0
  Windows Flags=00000100000000010010110000011000
  Message Font=MS Sans Serif
  Font Size=8
  Disk Filename=SETUP
  Patch Flags=0000000000000001
  Patch Threshold=85
  Patch Memory=4000
  FTP Cluster Size=20
end
item: Check Disk Space
end
item: Set Variable
  Variable=ROOT
  Value=C:
end
item: Get Environment Variable
  Variable=WINDIR
  Environment=WINDIR
end
item: Execute Program
  Pathname=%INST%\SOURCE\ccmdelcert.exe
  Flags=00000010
end
item: Delete File
  Pathname=%WINDIR%\SMSCFG.ini
end
item: Execute Program
  Pathname=%INST%\CCMSETUP.exe
  Command Line=/uninstall
  Flags=00000010
end
item: Insert Line into Text File
  Pathname=%WINDIR%\system32\ccm\temp.txt
  New Text=TEMP
  Line Number=0
  Flags=00010000
end
item: Delete File
  Pathname=%WINDIR%\system32\ccm\temp.txt
  Flags=00001100
end
item: Insert Line into Text File
  Pathname=%WINDIR%\system32\ccmsetup\temp.txt
  New Text=TEMP
  Line Number=0
  Flags=00010000
end
item: Delete File
  Pathname=%WINDIR%\system32\ccmsetup\temp.txt
  Flags=00001100
end
item: Edit Registry
  Total Keys=1
  Key=SOFTWARE\Microsoft\CCMSetup
  Root=130
end
item: Edit Registry
  Total Keys=1
  Key=SOFTWARE\Microsoft\SMS
  Root=130
end
item: Execute Program
  Pathname=%INST%\CCMSETUP.exe
  Flags=00000010
end