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.

wsusmove01

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.

wsusmove02

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.

wsusmove03

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.

About the Author

Paul Cunningham

Paul is a former Microsoft MVP for Office Apps and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul no longer writes for Practical365.com.

Comments

  1. Steve

    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.

  2. sumon

    Should we need to database backup and restore?

  3. Dimitri

    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??

  4. Kerry Archambault

    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?

    1. Kerry Archambault

      oh. and it’s cross-forest because we are in the middle of a migration.

  5. Kerry Archambault

    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?

    1. Kerry Archambault

      My bad. Default 8530 was not the correct port.

  6. Salah

    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.

  7. David

    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!

  8. Jim Reece

    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.

  9. Sheena

    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!

  10. JR

    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”.

    1. Sheena

      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!

      1. JR

        Thank you

  11. JR

    Clear instructions (Thank you )Question? what happens if I want to point to mine existing SQL database? would I follow the same instructions?

  12. Corey Carmickle

    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

    1. Corey Carmickle

      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?

      1. Corey Carmickle

        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.

    2. Corey Carmickle

      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.

  13. AJ

    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.

  14. kjstech

    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.

  15. Sherlock

    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 ?

  16. Eamonn Deering

    Using damian.flynn dot net 45 version I migrated to 2012 R2.

  17. Gaetano Ragusa

    Great man, thanks for the article!

  18. Lee

    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)

  19. Lee

    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…..

  20. Hemant

    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 ………….

  21. CW

    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.

  22. CW

    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.

  23. Juan

    You definitely have to reassign them again.

  24. Alberto

    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

    1. Alberto

      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!

      1. Alberto

        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.

  25. mohan teli

    Great Help, I will try this and update.

    Thanks a Ton.

  26. Sima

    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

  27. Kevin

    Brilliant article mate, really appreciate the time taken for you to post this

  28. Pasquale

    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

    1. JV

      Pasquale,

      Just follow the procedure above. After a succesfull migration shutdown your old server.
      Then rename your new server + assign the correct IP.

      1. Pasquale Pescatore

        Thanks for the info!

        Pasquale

  29. john holcomb

    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>

    1. john holcomb

      anyone know the resolution to this?

      1. Avatar photo
      2. john holcomb

        Very awesome Paul. I hadn’t ran as local admin so was failing. Many thanks.

  30. Rakesh Desai

    Thanks
    This information is really help to me for moving to another server 2003

  31. Daniel

    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?

  32. Craig

    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.

  33. Vishal Kumar SIngh

    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..!

  34. tic

    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

      1. tic

        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)

  35. Jim

    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

  36. Martin

    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: ‘

  37. Martin

    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: ‘

  38. Martin

    WsusMigrationExport failed with the below exception!
    System.InvalidOperationException: There is an error in XML document (5, 3195514). —> System.Xml.
    xception: ‘

  39. Martin

    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

  40. Erik Willadsen

    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!

  41. Johan

    Excellent instructions. Saved me a lot of work,thanks!

  42. Rino

    Great walkthrough! Works neatly.
    Thanks

  43. Vince Dinenna

    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

  44. Ziv Shadar

    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

  45. JR

    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.

  46. Dale Smith

    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’.

  47. James "Atreidae" Arber

    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.

    1. Rich

      This tip helped me. Thanks!

    2. Sunil Dahiya

      This worked for me. Thanks Paul and James!!!!

  48. Amy

    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.

  49. Amy

    One more question-we have two downstream servers and i don’t see them in WSUS setup. when will they show up?

  50. Amy

    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?

    1. Avatar photo

      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.

  51. Amy

    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.

    1. Avatar photo

      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.

      1. Amy

        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?

      2. Avatar photo

        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

  52. Brett

    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!

    1. Avatar photo

      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.

  53. Robin

    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 🙂

  54. Robin

    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.

  55. Brent

    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?

  56. Avatar photo

    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.

  57. Jeff

    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

  58. Lisa

    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!

  59. Asif

    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

  60. Steve

    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?

  61. Gary Bledsoe

    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?

    1. Avatar photo

      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.

  62. Ronnie

    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)

  63. Bogdan

    Does this solution work when we have downstream servers and we need to move the primary one on the new hardware?

  64. Deepesh

    Thanks Paul…

  65. Deepesh

    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?

    1. Avatar photo

      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.

  66. Mohammed Alani

    Thanks alote ….

  67. Deepesh

    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.

  68. Dan Wilson

    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.

  69. Kevin Greenway

    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.

  70. willschillin

    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

  71. Dan

    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.

  72. DC

    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.

  73. Tobias

    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 😉

  74. Avatar photo

    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.

  75. Rodeca

    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…)

  76. Dave

    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

    1. Avatar photo

      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.

  77. Andrew

    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…

  78. Andrew

    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..

  79. 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

  80. Avatar photo

    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.

  81. Dheeraj

    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

    1. luismendeze

      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

    2. CW

      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.

  82. Avatar photo

    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.

  83. Cynthia Coleman

    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.

  84. Abiodun Sobowale

    thanks to the assassin! you have just made my day.

  85. Matt

    This worked very nicely – no troubles at all. Nicely done!

  86. Avatar photo

    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?

  87. Marc Proulx

    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?

  88. Marc Proulx

    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.

  89. Paul

    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.

  90. Marc Proulx

    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?

  91. Anton van der Merwe

    Thanks a mil, works like a charm..

  92. Icy

    Very clear instructions. The best I found while searching. Thanks very much.

  93. Matthew

    Excellent article…thanks!

  94. Johannes

    Thank you for the clear instructions! I´ll try that.

Leave a Reply