Software Updates Synchronization Failed

From time to time the software update synchronization fails in Configuration Manager. Been looking around the web for a solution, but haven't come across anything.
 
In my particular case, these error messages appeared in wsyncmgr.log:
 
Sync failures summary:    
 
SMS_WSUS_SYNC_MANAGER    2013-10-31 11:06:04    9804 (0x264C)
Failed to sync update 359c5eeb-b7ff-447a-9986-5d6283a133f3. Error: The Microsoft Software License Terms have not been completely downloaded and cannot be accepted. Source: Microsoft.UpdateServices.Internal.BaseApi.SoapExceptionProcessor.DeserializeAndThrow    SMS_WSUS_SYNC_MANAGER    2013-10-31 11:06:04    9804 (0x264C)
Failed to sync update 5e174b97-938e-41b7-9428-b2f9978ddd2d. Error: The Microsoft Software License Terms have not been completely downloaded and cannot be accepted. Source: Microsoft.UpdateServices.Internal.BaseApi.SoapExceptionProcessor.DeserializeAndThrow    SMS_WSUS_SYNC_MANAGER    2013-10-31 11:06:04    9804 (0x264C)
Failed to sync update 87e13ecb-c669-43be-9e2a-01e567285031. Error: The Microsoft Software License Terms have not been completely downloaded and cannot be accepted. Source: Microsoft.UpdateServices.Internal.BaseApi.SoapExceptionProcessor.DeserializeAndThrow    SMS_WSUS_SYNC_MANAGER    2013-10-31 11:06:04    9804 (0x264C)
Sync failed: Failed to sync some of the updates. Source: Microsoft.SystemsManagementServer.SoftwareUpdatesManagement.WsusSyncAction.WSyncAction.SyncUpdates    SMS_WSUS_SYNC_MANAGER    2013-10-31 11:06:05    11924 (0x2E94)
STATMSG: ID=6703 SEV=E LEV=M SOURCE="SMS Server" COMP="SMS_WSUS_SYNC_MANAGER" SYS=sccm.domain.se SITE=P01 PID=4180 TID=11924 GMTDATE=to okt 31 10:06:05.267 2013 ISTR0="Microsoft.SystemsManagementServer.SoftwareUpdatesManagement.WsusSyncAction.WSyncAction.SyncUpdates" ISTR1="Failed to sync some of the updates" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=0    SMS_WSUS_SYNC_MANAGER    2013-10-31 11:06:05    11924 (0x2E94)
Sync failed. Will retry in 60 minutes    SMS_WSUS_SYNC_MANAGER    2013-10-31 11:06:05    11924 (0x2E94)

After googling "359c5eeb-b7ff-447a-9986-5d6283a133f3" I found out that the affected updates are Internet Explorer 10.
 
I also found this in the Event Viewer:
 
Content file download failed. Reason: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) Source File: /msdownload/update/v5/eula/use_terms_supp_ie10_win7_rtm_en-us.rtf-f1a39475-6df8-45fe-848f-298e9965f6e7.txt Destination File: e:\Sources\WSUS\WsusContent\C2\4DE69528CE193088F812466D6AE27184026C58C2.txt.
 
At first I thought the two were related to eachother, but I found out later that they're not. The later error message is solved by adding NETWORK SERVICE with read permissions to the WsusContent folder.
 
As we're not running Internet Explorer 10 in our company, I solved the first problem by declining those three updates in WSUS. If anyone has a solution on getting the License Terms to download, please comment this post. The updates can be found in WSUS by sorting the updates by the Status Rollup column.
 
Cheers!
 

OSDisk appears as D:

This has been driving me totally crazy for a while! Finally I found the solution, which is always simple when you know it.I've been trying to deploy the original install.wim from the Windows 7 media with SCCM 2012, and every time, OSDisk appeared as D:.First of all, you should select "Apply operating system from an original installation source" in the "Apply Operating System Image" task. You should also have the "Set Variable for Drive Letter" set to False. Both settings are found in the Install section.The last and final setting, that took me a while to find, was in the Preinstall section and the task "Format and Partition Disk 6.1". For some reason, Microsoft has left the "Do not assign a drive letter to this partition" unticked for the BitLocker BDEDrive.I hope this helps someone out there...Cheers!

Issues updating to Exchange Service Pack 2

