Despooler failed to merge delta to the compressed package. Error 112.

Symptoms

You make changes to a package and update your distribution points. Shortly you receive error messages in Component Status for SMS_DESPOOLER component.

image

Status message details is similar to the following:

image

Cause

The destination drive where site server is uncompressing the package is full.

Resolution

If you don’t know the drive where the package is uncompressing to, open the despool.log file from the site server system where this error occurs. In the log file look for the following lines:

Received package PackageID version 12. Compressed file –  F:\SMSPKG\PackageID.DLT.11.12 as F:\Program Files\Microsoft Configuration Manager\inboxes\despoolr.box\receive\PKG8l1ab.TRY
Old package storedUNC path is \\SiteServerFQDN\F$\SMSPKG\PackageID.PCK.
Use drive F for storing the compressed package.
No branch cache registry entries found.
Uncompressing F:\SMSPKG\PackageID.PCK to F:\SMSPKG\PackageID.PCK.temp
WriteFile failed, 0 bytes written
FileWrite failed; 0x80070070
decompression failed for F:\SMSPKG\PackageID.PCK to F:\SMSPKG\PackageID.PCK.temp
CContentBundle::ExtractContentBundle failed; 0x80070070
Failed to extract contents to the content library. 0x80070070
Failed to extract package contents from F:\PROGRAM FILES\MICROSOFT CONFIGURATION MANAGER\INBOXES\DESPOOLR.BOX\RECEIVE\PKG8L1AB.TRY. Error = 112

So, looks like we have a low disk space problem on disk F:. Clean it up to create more space and monitor Component Status again. Shortly, you should see the following:

Received package PackageID version 12. Compressed file –  F:\SMSPKG\PackageID.DLT.11.12 as F:\Program Files\Microsoft Configuration Manager\inboxes\despoolr.box\receive\PKG0auju.TRY
Waiting for ready instruction file….
Old package storedUNC path is \\SiteServerFQDN\F$\SMSPKG\PackageID.PCK.
Use drive F for storing the compressed package.
No branch cache registry entries found.
Uncompressing F:\SMSPKG\PackageID.PCK to F:\SMSPKG\PackageID.PCK.temp
Content Library: G:\SCCMContentLib
Extracting from F:\SMSPKG\PackageID.PCK.temp
Extracting package PackageID

Extracting content 1c4c0f71-e7a3-4cda-813f-dc7baff8d6a7
Extracting content 93f2ea53-fbf5-4082-98c3-a2b3887dd658
Extracting content 73a4fc00-02da-4e32-824d-957053338834
………
Extracting content 79267f60-69a5-465c-8a40-a6a8db8b1416
Extracting content 1181a482-c797-451c-9468-e2bf1bc8d68d
Package PackageID (version 11) exists in the distribution source, save the newer version (version 12).
Stored Package PackageID. Stored Package Version = 12

This time, our package uncompressed fine and it was stored successfully in the content library.

Status message details will now show this message:

image

Uncheck “Install new versions automatically” in Internet Explorer 10 during deployment

IF you during deployment you want to easily uncheck “Install new versions automatically” feature, there is a registry setting you can configure prior to actual IE setup.exe or msi, whatever you use.

clip_image002

Copy the following text to a notepad and save it as a REG file. Then use REG IMPORT “Disable_AutoUpdate.reg” before you deploy your IE and that’s all.

Windows Registry Editor Version 5.00
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main]
"EnableAutoUpgrade"=dword:00000000

For example, here’s our script to deploy IE and disable auto update:

: - - - - - - Uncheck "Install new versions automatically" - - - - - - -
REG IMPORT "Disable_AutoUpdate.reg"
: - - - - - - Install Application - - - - - - -
MSIExec /i "IE10-Setup-Full.msi" /qn /norestart /l*v C:\Windows\Temp\Microsoft_IE10_x64_ENG_R1_Install.log
EXIT

Uninstall software on remote computers using WMIC

Recently, I wanted to install Nokia Ovi Suite to several computers in a company that started to have problems with their internet provider; it’s a third day when they do not have internet connection. So I thought it’s a good idea to show them how they can use their Nokia E72 phones to connect their laptops to internet.

