In this article I will outline how to migrate WSUS 3.0 to a new server using a local SQL Express instance and without downloading all of the updates again.
1. Install WSUS on new server with local express database.
2. During configuration wizard choose "Synchronize from another WSUS server…", enter the name of the existing WSUS instance you are migrating from, and then choose the replica option.
3. Complete the configuration wizard (some options will be skipped due to being a replica server)
4. Wait for initial synchronisation to complete. This will synchronise update files, approvals, and computer groups, but not other server settings. This step saves you having to download your approved updates from the internet again.
5. Change the new server from a replica to standalone.
6. Download the WSUS API Samples and Tools from Microsoft and install it on each of the servers.
7. On the old server open a command prompt and navigate to the C:Program FilesUpdate Services 3.0 API Samples and ToolsWsusMigrateWsusMigrationExport folder.
8. Run "wsusmigrationexport.exe settings.xml" to export the settings. This will backup your approvals and target groups to an XML file.
9. Copy the XML file to the new server.
10. On the new server open a command prompt and navigate to C:Program FilesUpdate Services 3.0 API Samples and ToolsWsusMigrateWsusMigrationImport folder. Run "wsusmigrationimport.exe settings.xml All None".
11. Configure your server settings (products and classifications, auto-approvals, email alerts, etc) on the new server to match the old server.
12. Update your GPOs to direct clients to the new WSUS server. If you are using GPOs to assign computers to Computer Groups in WSUS then no further action is required. If you are manually assigning computers to Computer Groups in WSUS then all clients will initially end up in Unassigned Computers when they report in to the new WSUS server and need to be manually assigned to their correct group.
Hi ;
Please lead me how transfer the downloaded updates to the new WSUS server ?
I’ve done the mentioned instructions successfully and now I want to avoid re-download the formerly update files and use them on the new one.I want to turn off the former WSUS server.
Tnx.
Should we need to database backup and restore?
Hi Paul,
I am in process to migrate to a new wsus,can we make a replica wsus and then we stop the synchronization ,shut down the old wsus,and rename the new wsus to be identical name and ip address and ports of the old one so all client can connect without doing any changes on the policies or firewalls??
Hi Paul,
I am getting stuck at import. I have tried different administrators to load CMD. I have tried specifying the location of the settings.xml and changing the path of the xml to C:Temp
I still get the System.IO.FileNotFoundException.
I am migrating from XP to Server 2012 R2. and I did download the latest migration tool…
Any thoughts?
oh. and it’s cross-forest because we are in the middle of a migration.
Hi,
I am getting the following error after step 3.
“no connection could be made because the target machine actively refused it”
Do I need to configure something on my old WSUS server?
My bad. Default 8530 was not the correct port.
I have WSUS server in my Company and work fine update every sunday but the problem is Anti virus . We have system center endpoint protection ( software ) installed in all Servers and clients . Do you have way to update just only Antivirus everyday and window update every Sunday.
Thank you Paul this was sooo helpful!
Also like wise to Dale for highlighting the 2012 solution located below!
For people having issues with win2012 and assembly version errors – check this guy’s post:
http://www.damianflynn.com/2012/08/25/upgrade-to-wsus-2012.
Unbelievable that Microsoft do not distribute a working tool such that their current server products can be used easily!
Thanks again!
Hi–I need something similar to this, but with an important twist. We have two identically set up 2008R2 servers running WSUS (in VMs), but the two servers cannot connect to each other. One is online and gets updates from MS–the other is on an isolated network which cannot connect to any external network. The issue is to take updates from the online WSUS and “carry” them to the offline instance and have the offline system be able to update all the computers on the private network to current patch level. This would be done once per quarter. Taking the entire WSUS database content each time would be awkward, since we have to use throw-away media (e.g. DVD/BluRay) to do the physical move. So the need is to be able to somehow export just the incremental updates from the online WSUS and carry a managable sized chunk over to the offline WSUS. Sort of a really delayed Sync.
Can anyone suggest a method which would work for this situation? Or maybe I need to be posting this to a different thread. Thanks for any help or pointers.
I tried this fix recently after going through Microsoft’s website and got nowhere. These instructions were clear, easy to use, and I was able to migrate from 2003 x64 to 2008 R2 x64 successfully.
Thank you!
Hello,
Where does the XML goes or installed fter running the following below?
On the new server open a command prompt and navigate to C:Program FilesUpdate Services 3.0 API Samples and ToolsWsusMigrateWsusMigrationImport folder. Run “wsusmigrationimport.exe settings.xml All None”.
Once exported, the “settings.xml” file needs to be put into the “WsusMigrationImport” folder in the new server environment (C:Program FilesUpdate Services 3.0 API Samples and ToolsWsusMigrateWsusMigrationImport). Make sure you wait until the export is complete before you move it (I was impatient when I first started).
When it’s finished, open the command prompt in your new server environment.
Navigate to this path:
C:Program FilesUpdate Services 3.0 API Samples and ToolsWsusMigrateWsusMigrationImport folder.
Then run the command “wsusmigrationimport.exe settings.xml All None”.
On my computer, the files were stored in C:Program Files (x86) instead of C:Program Files.
Good luck!
Thank you
Clear instructions (Thank you )Question? what happens if I want to point to mine existing SQL database? would I follow the same instructions?
I did my best to look through all the comments to see if my question was answered before and didn’t see it.
I successfully installed and migrated all SUS content/ settings from a Windows 2K3 to 2K8 Standard. I then changed to stand-alone and ran a sync with MU. All works like a charm. To test before I just change the Domain GPO I took one computer and locally changed the GPO to point to the new WSUS server. I cannot get it to connect. I have allowed inbound traffic on the server port 8530, verified that the reg settings are pointing to the correct server. Ran the command ‘wuauclt.exe /resetauthorization /detectnow’ from the client side. But when I check for updates it fails with the error code 80072EE2on the client. Server side I get the error in Event Viewer: Source: Windows Server Update Services Event ID: 13051 No client computers have ever contacted the server
Adding to this challenge; I find this morning my current WSUS server synced 6 new updates from MU last night at the scheduled time. The new WSUS server says it ran a successful sync (it has the same schedule, Products and Classsifications) but did not get any new updates. I did get an email report from the new server but still no contact with the client. Any suggesations?
I believe this occured because the new server synced with MU after syncing with the old server and before the old server synced with MU.
Looks like I solved this by checking for updates from Microsoft Updates on my WSUS server. It needed a BITS update, a WSUS update, and a couple of .NET framework updates. Once I got them installed the clients started reporting. I did have a couple of the test clients fail the check for updates. I needed to have them check in with MU first then they were able to check the new WSUS.
When you have to do a transfer between 2003 WSUS to 2012 R2 WSUS, simply make 2012 R2 a replica with internal database. Then change group policies to point to the new server. Wait until it all applies and that is it.
Instead of changing all of our GPO’s from wsus.domain.com to wsus2.domain.com can I just alter a cname DNS record so wsus points to wsus2 ?
On the new wsus2 server, I already requested and installed an ssl certificate with the SAN names wsus, wsus.domain.com, wsus2, wsus2.domain.com and tested in IE that there are no certificate errors (and even modified my hosts file and hit it with the original servers hostname).
After migration, I was originally going to rename the new WSUS2 server to WSUS (after renaming the old one of course since you can’t have a duplicate name in AD or the network), but I read a lot of people had issues with IIS and/or the database when renaming a WSUS server.
Thing is for public ally accessible kiosk machines that we have or DMZ servers, they are not on the domain (for security purposes), so we have to remote on and alter their local policy one by one to point to the wsus address, so I’d rather not have to alter the name in the GPO’s / local policies.
The Real Person!
The Real Person!
Yes you can change the GPO. You can also use an alias instead of pointing it to a real server’s name. That would make it easier in future to migrate between servers.
For people having issues with win2012 and assembly version errors – check this guy’s post: http://www.damianflynn.com/2012/08/25/upgrade-to-wsus-2012/
It was briefly mentioned in a comment above, but not all that clearly.
Does this procedure valid for migrating from server 2003 to server 2012 R2 ?
Also I tried this procedure and when I try to Import the settings it gives me the following error message
C:Program Files (x86)Update Services 3.0 API Samples and ToolsWsusMigrateWsu
sMigrationImport>WsusMigrationImport.exe settings.xml All None
WsusMigration failed with the below exception!
System.IO.FileNotFoundException: Could not load file or assembly ‘Microsoft.Upda
teServices.Administration, Version=3.0.6000.273, Culture=neutral, PublicKeyToken
=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file s
pecified.
File name: ‘Microsoft.UpdateServices.Administration, Version=3.0.6000.273, Cultu
re=neutral, PublicKeyToken=31bf3856ad364e35’
at Microsoft.WsusMigrationTools.ImportServerStatus.ImportData(XmlTextReader r
eader)
at Microsoft.WsusMigrationTools.WsusMigrationTool.Main(String[] args)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLMSoftwareM
icrosoftFusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure lo
gging.
To turn this feature off, remove the registry value [HKLMSoftwareMicrosoftFus
ion!EnableLog].
I’ve placed the settings file on the same folder, but it still doesn’t work.
I was wondering if it is applicable on server 2012 R2 and how to fix it ?
Pingback: personal injury attorney new york
Pingback: off cancer-causing
Using damian.flynn dot net 45 version I migrated to 2012 R2.
Great man, thanks for the article!
Pingback: satellite internet
error I am getting when trying to change the NEW wsus server to a standalone from replica (as in step 5)… I am using WIndows Internal database, not sql
The WSUS administration console was unable to connect to the WSUS Server Database.
Verify that SQL server is running on the WSUS Server. If the problem persists, try restarting SQL.
System.Data.SqlClient.SqlException — Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32).
Info:spSetConfiguration – SyncToMU or UpstreamServerName config value changed – no reset
Source
.Net SqlClient Data Provider
Stack Trace:
at Microsoft.UpdateServices.UI.AdminApiAccess.UpdateServerConfigurationManager.SaveServerConfiguration(IUpdateServerConfiguration configuration)
at Microsoft.UpdateServices.UI.SnapIn.Dialogs.UssConnectionSettingsDialog.SaveAllSettings()
at Microsoft.UpdateServices.UI.SnapIn.Dialogs.BaseSettingsDialog.ApplyDialogButton_Click(Object sender, EventArgs e)
When trying to change the server to Standalone (from replica in step 5) I keep getting a database error in the WSUS console, and it wont let me change it to standalone. I am using WIndows Internal Database…..
Hi,
We have 02 standalone WSUS server one at San Francisco and other at Crawley . The configuration of both the servers are different mainly “computer groups” . I have an assignment to configure the crawley WSUS server as downstream & SFO WSUS as upstream server . My main concern is about the groups & computers that are existing in crawley server . Once i will configure crawley server as replica server , then all the setting of upstream will be copied to downstream server and overwrite the configuration of crawley .
Please suggest the steps to perform this configuration successfully .
Reply will be really appreciable ………….
Hi All,
The issue with export / import is caused for 2 reasons.
1) Several .Net 2.0 dll GAC files not present from where you are running the WsusMigrationImport or the WsusMigrationExport
a. Microsoft.UpdateServices.Administration.dll
b. Microsoft.UpdateServices.Common.dll
2) You need to get the latest version of WsusMigrationImport & WsusMigrationExport of which you can get from http://www.microsoft.com/en-gb/download/details.aspx?id=1172 and replace the old files with the new ones.
To obtain the files (a & b above) do as follows – On your old 2003 server you need to do as follows to create the two files as described above….
Open a command prompt… and follows as I did (this is a copy and paste from my cmd prompt, yours may differ slightly).
See if you can follow what I did to fix this.
C:\>cd WINDOWS
C:WINDOWS>cd assembly
C:WINDOWSassembly>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassembly
16/01/2012 20:23 GAC
17/11/2009 03:06 GAC_32
18/08/2011 13:25 GAC_MSIL
16/07/2012 21:42 NativeImages1_v1.1.4322
17/11/2009 03:21 NativeImages_v2.0.50727_32
16/07/2012 21:42 temp
16/07/2012 21:42 tmp
0 File(s) 0 bytes
7 Dir(s) 11,274,915,840 bytes free
C:WINDOWSassembly>cd GAC
C:WINDOWSassemblyGAC>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGAC
16/01/2012 20:23 .
16/01/2012 20:23 ..
18/01/2008 14:16 Accessibility
18/01/2008 14:16 cscompmgd
18/01/2008 14:16 CustomMarshalers
23/01/2008 09:42 IEExecRemote
23/01/2008 09:42 IEHost
18/01/2008 14:16 IIEHost
18/01/2008 14:16 ISymWrapper
23/01/2008 09:51 Microsoft.Interop.Security.AzRoles
23/01/2008 09:42 Microsoft.JScript
18/08/2011 13:25 Microsoft.UpdateServices.Administration
18/08/2011 13:25 Microsoft.UpdateServices.Common
18/08/2011 13:25 Microsoft.UpdateServices.StringResources
18/08/2011 13:25 Microsoft.UpdateServices.StringResources.res
ources
23/01/2008 09:42 Microsoft.VisualBasic
18/01/2008 14:16 Microsoft.VisualBasic.Vsa
18/01/2008 14:16 Microsoft.VisualC
18/01/2008 14:16 Microsoft.Vsa
18/01/2008 14:16 Microsoft.Vsa.Vb.CodeDOMProcessor
18/01/2008 14:16 Microsoft_VsaVb
18/01/2008 14:16 mscorcfg
23/01/2008 09:42 Regcode
16/07/2012 21:42 System
18/01/2008 14:16 System.Configuration.Install
23/01/2008 09:42 System.Data
23/01/2008 09:42 System.Data.OracleClient
23/01/2008 09:42 System.Design
23/01/2008 09:42 System.DirectoryServices
22/05/2012 00:27 System.Drawing
18/01/2008 14:16 System.Drawing.Design
23/01/2008 09:42 System.EnterpriseServices
23/01/2008 09:42 System.Management
23/01/2008 09:42 System.Messaging
23/01/2008 09:42 System.Runtime.Remoting
23/01/2008 09:42 System.Runtime.Serialization.Formatters.Soap
20/07/2010 01:15 System.Security
23/01/2008 09:42 System.ServiceProcess
16/01/2012 20:23 System.Web
23/01/2008 09:42 System.Web.Mobile
23/01/2008 09:42 System.Web.RegularExpressions
23/01/2008 09:42 System.Web.Services
16/07/2012 21:42 System.Windows.Forms
23/01/2008 09:42 System.Xml
0 File(s) 0 bytes
44 Dir(s) 11,273,846,784 bytes free
C:WINDOWSassemblyGAC>cd Microsoft.UpdateServices.Administration
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:25 2.0.0.0__31bf3856ad364e35
0 File(s) 0 bytes
3 Dir(s) 11,274,649,600 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>cd 2.0.0.0__31bf3856ad364e35
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf385
6ad364e35>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.
0.0.0__31bf3856ad364e35
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:21 71,584 Microsoft.UpdateServices.Administration.dll
18/08/2011 13:25 227 __AssemblyInfo__.ini
2 File(s) 71,811 bytes
2 Dir(s) 11,274,649,600 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf3856ad364e35>copy Microsoft.UpdateServices.Administration.dll c:
1 file(s) copied.
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf385
6ad364e35>cd ..
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>cd ..
C:WINDOWSassemblyGAC>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGAC
16/01/2012 20:23 .
16/01/2012 20:23 ..
18/01/2008 14:16 Accessibility
18/01/2008 14:16 cscompmgd
18/01/2008 14:16 CustomMarshalers
23/01/2008 09:42 IEExecRemote
23/01/2008 09:42 IEHost
18/01/2008 14:16 IIEHost
18/01/2008 14:16 ISymWrapper
23/01/2008 09:51 Microsoft.Interop.Security.AzRoles
23/01/2008 09:42 Microsoft.JScript
18/08/2011 13:25 Microsoft.UpdateServices.Administration
18/08/2011 13:25 Microsoft.UpdateServices.Common
18/08/2011 13:25 Microsoft.UpdateServices.StringResources
18/08/2011 13:25 Microsoft.UpdateServices.StringResources.res
ources
23/01/2008 09:42 Microsoft.VisualBasic
18/01/2008 14:16 Microsoft.VisualBasic.Vsa
18/01/2008 14:16 Microsoft.VisualC
18/01/2008 14:16 Microsoft.Vsa
18/01/2008 14:16 Microsoft.Vsa.Vb.CodeDOMProcessor
18/01/2008 14:16 Microsoft_VsaVb
18/01/2008 14:16 mscorcfg
23/01/2008 09:42 Regcode
16/07/2012 21:42 System
18/01/2008 14:16 System.Configuration.Install
23/01/2008 09:42 System.Data
23/01/2008 09:42 System.Data.OracleClient
23/01/2008 09:42 System.Design
23/01/2008 09:42 System.DirectoryServices
22/05/2012 00:27 System.Drawing
18/01/2008 14:16 System.Drawing.Design
23/01/2008 09:42 System.EnterpriseServices
23/01/2008 09:42 System.Management
23/01/2008 09:42 System.Messaging
23/01/2008 09:42 System.Runtime.Remoting
23/01/2008 09:42 System.Runtime.Serialization.Formatters.Soap
20/07/2010 01:15 System.Security
23/01/2008 09:42 System.ServiceProcess
16/01/2012 20:23 System.Web
23/01/2008 09:42 System.Web.Mobile
23/01/2008 09:42 System.Web.RegularExpressions
23/01/2008 09:42 System.Web.Services
16/07/2012 21:42 System.Windows.Forms
23/01/2008 09:42 System.Xml
0 File(s) 0 bytes
44 Dir(s) 11,274,399,744 bytes free
C:WINDOWSassemblyGAC>cd Microsoft.UpdateServices.Common
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:25 2.0.0.0__31bf3856ad364e35
0 File(s) 0 bytes
3 Dir(s) 11,274,391,552 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common>cd 2.0.0.0__31bf3856ad364e35
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common2.0.0.0__31bf3856ad364e3
5>copy Microsoft.UpdateServices.Common.dll c:
1 file(s) copied.
Open the root of you C: you will see the 2 files you just exported.
1) Microsoft.UpdateServices.Administration.dll
2) Microsoft.UpdateServices.Common.dll
Copy them to the location you are running WsusMigrationImport or WsusMigrationExport from then try the import/export again…once you have obtained the new migrations tools from point 1.
Hi All,
This issue with export / import is caused for 2 reasons.
1) Several .Net 2.0 dll GAC files not present from where you are running the WsusMigrationImport or the WsusMigrationExport
a. Microsoft.UpdateServices.Administration.dll
b. Microsoft.UpdateServices.Common.dll
2) You need to get the latest version of WsusMigrationImport & WsusMigrationExport of which you can get from http://www.microsoft.com/en-gb/download/details.aspx?id=1172 and replace the old files with the new ones.
To obtain the files (a & b above) do as follows – On your old 2003 server you need to do as follows to create the two files as described above….
Open a command prompt… and follows as I did (this is a copy and paste from my cmd prompt, yours may differ slightly).
Follow what I did in bold
C:\>cd WINDOWS
C:WINDOWS>cd assembly
C:WINDOWSassembly>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassembly
16/01/2012 20:23 GAC
17/11/2009 03:06 GAC_32
18/08/2011 13:25 GAC_MSIL
16/07/2012 21:42 NativeImages1_v1.1.4322
17/11/2009 03:21 NativeImages_v2.0.50727_32
16/07/2012 21:42 temp
16/07/2012 21:42 tmp
0 File(s) 0 bytes
7 Dir(s) 11,274,915,840 bytes free
C:WINDOWSassembly>cd GAC
C:WINDOWSassemblyGAC>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGAC
16/01/2012 20:23 .
16/01/2012 20:23 ..
18/01/2008 14:16 Accessibility
18/01/2008 14:16 cscompmgd
18/01/2008 14:16 CustomMarshalers
23/01/2008 09:42 IEExecRemote
23/01/2008 09:42 IEHost
18/01/2008 14:16 IIEHost
18/01/2008 14:16 ISymWrapper
23/01/2008 09:51 Microsoft.Interop.Security.AzRoles
23/01/2008 09:42 Microsoft.JScript
18/08/2011 13:25 Microsoft.UpdateServices.Administration
18/08/2011 13:25 Microsoft.UpdateServices.Common
18/08/2011 13:25 Microsoft.UpdateServices.StringResources
18/08/2011 13:25 Microsoft.UpdateServices.StringResources.res
ources
23/01/2008 09:42 Microsoft.VisualBasic
18/01/2008 14:16 Microsoft.VisualBasic.Vsa
18/01/2008 14:16 Microsoft.VisualC
18/01/2008 14:16 Microsoft.Vsa
18/01/2008 14:16 Microsoft.Vsa.Vb.CodeDOMProcessor
18/01/2008 14:16 Microsoft_VsaVb
18/01/2008 14:16 mscorcfg
23/01/2008 09:42 Regcode
16/07/2012 21:42 System
18/01/2008 14:16 System.Configuration.Install
23/01/2008 09:42 System.Data
23/01/2008 09:42 System.Data.OracleClient
23/01/2008 09:42 System.Design
23/01/2008 09:42 System.DirectoryServices
22/05/2012 00:27 System.Drawing
18/01/2008 14:16 System.Drawing.Design
23/01/2008 09:42 System.EnterpriseServices
23/01/2008 09:42 System.Management
23/01/2008 09:42 System.Messaging
23/01/2008 09:42 System.Runtime.Remoting
23/01/2008 09:42 System.Runtime.Serialization.Formatters.Soap
20/07/2010 01:15 System.Security
23/01/2008 09:42 System.ServiceProcess
16/01/2012 20:23 System.Web
23/01/2008 09:42 System.Web.Mobile
23/01/2008 09:42 System.Web.RegularExpressions
23/01/2008 09:42 System.Web.Services
16/07/2012 21:42 System.Windows.Forms
23/01/2008 09:42 System.Xml
0 File(s) 0 bytes
44 Dir(s) 11,273,846,784 bytes free
C:WINDOWSassemblyGAC>cd Microsoft.UpdateServices.Administration
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:25 2.0.0.0__31bf3856ad364e35
0 File(s) 0 bytes
3 Dir(s) 11,274,649,600 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>cd 2.0.0.0__31bf3856ad364e35
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf385
6ad364e35>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.
0.0.0__31bf3856ad364e35
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:21 71,584 Microsoft.UpdateServices.Administration.dll
18/08/2011 13:25 227 __AssemblyInfo__.ini
2 File(s) 71,811 bytes
2 Dir(s) 11,274,649,600 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf3856ad364e35>copy Microsoft.UpdateServices.Administration.dll c:
1 file(s) copied.
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf385
6ad364e35>cd ..
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>cd ..
C:WINDOWSassemblyGAC>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGAC
16/01/2012 20:23 .
16/01/2012 20:23 ..
18/01/2008 14:16 Accessibility
18/01/2008 14:16 cscompmgd
18/01/2008 14:16 CustomMarshalers
23/01/2008 09:42 IEExecRemote
23/01/2008 09:42 IEHost
18/01/2008 14:16 IIEHost
18/01/2008 14:16 ISymWrapper
23/01/2008 09:51 Microsoft.Interop.Security.AzRoles
23/01/2008 09:42 Microsoft.JScript
18/08/2011 13:25 Microsoft.UpdateServices.Administration
18/08/2011 13:25 Microsoft.UpdateServices.Common
18/08/2011 13:25 Microsoft.UpdateServices.StringResources
18/08/2011 13:25 Microsoft.UpdateServices.StringResources.res
ources
23/01/2008 09:42 Microsoft.VisualBasic
18/01/2008 14:16 Microsoft.VisualBasic.Vsa
18/01/2008 14:16 Microsoft.VisualC
18/01/2008 14:16 Microsoft.Vsa
18/01/2008 14:16 Microsoft.Vsa.Vb.CodeDOMProcessor
18/01/2008 14:16 Microsoft_VsaVb
18/01/2008 14:16 mscorcfg
23/01/2008 09:42 Regcode
16/07/2012 21:42 System
18/01/2008 14:16 System.Configuration.Install
23/01/2008 09:42 System.Data
23/01/2008 09:42 System.Data.OracleClient
23/01/2008 09:42 System.Design
23/01/2008 09:42 System.DirectoryServices
22/05/2012 00:27 System.Drawing
18/01/2008 14:16 System.Drawing.Design
23/01/2008 09:42 System.EnterpriseServices
23/01/2008 09:42 System.Management
23/01/2008 09:42 System.Messaging
23/01/2008 09:42 System.Runtime.Remoting
23/01/2008 09:42 System.Runtime.Serialization.Formatters.Soap
20/07/2010 01:15 System.Security
23/01/2008 09:42 System.ServiceProcess
16/01/2012 20:23 System.Web
23/01/2008 09:42 System.Web.Mobile
23/01/2008 09:42 System.Web.RegularExpressions
23/01/2008 09:42 System.Web.Services
16/07/2012 21:42 System.Windows.Forms
23/01/2008 09:42 System.Xml
0 File(s) 0 bytes
44 Dir(s) 11,274,399,744 bytes free
C:WINDOWSassemblyGAC>cd Microsoft.UpdateServices.Common
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:25 2.0.0.0__31bf3856ad364e35
0 File(s) 0 bytes
3 Dir(s) 11,274,391,552 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common>cd 2.0.0.0__31bf3856ad364e35
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common2.0.0.0__31bf3856ad364e3
5>copy Microsoft.UpdateServices.Common.dll c:
1 file(s) copied.
Open the root of you C: you will see the 2 files you just exported.
1) Microsoft.UpdateServices.Administration.dll
2) Microsoft.UpdateServices.Common.dll
Copy them to the location you are running WsusMigrationImport or WsusMigrationExport from then try the import/export again…once you have obtained the new migrations tools from point 1.
You definitely have to reassign them again.
Hi. Thank you for the very clear guideline. I went through the whole migration without issues but I have a question regarding approved updates. After I was done, the WSUS is requesting to re-approve thousands of updates. Is it safe to re-approve them? Here’s a link to what I see. Thanks in advance.
http://i.imgur.com/Lc6fR.jpg
Actually. I figured out that this was not my problem. The WSUS installation did not created the IIS website WSUS Administration thus nothing can reach the server. Have any body experienced this issue? Thanks!
Once again. I got this part resolved but now I found that all of the computers are in the unassigned section of computers. None of the computers got into their respective OU. Shouldn’t the migration part had taken care of this? Do I need to reassign all computers manually? I imagine that there is an automatic way to accomplish this. Thanks for the help.
Great Help, I will try this and update.
Thanks a Ton.
Hi Paul
Please help me , after wsus migration from 2003 to 2008 R2 SP1 .I get This error on cliet side when I want to update them : Code 800B0001
I just went through your instructions . and installed “Microsoft Report view 2008 Redistributable”
for getting report from clients on WSUS
Please help
Brilliant article mate, really appreciate the time taken for you to post this
Hi Paul,
I have been tasked in upgrading 10 WSUS servers running Windows 2003 R2 to
Windows 2008 R2. I don’t have much experience with WSUS as I have used
Shavlik which is now VMWare Vcenter protect for the last 8 years. My issue
is the destination server has to have the same name and IP address of the
host server. The database is the “Windows Internal Database.”
Can you give me some ideas to help me out in upgrading
WSUS it would be greatly appreciated.
Thanks,
Pasquale
Pasquale,
Just follow the procedure above. After a succesfull migration shutdown your old server.
Then rename your new server + assign the correct IP.
Thanks for the info!
Pasquale
C:Program Files (x86)Update Services 3.0 API Samples and ToolsWsusMigrateWsu
sMigrationImport>wsusmigrationimport.exe settings.xml All None
WsusMigration failed with the below exception!
Microsoft.UpdateServices.Administration.WsusInvalidServerException: Exception of
type ‘Microsoft.UpdateServices.Administration.WsusInvalidServerException’ was t
hrown.
at Microsoft.UpdateServices.Administration.AdminProxy.GetUpdateServer()
at Microsoft.WsusMigrationTools.ImportServerStatus.ImportData(XmlTextReader r
eader)
at Microsoft.WsusMigrationTools.WsusMigrationTool.Main(String[] args)
C:Program Files (x86)Update Services 3.0 API Samples and ToolsWsusMigrateWsu
sMigrationImport>
anyone know the resolution to this?
The Real Person!
The Real Person!
Hi John, couple of earlier comments have a few tips for that error:
https://www.practical365.com/how-to-move-wsus-30-to-a-new-server#comment-878
https://www.practical365.com/how-to-move-wsus-30-to-a-new-server#comment-2256
Very awesome Paul. I hadn’t ran as local admin so was failing. Many thanks.
Pingback: Move wsuscontent | Sellners
Thanks
This information is really help to me for moving to another server 2003
Hello, I made all these steps and it was working good. I updated all GPO to new server but one day I can’t open wsus console, takes long minutes and finally shows me errors: “The snap-in is not responding”. There are many events 1309.
Event code: 3001
Event message: The request has been aborted.
Event time: 10/10/2011 6:24:53 PM
Event time (UTC): 10/10/2011 11:24:53 PM
Event ID: 82a3b61a231c4c5f9e546395b64427bd
Event sequence: 2114
Event occurrence: 73
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT/ClientWebService-3-129627621622743830
Trust level: Full
Application Virtual Path: /ClientWebService
Application Path: c:Program FilesUpdate ServicesWebServicesClientWebService
Machine name: RSIAPP02
Process information:
Process ID: 2660
Process name: w3wp.exe
Account name: NT AUTHORITYNETWORK SERVICE
Exception information:
Exception type: HttpException
Exception message: Request timed out.
Request information:
Request URL: http://rsiapp02/ClientWebService/client.asmx
Request path: /ClientWebService/client.asmx
User host address: 10.21.118.40
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITYNETWORK SERVICE
Thread information:
Thread ID: 14
Thread account name: NT AUTHORITYNETWORK SERVICE
Is impersonating: False
Stack trace:
I restarted IIS, Update Services and also I delete wsus file in %appdata%MicrosoftMMC but I noticed that process w3wp.exe is full 100% in task manager.
What can I do?
Hi Paul,
Thanks for the great instructions. I sucessfully migrated WSUS 3 SP2 from a Win 2008 x86 to Win 2008 R2 x64 server. Everything worked exactly as shown.
HI Mark,
Thanks for the article….a smooth transition from WSUS 3.o SP1 (win 2003 server) to WSUS 3.0 SP2 (win 2008 r2 server). Still waiting for first synchronization from MS update services. hopefully it will be fine..!
Great instructions!
Still, I am missing the old computers not reporting before the migration…
There is a way/tool to import them in the new server?
Thanks,
Tic
The Real Person!
The Real Person!
Run a GPResult or RSOP report to make sure the correct WSUS settings are applying to the computers.
Thanks, here is the case :some mobile/laptop users reported once to previous sever, but not on the new wsus (summer vacation in education…)! so I do not have access to the laptops, I just want to keep track of previous (not reporting) clients, instead of comparing to a previous server/report…the main ideea: there is more info in previous database (not replicated)
Hey everyone! Great article here…
after trying another method (from TechNet – which failed…) I decided to give this a whirl..
everything was clockwork up until running the export command, I was getting errors similar to others.
What I did was REMOVE the WSUS API Samples and TOols and then “re-installed it” but this time I selected “Everyone” can use it (not “just me”) in the install wizard.
Also, I made sure that my Command Prompt that I was running the tools in was in the Administrator Context. On W2K3, right-click and say run as and then make sure it has Administrator checked, **BUT MAKE SURE you de-select “Run in restricted mode”…
once I figured this out the rest of the process was smooth… I am still waiting for my clients to restart and hook into the new WSUS server, once the GPO deploys I’m hoping all is well…
Take care! Thanks again for all the great info!
JIm
Hello,
I have following problem with export:
WsusMigrationExport failed with the below exception!
System.InvalidOperationException: There is an error in XML document (5, 3195514). —> System.Xml.
xception: ‘
Hello,
I followed the article and I have the following problem with export settings:
WsusMigrationExport failed with the below exception!
System.InvalidOperationException: There is an error in XML document (5, 3195514). —> System.Xml.
xception: ‘
WsusMigrationExport failed with the below exception!
System.InvalidOperationException: There is an error in XML document (5, 3195514). —> System.Xml.
xception: ‘
Hi,
I have WSUS on Windows 2008 x64 server with remote instance on MS SQL 2008. Now I want to migrate it to Windows 2008R2 x64 server. Can I only migrate the settings from old server to new server and then detach the volume with WSUS content on old server and attach it on the new server? What to do next? Thanx Martin
Step 11 should be moved to being step 3.5
I followed the directions and everything worked great until step 11 when I added products to my download list after switching back to the Microsoft server. I have an additional 50GB of downloads.
Thanks for the instructions!
Excellent instructions. Saved me a lot of work,thanks!
Great walkthrough! Works neatly.
Thanks
Nice work! Best “howto” on the subject on the net.
Had a problem showing groups after syncronization, but moving a computer for Unassigned group to the proper group populated all the groups in the left window pane.
Thanks and regards!
Vince
Hi Paul,
One correction, this is not installation using sql express but installation using Windows Internal Database, which is based on sql but is not sql express. If you want to use sql express then you have to install it manualy before.
Regards
Hello,
I want to move my wsus server 2003 to a new 2003 box with more space. Can I follow the same steps as per the instroctions on this site? I’m running the sus database in a separate SQL server can some one please advice?
Thank you.
Thanks for this guide – best one I found so far.
I did a fresh WSUS 3.0 SP2 install on a 2008 R2 host and set it up as a replica of our existing 2003 SP2-based 3.0 SP2 installation and all my approvals came across in the replica sync.
I didn’t do steps 7-10 because at first I got a weird error (none related to any listed here) – but checked known custom approvals for target groups and they were all there.
All is running happily by just setting it as a replica and waiting for the initial sync, then swapping back.
Be nice if MS let us use a custom DB name, rather than be locked to ‘SUSDB’ – I could’ve avoided the extra work of having to take WSUS down to detach the WID SUSDB and then attach it to our SQL Server cluster after decommissioning the old WSUS host.
I know you can change the name of the database used in the Registry – but I’ve also read that it’s not recommended as some functions and stored procedures may be hardcoded to reference ‘SUSDB’.
The Real Person!
The Real Person!
Dale, that would definitely be handy.
Hey for those getting an error importing the setting XML similar to below.
Microsoft.UpdateServices.Administration.WsusInvalidServerException: Exception of type ‘Microsoft.UpdateServices.Administration.WsusInvalidServerException’ was thrown.
Before delving too far into things, make sure your running the command prompt as administrator on newer versions of windows.
The Real Person!
The Real Person!
Good tip James, thanks for sharing.
This tip helped me. Thanks!
This worked for me. Thanks Paul and James!!!!
Everything seems to be working now but I have a question. should the downstream servers have the same amount of patches as the upstream? I’m showing our downstream servers have more patches than the upstream server.
The Real Person!
The Real Person!
That I’m not sure about.
One more question-we have two downstream servers and i don’t see them in WSUS setup. when will they show up?
The Real Person!
The Real Person!
Have you updated them to point to the new upstream server? If so, not sure exactly how long they will take, perhaps next time they do a schedule sync?
It worked! thanks!! question-we have GPO setup already, so when do the computers start to show in WSUS. I disabled the old WSUS server NIC and I’m using the static IP address from there? Do i need to shutdown and reboot the server?
The Real Person!
The Real Person!
They’ll start reporting in on whatever schedule is set in the GPO.
If you want to manually initiate the cycle you can use:
wuauclt /detectnow
wuauclt /reportnow
from a command line on the client machines.
I’m receiving this error message when i try to import:
C:Program FilesUpdate Services 3.0 API Samples and ToolsWsusMigrateWsusMigra
tionImport>WsusMigrationImport.exe settings.xml All None
WsusMigration failed with the below exception!
System.IO.FileNotFoundException: Could not find file ‘C:Program FilesUpdate Se
rvices 3.0 API Samples and ToolsWsusMigrateWsusMigrationImportsettings.xml’.
File name: ‘C:Program FilesUpdate Services 3.0 API Samples and ToolsWsusMigra
teWsusMigrationImportsettings.xml’
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, I
nt32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions o
ptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access,
FileShare share, Int32 bufferSize)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofO
bjectToReturn)
at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)
at System.Threading.CompressedStack.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCl
eanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.CompressedStack.Run(CompressedStack compressedStack, Cont
extCallback callback, Object state)
at System.Xml.XmlTextReaderImpl.OpenUrl()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.MoveToContent()
at Microsoft.WsusMigrationTools.ImportServerStatus.ImportData(XmlTextReader r
eader)
at Microsoft.WsusMigrationTools.WsusMigrationTool.Main(String[] args)
I have followed the instructions but not sure where to go with this. I have read other post in here and i have seen similar messages but I haven’t seen this one.
The Real Person!
The Real Person!
Amy, this part of the error is interesting:
System.IO.FileNotFoundException: Could not find file ‘C:Program FilesUpdate Se
rvices 3.0 API Samples and ToolsWsusMigrateWsusMigrationImportsettings.xml’.
Is that where your settings.xml file is located? You might need to specify the exact path to settings.xml when you are running the import tool.
I have no settings.xml file in the WsusMigrationImports directory. In your step 9-I copied the settings.xml from the old server to the new server in the following directory C:Program FilesUpdate Se
rvices 3.0 API Samples and ToolsWsusMigrateWsusMigrationExport folder. Is this correct?
The Real Person!
The Real Person!
You can copy it anywhere you want, but when you run the import tool it will look in the current directory you’re in unless you specifically tell it the full path to the settings.xml file.
So if the file was in C:tempsettings.xml you would run:
wsusmigrationimport.exe c:tempsettings.xml All None
Hi Paul,
We have recently purchased a new server for the WSUS. I have migrated across the old WSUS to the new.
I followed your instructions and everything seemed to go ok, except i noticed when doing the initial sync from the original server it only downloaded 25GB of updates and the old servers updates database is 40GB
Only 5 computers have so far showed up in the console, I have reset the group policy to comply with the new update location but still i have noticed majority of the desktops are still pointing to the old server in the windows update log.
I have restarted both server and computers numerous times, have you got any ideas on what this could be?
Thanks!
The Real Person!
The Real Person!
Brett, I’m a bit rusty on WSUS but I think the new server will only download updates that clients *need*, not necessarily every update the old server had already downloaded.
For those clients not reporting to the correct server, run gpupdate /force and then double-check the registry key for Windows Update settings and make sure that it has updated to the new server. If it hasn’t then look for GPO processing errors, or perhaps the GPOs are not properly applying to those clients.
You should also check that the WSUS server is set to GPO assigned computer groups, not manually assigned ones.
Pingback: Rétikánya blogja » WSUS költöztetése másik gépre
Ah, the solution had already been posted – make sure your WSUS server is set to “Use Group Policy or registry settings on computers”.
http://dl.dropbox.com/u/273709/wsusdoh.png
Why doesn’t it include in this setting in the settings migration? Doh!
So, 2003 x86 -> 2008 x64, all good!
Many thanks 🙂
To those saying it doesn’t work on Windows Server 2008 x64, there have already been a few people posting they’ve done it successfully. I’m happy to say that so have I (at least it seems that way). We’ve gone from a physical 2003 x86 machine to a virtual 2008 x64 SP2 machine.
When trying to install “WSUS API Samples and Tools” I received the message “This setup required .net framework version 1.1.4322”.
I tried to install it using: https://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&displaylang=en
I received a warning regarding compatibility issues. I took a snapshot of the VM, then proceeded to install it anyway. The export/import of settings seemed to work fine.
The only oddity at the moment is that despite using GPOs successfully in the past for client side targeting (putting clients in to computer groups) on the old WSUS server, this doesn’t appear to be working on the new WSUS server.
I cloned the original GPO, modifying only:
“Set the intranet update service for detecting updates”
“Set the intranet statistics server”
to reflect the new server.
Despite this, and using gpupdate /force and rebooting the clients multiple times, they remain in the unassigned group on the new server. They report their update status to the new WSUS server without issue.
Hmmm.
When you make the “New” server a replica server, this mirror’s all approvals, settings, computers and groups from the parent.
So why do you have the run the script to export/import approvals and groups, as these should of been sychronized already?
Or the procedure of converting a replica server to a stand-alone server, remove these approvals and groups?
The Real Person!
The Real Person!
Hi Jeff, if you’ve set up group assignments in your GPOs make sure the WSUS server is also configured to use GPO group assignments and not manual assignments.
You can use the WSUS Client Diagnostic Tools from Microsoft to test connections to the server.
I ran through this process and it seemed to work well. I have a couple questions:
1. I am assigning target groups via GPO; however, as clients cotnact the new WSUS server, they are being put in the Unassigned group. What did I do wrong?
2. What do I need to look for to verify a successful connection to the new server?
Thanks,
jeff
So in answer to the folks who had the exception with the import on a Windows 2008/Windows 2008 R2… be sure to run your command prompt using ‘Run as Administrator’ and it works like a charm!
Thanks a lot, i followed ur steps and it was sucessfull which saved my time.
Just like to share one more thing, when i deployed WSUS on new server it created computers groups but not the computers, the computers will be populated once the users connect to ths new server after GPO change. Which would agian be manual task to move compuetrs based upon OU and time consuming.
I got one free to download tool which will help to migrate computers from old server to new WSUS server.
https://www.eminentware.com/cs2008/media/p/430.aspx
Hey Paul,
Found this page while googling. Your instructions worked perfectly for exporting/importing from a prod to test server, but let me just run it by you to see your thoughts, if you’re still checking this.
Right now we have one upstream server which gets updates from MU, and then we have 3 autonomous WSUS servers at different physical locations which sync to the upstream server. This was set up “before my time” and it’s my goal to move these 3 servers into a replication model so I don’t have to approve 50-60 updates per server each time we have a patch cycle (we do quarterly patching). In the new system, these 3 servers would be replicas and all groups and updates would be pushed from the upstream server.
My current plan, using your instructions here, is to export xml files from these 3 autonomous servers, disable WSUS services on them, and then import them into the existing upstream server. I would then re-enable the 3 WSUS downstream servers in replica mode. In theory (in my head), the new replicas will then sync with the upstream which now holds all computer groups and approvals. We have a ton of groups and thousands upon thousands of approvals set, so “starting over” isn’t really an option here. Do you think this plan will work out?
Paul, I followed your procedures and it worked fine until the import step. I’m moving from a Server 2003 platform with WSUS SP2 and SQL Express 2005 installation to a Server 2008 R2 platform with WSUS SP2 and SQL Express 2008.
I got the following error:
WsusMigration failed with the below exception!
Microsoft.UpdateServices.Administration.WsusInvalidServerException: Exception of
type ‘Microsoft.UpdateServices.Administration.WsusInvalidServerException’ was thrown.
at Microsoft.UpdateServices.Administration.AdminProxy.GetUpdateServer()
at Microsoft.WsusMigrationTools.ImportServerStatus.ImportData(XmlTextReader reader)
at Microsoft.WsusMigrationTools.WsusMigrationTool.Main(String[] args)
Not sure where the error is being created. Is there a mis-match between source and destination in configuration or just too big a jump?
The Real Person!
The Real Person!
Hi Gary, someone mentioned a similar issue earlier in the comments thread as well, and this is what I suggested to them:
https://www.practical365.com/how-to-move-wsus-30-to-a-new-server#comment-878
I don’t know whether the different SQL Express versions would be the issue, but its a possibility. But first I would verify that the new server is functioning properly on its own, check the firewall, that sort of thing. Let us know how you go with it.
Hi Paul.
When I try and export the setting I get the follwing error, I see it’s the same as posted by Andrew. Any advice ?
WsusMigrationExport failed with the below exception!
System.Net.WebException: The operation has timed out
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest
request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequ
est request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodN
ame, Object[] parameters)
at Microsoft.UpdateServices.Internal.ApiRemoting.ExecuteSPSearchUpdates(Strin
g updateScopeXml, String preferredCulture, Int32 publicationState)
at Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.Exec
uteSPSearchUpdates(String updateScopeXml, String preferredCulture, ExtendedPubli
cationState publicationState)
at Microsoft.UpdateServices.Internal.BaseApi.Update.SearchUpdates(UpdateScope
searchScope, ExtendedPublicationState publicationState, UpdateServer updateServ
er)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetUpdates()
at Microsoft.WsusMigrationTools.ExportServerStatus.DumpData(XmlTextWriter dat
aWriter)
at Microsoft.WsusMigrationTools.WsusMigrationTool.Main(String[] args)
You need to get the latest version of WsusMigrationImport & WsusMigrationExport of which you can get from http://www.microsoft.com/en-gb/download/details.aspx?id=1172 and replace the old files with the new ones.
Does this solution work when we have downstream servers and we need to move the primary one on the new hardware?
Thanks Paul…
Hey Paul,
After migration of WSUS 3.0 SP1 to the new server, We have synced the new server with the old WSUS servers and imported the configuration setting from old WSUS server to the new WSUS server after that computer group are showing but in the group no machine are listed all the machine are showing in the unassigned group, But in the old server all the computes are listed in the respective computer groups.
Do we have to manually move the machines to the respective group?
The Real Person!
The Real Person!
If your computers were assigned to groups via GPO that should handle it automatically. If you were using manual assignment then you’ll probably need to go ahead and redo all the assignments manually.
Pingback: How to swing WSUS 3 to a new server | joelhynes.com [ My Home Grown Blog ]
Thanks alote ….
I migrated WSUS to another server following the above steps and it seems to be working without any problems. It was the easiest migration I think I’ve ever performed. Thanks for the documentation.
Procedure completely destroyed WSUS on an x64 server. The API/Tools installation requires .Net framework 1.1, which makes the WSUS console and update services not work anymore. The API/Tools can’t export the server settings on an x64 machine (returns an error). Had to remove WSUS completely, and start over from scratch on another server.
Yep great post thanks a lot! Had to move the wsus content to another server due to shortage of space, just like others..worked a treat.
Mark,
I read your response to Cynthia which is almost exactly what I needed to do. I did the first part using the utility to move the data, that part is done. However the original WSUS folder (27GB) on C: is still there, is it safe to just delete that once the move it is finished? I have two folders now, C:WSUS and E:WSUS, the idea is to fuly remove the C:WSUSWSUSContent on the same server and not have anymore updates go into that folder, instead go into E:WSUS. I see the sharing of WSUSContent is automatically moved after that command finished so I believe its safe to just delete this duplicate data off C:WSUSWSUSContent. Is that correct?
Thanks ahead of time. Great post will recommend to others 😉
Will
The Real Person!
The Real Person!
Glad you guys are all finding the post useful. Special thanks to those who have shared additional information and solutions in the comments, thats terrific.
Just wanted to say thanks for this post. I just migrated our primary WSUS server tonight and it went very smoothly.
FYI I was going from Server 2003 32-bit with local SQL 2005 Express to Server 2008 64-bit using a remote SQL 2005 Standard server, and had no errors or problems. Since WSUS 3.0 SP2 hit this morning, I went ahead and applied that to the old server first, then used the SP2 integrated installer on the new server. We also have a replica server in a branch site, and I was able to update it to replicate from the new server without an issue.
I had the same problem with the .net framework error on 2k8 x64, where I then exited the installation. We ended up building our server and recreating the groups and approvals, to later revisit the problem. After working with MS who verified the installation works fine on thier end, we then downloaded a fresh copy of the API samples and were able to install them with no issue or prompts about .net framework.
If you are running 64 bit dont forget to use the correct Program files directory (X86), otherwise you will get errors when running the commands above.
Unfortunately this does not work when moving from Win2003 to Win2008 x64.
First .NET Framework 1.1 is needed for WSUS API Samples and Tools-installation. After installing evereything (and ignoring that .NET 1.1 is not supported) the import fails when trying to load “Microsoft.Updateservices.Administration” from GAC (File not found exception). Extracting the DLL from GAC or using those in the Update Services Setup folder and copying them to the Migration-Driectory mentioned above result in a “Bad File Format Errror”. This looks like doing it all over again (Approve evereything etc.). Microsoft still ignores that they are developing x64 systems 😉
Pingback: How to move WSUS 3.0 to a new server - David Dan
The Real Person!
The Real Person!
Hi Rodeca, I’ve never really considered that to be a problem so I honestly don’t know what the answer to your first question is.
For your second comment, yes sometimes it is pretty painful to migrate from server to server or update to new versions. WSUS is an example of this, but the improvements in WSUS 3.0 over earlier versions make it worth the effort.
First thing: thank you
Question: Isn’t there any _easy_ way to transfer clients (and their status) as well?
I followed your steps and everything went fine (well, in lab at least). But now, when clients begin to connect, there will be a big ammount of work at wsus server and at clients… only to conclude that everything is ok.
Last thing: why *@+** microsoft almost never think that we need transfer things (services, roles, …) from old boxes to new ones: it is always a pain: exchange, wsus, PDC, …
Thanks again (and again…)
RØ
Paul,
I migrated WSUS to another server following the above steps and it seems to be working without any problems. It was the easiest migration I think I’ve ever performed. Thanks for the documentation. One question though if I may. On the drive where the database is installed, in the WsusContent folder, there are many folders being created; so far 18 this morning. These folders are quite large from 10 to 800 MB. At this rate we will be out of free space in a few days. It seems excessive since we only had 1 update needded this morning. Any Ideas?
Thanks
The Real Person!
The Real Person!
Hi Dave, those folders are where the update catalogs and files are stored when WSUS downloads them. I’d recommend allocating more disk space to your WSUS content drive. You can see how to move the WSUS content to another drive in a comment I wrote recently to another person on this post.
Hi Paul, yeah I could still connect to it from both a local & remote console, and clients still get nagged to restart for new updates.. I had a bit of a play though in case it was the .net install, uninstalled, reinstalled 2.0 & 2.0 SP1, along with the asp.net component of IIS in various combinations and orders but the only thing I managed to achieve was to render the WSUS server itself inaccessible from the console with a
System.IO.IOException — The handshake failed due to an unexpected packet
format.
error. So I tried something else instead: I copied the DB files from the old server to the new server, stopped the Update Services service and simply replaced (detach/attach) the whole DB, complete with approvals, metadata & product/classification settings. I did have to adjust the security on the files to match the existing ones, but everything seems to be running smoothly.. hope that helps someone…
The Real Person!
The Real Person!
Hi Andrew, I’ve never seen that error before. Are you sure the WSUS server you’re trying to export is online and running properly?
Hey Paul,
Am following your method here but have run into a hitch at #7: I get the following error:
WsusMigrationExport failed with the below exception!
System.Net.WebException: The operation has timed out
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Microsoft.UpdateServices.Internal.ApiRemoting.ExecuteSPSearchUpdates(String updateScopeXml, String preferredCulture, Int32 publicationState)
at Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.ExecuteSPSearchUpdates(String updateScopeXml, String preferredCulture, ExtendedPublicationState publicationState)
at Microsoft.UpdateServices.Internal.BaseApi.Update.SearchUpdates(UpdateScope searchScope, ExtendedPublicationState publicationState, UpdateServer updateServer)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.GetUpdates()
at Microsoft.WsusMigrationTools.ExportServerStatus.DumpData(XmlTextWriter dataWriter)
at Microsoft.WsusMigrationTools.WsusMigrationTool.Main(String[] args)
Have looked all over the net but can’t find any solutions, have stopped/restarted everything possible to no avail..
The Real Person!
The Real Person!
You’re welcome Mike.
Hey Paul!
You beat me to it on my site – but THANKS A MILLION for this post – I cannot tell you how much time this saved me – and downloading time!
Worked great!
Cheers!
Mike
Pingback: Moving WSUS to a New Server & Saving the Downloads | How Mike Does It - Technically - It's Just My Way
The Real Person!
The Real Person!
Hi Dheerja,
From what I can see that error occurs if the server you are trying to import to is invalid. There can be many different reasons for that, such as:
– new server not installed correctly
– wrong version of WSUS tools used
– misspelled new server name when running the command
– permissions problem accessing the new server
I’d suggest testing that the new server is functioning properly before trying again.
Hi,
I have tried to migrate WSUS server as per the instructions above.
When I try to import XML file I am getting the below mentioned error
WsusMigration failed with the below exception!
Microsoft.UpdateServices.Administration.WsusInvalidServerException: Exception of
type ‘Microsoft.UpdateServices.Administration.WsusInvalidServerException’ was t
hrown.
at Microsoft.UpdateServices.Administration.AdminProxy.GetUpdateServer()
at Microsoft.WsusMigrationTools.ImportServerStatus.ImportData(XmlTextReader r
eader)
at Microsoft.WsusMigrationTools.WsusMigrationTool.Main(String[] args)
Please advice
Regards
Helloo there:
I solved this issue running the prompt as administrator.
And for everything else the Paul’s procedure works like a charm.
I made a migration from wsus in windows 2003 to wsus 3.0sp2 in windows 2008 R2
Thank you very much Paul
Hi All,
This issue is caused for 2 reasons.
1) Several .Net 2.0 dll GAC files not present from where you are running the WsusMigrationImport or the WsusMigrationExport
a. Microsoft.UpdateServices.Administration.dll
b. Microsoft.UpdateServices.Common.dll
2) You need to get the latest version of WsusMigrationImport & WsusMigrationExport of which you can get from http://www.microsoft.com/en-gb/download/details.aspx?id=1172 and replace the old files with the new ones.
To obtain the files (a & b above) do as follows – On your old 2003 server you need to do as follows to create the two files as described above….
Open a command prompt… and follows as I did (this is a copy and paste from my cmd prompt, yours may differ slightly).
See if you can follows what I did
C:\>cd WINDOWS
C:WINDOWS>cd assembly
C:WINDOWSassembly>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassembly
16/01/2012 20:23 GAC
17/11/2009 03:06 GAC_32
18/08/2011 13:25 GAC_MSIL
16/07/2012 21:42 NativeImages1_v1.1.4322
17/11/2009 03:21 NativeImages_v2.0.50727_32
16/07/2012 21:42 temp
16/07/2012 21:42 tmp
0 File(s) 0 bytes
7 Dir(s) 11,274,915,840 bytes free
C:WINDOWSassembly>cd GAC
C:WINDOWSassemblyGAC>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGAC
16/01/2012 20:23 .
16/01/2012 20:23 ..
18/01/2008 14:16 Accessibility
18/01/2008 14:16 cscompmgd
18/01/2008 14:16 CustomMarshalers
23/01/2008 09:42 IEExecRemote
23/01/2008 09:42 IEHost
18/01/2008 14:16 IIEHost
18/01/2008 14:16 ISymWrapper
23/01/2008 09:51 Microsoft.Interop.Security.AzRoles
23/01/2008 09:42 Microsoft.JScript
18/08/2011 13:25 Microsoft.UpdateServices.Administration
18/08/2011 13:25 Microsoft.UpdateServices.Common
18/08/2011 13:25 Microsoft.UpdateServices.StringResources
18/08/2011 13:25 Microsoft.UpdateServices.StringResources.res
ources
23/01/2008 09:42 Microsoft.VisualBasic
18/01/2008 14:16 Microsoft.VisualBasic.Vsa
18/01/2008 14:16 Microsoft.VisualC
18/01/2008 14:16 Microsoft.Vsa
18/01/2008 14:16 Microsoft.Vsa.Vb.CodeDOMProcessor
18/01/2008 14:16 Microsoft_VsaVb
18/01/2008 14:16 mscorcfg
23/01/2008 09:42 Regcode
16/07/2012 21:42 System
18/01/2008 14:16 System.Configuration.Install
23/01/2008 09:42 System.Data
23/01/2008 09:42 System.Data.OracleClient
23/01/2008 09:42 System.Design
23/01/2008 09:42 System.DirectoryServices
22/05/2012 00:27 System.Drawing
18/01/2008 14:16 System.Drawing.Design
23/01/2008 09:42 System.EnterpriseServices
23/01/2008 09:42 System.Management
23/01/2008 09:42 System.Messaging
23/01/2008 09:42 System.Runtime.Remoting
23/01/2008 09:42 System.Runtime.Serialization.Formatters.Soap
20/07/2010 01:15 System.Security
23/01/2008 09:42 System.ServiceProcess
16/01/2012 20:23 System.Web
23/01/2008 09:42 System.Web.Mobile
23/01/2008 09:42 System.Web.RegularExpressions
23/01/2008 09:42 System.Web.Services
16/07/2012 21:42 System.Windows.Forms
23/01/2008 09:42 System.Xml
0 File(s) 0 bytes
44 Dir(s) 11,273,846,784 bytes free
C:WINDOWSassemblyGAC>cd Microsoft.UpdateServices.Administration
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:25 2.0.0.0__31bf3856ad364e35
0 File(s) 0 bytes
3 Dir(s) 11,274,649,600 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>cd 2.0.0.0__31bf3856ad364e35
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf385
6ad364e35>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.
0.0.0__31bf3856ad364e35
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:21 71,584 Microsoft.UpdateServices.Administration.dll
18/08/2011 13:25 227 __AssemblyInfo__.ini
2 File(s) 71,811 bytes
2 Dir(s) 11,274,649,600 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf3856ad364e35>copy Microsoft.UpdateServices.Administration.dll c:
1 file(s) copied.
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration2.0.0.0__31bf385
6ad364e35>cd ..
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Administration>cd ..
C:WINDOWSassemblyGAC>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGAC
16/01/2012 20:23 .
16/01/2012 20:23 ..
18/01/2008 14:16 Accessibility
18/01/2008 14:16 cscompmgd
18/01/2008 14:16 CustomMarshalers
23/01/2008 09:42 IEExecRemote
23/01/2008 09:42 IEHost
18/01/2008 14:16 IIEHost
18/01/2008 14:16 ISymWrapper
23/01/2008 09:51 Microsoft.Interop.Security.AzRoles
23/01/2008 09:42 Microsoft.JScript
18/08/2011 13:25 Microsoft.UpdateServices.Administration
18/08/2011 13:25 Microsoft.UpdateServices.Common
18/08/2011 13:25 Microsoft.UpdateServices.StringResources
18/08/2011 13:25 Microsoft.UpdateServices.StringResources.res
ources
23/01/2008 09:42 Microsoft.VisualBasic
18/01/2008 14:16 Microsoft.VisualBasic.Vsa
18/01/2008 14:16 Microsoft.VisualC
18/01/2008 14:16 Microsoft.Vsa
18/01/2008 14:16 Microsoft.Vsa.Vb.CodeDOMProcessor
18/01/2008 14:16 Microsoft_VsaVb
18/01/2008 14:16 mscorcfg
23/01/2008 09:42 Regcode
16/07/2012 21:42 System
18/01/2008 14:16 System.Configuration.Install
23/01/2008 09:42 System.Data
23/01/2008 09:42 System.Data.OracleClient
23/01/2008 09:42 System.Design
23/01/2008 09:42 System.DirectoryServices
22/05/2012 00:27 System.Drawing
18/01/2008 14:16 System.Drawing.Design
23/01/2008 09:42 System.EnterpriseServices
23/01/2008 09:42 System.Management
23/01/2008 09:42 System.Messaging
23/01/2008 09:42 System.Runtime.Remoting
23/01/2008 09:42 System.Runtime.Serialization.Formatters.Soap
20/07/2010 01:15 System.Security
23/01/2008 09:42 System.ServiceProcess
16/01/2012 20:23 System.Web
23/01/2008 09:42 System.Web.Mobile
23/01/2008 09:42 System.Web.RegularExpressions
23/01/2008 09:42 System.Web.Services
16/07/2012 21:42 System.Windows.Forms
23/01/2008 09:42 System.Xml
0 File(s) 0 bytes
44 Dir(s) 11,274,399,744 bytes free
C:WINDOWSassemblyGAC>cd Microsoft.UpdateServices.Common
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common>dir
Volume in drive C has no label.
Volume Serial Number is 58B5-EF5C
Directory of C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common
18/08/2011 13:25 .
18/08/2011 13:25 ..
18/08/2011 13:25 2.0.0.0__31bf3856ad364e35
0 File(s) 0 bytes
3 Dir(s) 11,274,391,552 bytes free
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common>cd 2.0.0.0__31bf3856ad364e35
C:WINDOWSassemblyGACMicrosoft.UpdateServices.Common2.0.0.0__31bf3856ad364e3
5>copy Microsoft.UpdateServices.Common.dll c:
1 file(s) copied.
Open the root of you C: you will see the 2 files you just exported.
1) Microsoft.UpdateServices.Administration.dll
2) Microsoft.UpdateServices.Common.dll
Copy them to the location you are running WsusMigrationImport or WsusMigrationExport from then try the import/export again…once you have obtained the new migrations tools from point 1.
The Real Person!
The Real Person!
Cynthia, sounds like a real problem on your hands. Here are my suggestions:
Firstly, if your web server has another disk that has enough free space for the WSUS content, you can move it to that disk by following this process:
Scenario: Moving WSUS content to a new directory or disk to free up disk space.
1. Create the new disk/volume
2. Create the new folder, eg E:WSUS
3. Open a CMD prompt and navigate to C:Program FilesUpdate ServicesTools
4. Run “wsusutil movecontent E:WSUS e:wsusmove.log
5. Wait
6. Delete the original WSUS content folder to free up space
For your task of moving WSUS to a new server, I would suggest the following:
1. Follow the instructions in this blog post to install a new WSUS instance on your new server, using SQL Express (ie Windows Internal Database) and specifying the correct disk to hold your WSUS content.
2. Complete the migration to the new server as show above.
3. Remove the old SUSDB from your SQL server.
4. Follow my instructions here to migrate your new WSUS database from the SQL Express instance to your remote SQL Server:
https://www.practical365.com/2008/09/24/how-to-migrate-wsus-30-from-sql-express-to-a-remote-sql-server/
If I’m reading your comment correctly I believe this should resolve your issues.
Please please help me! We ran out of space on our production webserver lastnight due to 50GB of WSUSContent, so I moved some of the content files to our file server and stopped the WSUS app pool for now.
I want to install WSUS 3.0 on another server so it won’t affect our Production Web Server.
I want to use the existing remote database on the existing remote SQL 2005 database server.
I want to keep my approvals.
I want WSUSContent to be on the D: drive on the new server instead of the C: drive where it’s at now.
thanks to the assassin! you have just made my day.
This worked very nicely – no troubles at all. Nicely done!
The Real Person!
The Real Person!
Hi Marc, I haven’t experienced that problem myself but looking around it seems it is most commonly a firewall issue. What firewall are you running, and can you see whether it is allowing or denying the HTTPS requests from the WSUS server to Microsoft’s update servers?
Update:
I’ve restarted the server and also reapproved the new updates a second time. Now the clients are downloading and installing the new updates.
I have howerver notice a second problem. The new WSUS server (which is a Windows 2008 server) is not able to synchronize with Microsoft. I double and tripple checked our corporate firewall and it is configured to allow this. Here’s the error I am getting:
WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. —> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
Any Ideas?
Hi Paul,
I do have both of these settings pointing to an alias DNS record (wsus.mydomain.com) which was an alias for the old wsus server. Upon completing the migration, I changed this DNS record to point to the new server. At first, I used the IPCONFIG /FLUSHDNS to ensure my clients were getting the new DNS information, but now, it’s been over 24 hours since the change and I’ve also tried restarting several clients. but still no luck.
The WSUS server is indicating that there are approved updates needed by these clients, however, the clients are not downloading, or installing them.
Hi Marc, there are two GPO settings that are relevant. One is for the server that clients will download updates from, the other is the server they will upload their statistics too. Make sure you’ve configured both of them correctly.
Thanks for the excellent article. My migration seems to have worked, with one exception. The clients are reporting to the new server, however are not downloading or installing newly approved updates from the new server.
Any ideas?
Thanks a mil, works like a charm..
Very clear instructions. The best I found while searching. Thanks very much.
Excellent article…thanks!
Thank you for the clear instructions! I´ll try that.