Event ID: 1310Source: ASP.NET 2.0.50727.0Exception message: Could not load file or assembly 'Microsoft.Exchange.Security, Version=14.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. (C:Program FilesMicrosoftExchange ServerV14ClientAccessAutodiscoverweb.config line 940) C:Program FilesMicrosoftExchange ServerV14ClientAccessAutodiscoverweb.configC:Program FilesMicrosoftExchange ServerV14ClientAccessPowerShellweb.configThe transport process couldn't load poison message information from the registry. Access to the registry failed with the following error: Access to the registry key 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftExchangeServer 14TransportPoisonMessageBootProcess' is denied.Administrators: Full ControlSystem: Full ControlNetwork Service: Full Controlhttp://technet.microsoft.com/en-us/library/ff360361(v=exchg.140).aspxThe Pickup directory doesn't have permissions to write the pickup location to registry (HKEY_LOCAL_MACHINESOFTWAREMicrosoftExchangeServer 14Pickup). Please make sure Network Service has Full Control to the registry location. The error was System.UnauthorizedAccessException: Access to the registry key 'HKEY_LOCAL_MACHINESOFTWAREMicrosoftExchangeServer 14Pickup' is denied.Ran a Health Check with exbpa'ClientAccessRole' not configured'HubTransportRole' not configuredEnded up with System Center Endpoint Protection being the issue. Added %ProgramFiles%MicrosoftExchange Server in the exclusion list.

Service Manager - Subscription templates sends e-mail in wrong language

We've been looking for a solution to why the subscription template configured as English (United States) sends out e-mails in Swedish.
 
It's pretty basic actually. If the locale variable is not set in Active Directory, the locale field on the user will be empty in Service Manager. Our guess is that SCSM then will base this upon the country variable, which in my case is Sweden. And since we want all e-mail correspondence in English we need to set the locale to English (United States) for all users.
 
To do this, we are creating a management pack with a powershell script scheduled to run once per day. For more information regarding this management pack and powershell script, please see the following links:
 
Powershell Script

Import-Module smlets ; Add-PSSnapIn SMCmdletSnapIn ;

 

#Delete the existing data from the CSV Clear-Content -Path "E:SMAdminCSVUsers.csv"

 

#retrieve all users from the CMDB and cycle through them

$users = (get-scsmclass Microsoft.AD.User$ | get-scsmobject)

foreach ($user in $users)    

{        

$UserName = $user.UserName               #get the username, used to identify the person        

$Domain = $user.Domain                   #get the domain, this is required for a CSV import        

$ID = $user.ID                           #get the users guid, we will use this to create the ID for the settings object         $setPref = 'Pref.'                       #used as a prefix for the localsetting object id        

$setID = $setPref,$ID                 

$setID = [string]::join('',$setID)       #combine the users guid and Pref. to make the id for localesettings        

if ($user.City -like "Shanghai") {$timezone = 'China Standard Time'}        

elseif ($user.City -like "Dhaka") {$timezone = 'Central Asia Standard Time'}        

else {$timezone = 'W. Europe Standard Time'}        

$locale = '1033'                         #setting the locale, in this case it's English (United States)        

$data = $UserName, $Domain, $setID, $timezone, $locale  #put it all into an array        

[string]::join(',',$data) | ForEach-Object {Add-Content -Value $_ -Path "E:SMAdminCSVUsers.csv"};   #convert the array to a string and append to the csv

}

 

#once all users have been added to the csv, import it into the CMDB using the xml mapping file.   

Import-SCSMInstance -DataFileName "E:SMAdminCSVUsers.csv" -FormatFileName "E:SMAdminCSVUserImport.xml"

 

#Remove any automatically created localization settings, the script has create new ones for everybody

get-scsmclass System.UserPreference.Localization$ | get-scsmobject -filter {DisplayName -notlike "%-%"} | remove-scsmobject -force

 

Remove-PSSnapIn SMCmdLetSnapIn;

Remove-Module smlets;

 

Source: http://scservman.wordpress.com/2010/12/05/setting-locale-and-timezone-in-bulk/
 
Management Pack
http://blogs.technet.com/b/servicemanager/archive/2009/12/21/creating-an-ad-connector-using-powershell-and-csv-import.aspx

RSS 2.0