Troubleshooting SQL 2005 SP4 and other Windows Update installation errors
This article uses a specific MS SQL 2005 Service Pack 4 installation error as an example, but may help in troubleshooting other Microsoft and Windows Update problems.
Installation of SQL server 2005 Service Pack 4 fails and Event ID 20 Error is recorded in Windows System Logs:
Type: Error
Event ID: 20
Description:
Installation Failure: Windows failed to install the following update with error 0x80070643: Microsoft SQL Server 2005 Service Pack 4 (KB2463332).
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
This error is not specific to SQL 2005 SP4 and is just a generic code telling that an error was encountered by Windows Installer.
To get more specific code download offline Service Pack or Hotfix installation file from Microsoft. Just search MS download centre for KBxxxxxxx as displayed in Event ID 20 error. In case of SQL 2005 SP4 it is KB2463332.
Try installing your update running downloaded .exe or .msi. It will probably fail again, but this time you should be able to find more specific info in Windows Application Logs.
In case of SQL 2005 SP4 it can be something like this:
Type: Error
Event ID: 1023
Description:
Product: Microsoft SQL Server 2005 - Update 'Service Pack 4 for SQL Server Database Services 2005 ENU (KB2463332)' could not be installed. Error code 1603. Additional information is available in the log file C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\SQL9_Hotfix_KB2463332_sqlrun_sql.msp.log.
Again, this is quite generic error, however this times it gives a path to a setup log file which will have much more information. Open the file in a text editor. Don't get puzzled by the amount of information. Just search for "return value 3" and examine text just above this string. One of the lines should have a specific error which caused setup to fail. Going back to our SQL example third line above "return value 3" is:
FTECa.DLL: ERROR: FTE: InstallFTERef: Fail to create FTERef file: C:\SQL\MSSQL.1\MSSQL\FTData\noiseCHS.txt, Err=3
In this case installation failed because path C:\SQL\MSSQL.1\MSSQL\FTData did not exist. Simply recreating missing folder fixes the problem. Obviously in your case error may be different.
Windows Server 2003
SQL 2005
ntbackup logs missing
Normally when you run ntbackup logged on as "Administrator" backup logs are saved in "C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data"
If backup logs are not in the expected location check following:
If you run ntbackup from the command line or a script make sure you include log option: /l:s (summary log) or /l:f (full log).
If you run ntbackup as a scheduled task, check "Run As" option in scheduled task properties. For example if you run the scheduled task as "backup-operator" your ntbackup logs will be saved in "C:\Documents and Settings\backup-operator\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data".
Windows Server 2003
List all files on the server
Sometimes it could be useful to have a text file listing all files on your server or in a particular directory. If content is relatively static this can be used to perform a
quick file searches based on file names. Similar search using Windows search toll could take hours, whereas search inside a large text file is pretty much instant.
You can use robocopy utility to create this list:
1. Download and extract robocopy.exe. If you use Windows 7 - robocopy is already on your system.
2. Run robocopy.exe in command prompt (CMD) with following command:
robocopy.exe "\\path\to\your\folder" "TMP" /E /CREATE /TEE /LOG:FileList.txt
Basically this command will "copy" all files in "\\path\to\your\folder" and all subfolders to the folder "TMP", however instead of copying actual files it will only create a folder structure and zero lenght files. Additionally, it will create a log file "FileList.txt" listing all "copied" files and directories.
3. Delete "TMP" directory.
If you having problem deleting "TMP" due to long file/path names, delete it in command prompt:
rmdir "\\path\to\your\folder\TMP" /Q /S
Outlook 2010 exchange proxy settings automatically changes to incorrect details
Exchange 2007 Autodiscover Service can automatically change Outlook 2010 "Exchange Proxy Settings" to incorrect parameters if Exchange Outlook Anywhere is not configured correctly.
Even if you manually set correct details after restarting the Outlook changes get reverted back.
This only affects computer in the domain.
You have 3 options to fix this:
-
Force settings via group policy
Read this article for detailed instructions.
-
Disable Autodiscover on Exchange server
- In Exchange Management Shell (EMS) run: Get-outlookprovider -identity EXPR | remove-outlookprovider
- On Exchange Client Access Server - IIS Manager > Application Pools > MSExchangeAutodiscoveryAppPool > Actions > Recycle
To restore Autodiscover functionality:
- In Exchange Management Shell (EMS) run: New-OutlookProvider -Name:EXPR
You may need to reconfigure Autodiscovery as per instructions below.
-
Configure Autodiscover to push correct settings to all clients
- Exchange Management Console (EMC) > Server Configuration > Client Access > [servername] > Properties > Outlook Anywhere - Enter correct external exchange host name. E.g. mail.mydomain.com and select appropriate "Client authentication method". E.g. "Basic authentication".
This will populate "Use This URL to connect to my proxy server for Exchange" and "Use this authentication when connecting..." in MS Outlook
You can also check this information using Exchange Management Shell (EMS)
Get-OutlookAnywhere -Server [servername] |fl - Outlook Anywhere will also automatically populate "Only connect to proxy servers that have this principal name in their certificate" in MS Outlook. By default Outlook uses external exchange host parameter (configured in step 1). E.g. msstd:mail.mydomain.com
If this matches the principal name in your certificate you can leave it as it is. Otherwise you need to change it using EMS.
Run: Get-OutlookProvider -Identity EXPR | fl
Check values:
CertPrincipalName
Server
If CertPrincipalName is set, it will populate "Only connect to proxy servers that have this principal name in their certificate" field in Outlook and override the default value. To set it run:
set-OutlookProvider -id EXPR -Server "[servername]" -CertPrincipalName "msstd:server.domain.com"
Make sure server.domain.com matches principal name in your certificate.
Also run following to reset Server value (it should be empty)
set-OutlookProvider -id EXPR -server $null
Double check your settings:
Get-OutlookProvider -Identity EXPR | fl
MS Exchange 2007
MS Outlook 2010
Windows Server 2003 domain
- Export private key and certificate from IIS .pfx file
- Restore Exchange 2007 mailbox to a test lab server (ntbackup)
- Useful Exchange 2007 and 2010 Management Shell commands
- Message Size Limits in Exchange 2007
- Disconnect or block user
- Send Email from a .bat script
- MS Exchange Server 2007 - Export Message Tracking Results
- Renewing MS Exchange 2007 self-signed certificate
- Outlook 2007 and 2010 warning "The name of the security certificate is invalid or does not match the name of the site"
- Check Installed Programs Remotely (vbscript)