Well, prior to installing Nokia Ovi Suite I had to uninstall old versions of Nokia PC Suite from 4 systems, remotely. I decided to do it using WMIC instead of ConfigMgr as the Nokia PC Suite was installed on small number of computers. After this, I can proceed with installing Ovi Suite using ConfigMgr. Till then, here is how I uninstalled PC Suite using WMIC.

  1. In a command prompt window, type Runas /user:YourUsername@UPNsuffix cmd.exe (or Runas /user:domain\username cmd.exe) where YourUsername is your domain admin username or any username with admin privileges on the remote computer and UPNsuffix is your UPN suffix. Let’s suppose I use [email protected]
  2. In the command prompt window type the password for user [email protected] and press Enter
  3. Type WMIC
  4. Now, list all Nokia software on a specific computer using the command /node:COMPUTERNAME product where vendor=”Nokia” get name, version
  5. Once we know the software name, we can uninstall specific product using the following command /node:COMPUTERNAME product where name=”Nokia PC Suite” call uninstall. You will see a message like Execute (\\COMPUTERNAME\ROOT\CIMV2:Win32_Product.IdentifyingNumber=”{225DB4AA-3CFF-47E8-B3C8-6DAD713E986E}”,Name=”Nokia PC Suite”,Version=”7.1.51.0″)->Uninstall() (Y/N/?)?
    Type Y and wait for the result.
  6. To make sure Ovi Suite will install successful, I’m going to uninstall all Nokia software (except the runtime) using the same command just replacing the software name.
  7. Now, I can proceed and install Nokia Ovi Suite 3.1.1.78 using ConfigMgr Software Distribution method. By the way, program’s command line for silent install is Nokia_Ovi_Suite_webinstaller_ALL.exe /SILENT=”1″

If vendor name contains spaces, use the following example: wmic product where vendor=”Microsoft Corporation” get name

Uninstall KB 2823324 using ConfigMgr

  1. Create a CMD file with the following content
    @echo off

    :: - - - - - Check if KB is installed - - - - - - - -

    systeminfo | findstr 2823324

    :: - - - - - If not installed (1), exit - - - - - - -

    IF %errorlevel% EQU 1 GOTO NOTFOUND

    GOTO FOUND

    :NOTFOUND

    Echo %date% - %time% KB 2823324 was not found. Exit. >> C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324.log

    GOTO EXIT

    :: - - - - - If installed (0), uninstall - - - - - - -

    :FOUND

    Echo %date% - %time% KB 2823324 was found. Attempt uninstall. >> C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324.log

    wusa.exe /uninstall /kb:2823324 /quiet /norestart /log:C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324_WUSA.log

    Echo %date% - %time% KB 2823324 uninstall complete. Restart might be needed for operation to complete successfully. >> C:\Windows\Temp\Microsoft_Uninstall_Patch_KB2823324.log

    :EXIT

  2. Deploy this CMD file by creating a new package and program. Keep in mind that a restart is required to fully uninstall this patch.

Find computer name for a remote computer using PSExec

Let’s say you know the IP address of a computer but you don’t know the hostname. Seems to be an easy task with ping –a, if you have a working DNS Smile

If not, you can try the following approach:

  1. Create a cmd file on client’s computer. Say in \\IP\C$\Windows\Temp\FindHostname.cmd
  2. Edit FindHostname.cmd. Type in: echo %computername% >> C:\Windows\Temp\Hostname.log
  3. Run PSExec: C:\PSTools\PsExec.exe \\IP C:\Windows\Temp\FindHostname.cmd
  4. Look into \\IP\C$\Windows\Temp\Hostname.log, you will have the computer’s name.

Collection with Windows 7 computers without SP1

First, if you want your query to display the right information, you must have a collection with all Windows 7 computers, regardless of the service pack version installed.

Here is the simplest query to create “All Windows 7 computers” collection (please make this collection “Not collection limited”):

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like “%Windows 7%”

And here is the query to create “Windows 7 computers without SP1”, you must limit this collection to “All Windows 7 computers” collection created earlier:

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.Name not in (select distinct SMS_G_System_COMPUTER_SYSTEM.Name from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like “%Windows 7%” and SMS_G_System_OPERATING_SYSTEM.CSDVersion = “Service Pack 1”)

Computers without Java 6 Update 30

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier, SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.Version < “6.0.300” and SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like “Java(TM) 6%”