Bill Baer

Senior Product Marketing Manager (SharePoint), Microsoft Certified Master for SharePoint, Microsoft Corporation


Understanding PRESCAN.EXE in MOSS 2007

  • Comments 21
  • Likes

Prior to upgrading to Microsoft Office SharePoint Server 2007/Windows SharePoint Services 3.0 one of the prerequisites some of you may have already noticed is running PRESCAN.EXE from the installation directory.  This post will hopefully provide some insight into PRESCAN.EXE as well as best practices on when it should be run.

PRESCAN.EXE has two primary purposes:

  1. It parses and saves List definitions with the associated Lists.  SharePoint Portal Server 2003 Service Pack 2 already incorporates this feature whenever a list is modified; however, this process should be completed for all Lists, so prescan calls the SharePoint Portal Server 2003 Service Pack 2 method to persist that data.
  2. PRESCAN.EXE will report on common issues that will result in a failed upgrade; therefore, running PRESCAN.EXE, addressing reported issues, and resolving those issues, and re-running PRESCAN.EXE to verify those fixes is a best practice when planning a Microsoft Office SharePoint Server 2007/Windows SharePoint Services 3.0 upgrade.  The most commonly detected issues are:
    • Database Orphans This is a class of issue where an object exists, but the pointer with the parent object is broken and/or corrupt.   Classic examples include situations where a site exists in the content database; however, does not exist in the configuration database and a web that points to a site collection that no longer exists. 
    • Missing Site Definitions This issue is rare at best ad exists when a site collection has been removed/deleted - sites under this classification will not be upgraded and in addition those sites will not render in SharePoint Portal Server 2003/Windows SharePoint Services 2.0.

Typically these issues will manifest as a result of failed STSADM backup and restore sequences, but also can occur at the SQL level.

Depending on the nature and growth of your environment, PRESCAN.EXE is best run one (1) week prior to the production upgrade allowing time to address issues uncovered, and again prior to the upgrade itself to ensure that those previous issues have been resolved in addition to identifying new issues, if any.

  • via JOPX
    Ah finally, it is here ... get your Office 2007 beta2 ... So, to get things going -...

  • So where can I find some information about running this scan?  I have run it a few times, and it keeps failing with the following:

    06/05/2006 15:34:43 System.MissingMethodException: Method not found: Void Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateSchemaAllListsOfWeb(System.String).
      at Microsoft.SharePoint.PreupgradeReport.Scan.ScanOneSPSiteCore(SPVirtualServer vs, SPSite site)
      at Microsoft.SharePoint.PreupgradeReport.Scan.ScanOneSPSite(SPVirtualServer vs, SPSite site)
    06/05/2006 15:34:43 System.MissingMethodException: Method not found: Void Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateSchemaAllListsOfWeb(System.String).
      at Microsoft.SharePoint.PreupgradeReport.Scan.ScanOneSPSiteCore(SPVirtualServer vs, SPSite site)
      at Microsoft.SharePoint.PreupgradeReport.Scan.ScanOneSPSite(SPVirtualServer vs, SPSite site)

  • Can you provide the command line and swtiches you are using, e.g. /all, /<vs>, addition to a what your environment looks like, SPS + WSS, WSS only, etc.

  • Justin Greywolf - did you resolve this issue. I had the same, and found that installing WSS and SPS service packs on my 2003 build BEFORE running the inline upgrade fixed the problem. (No longer got this error - although the upgrade process still doesn't work)

    The method UpdateSchemaAllListsOfWeb is in Microsoft.SharePoint.Library version - ie, it's not part of 2007.


  • Nice job Bill.  I saw your blog mentioned in a Vorsite article recently.

  • We have created a portal site in SPS 2003 with name “desarrollo.moss.extranet”. The Virtual server name is “desarrollo.moss.extranet” and is listening in port 80.

    When I run prescan.exe the following error is thrown:

    “An outbound zone URL is configured for something other than the default zone on virtual server http://desarrollo.moss.extranet/, and no default zone outbound URL is defined.  This is not supported, and must be corrected before upgrading.”

    The default zone outbound URL IS defined

    ¿Any ideas?



  • I would recommend confirming your Access Setting Information in SharePoint Portal Server Central Administration > Configure Alternate Portal Access Settings, typically http://<server>:<port>/SPS/AccessSettingEdit.aspx.  If the server farm is hosting only one virtual server it may be possible to scan using http://<server>/sites/site as opposed to the friendly name.

  • I ran the prescan tool with the following: prescan.exe /c preupgradescanconfig.xml /all

    Our env. has 2 WFE network load balanced together, one separate index server.

    In the prescan log file, I noticed the following, would you please explain what it means?

    11/29/2006 10:41:31 Scanning SPWeb: http://crpvws06d/C0

    11/29/2006 10:41:31   Updating list schema in web.

    11/29/2006 10:41:31 Cannot locate the list definition required for upgrade.  Check to ensure you have all templates and language packs installed.

    11/29/2006 10:41:31 Error: Exception scanning web: http://crpvws06d/C0

    11/29/2006 10:41:31 System.Runtime.InteropServices.COMException (0x80004005): Cannot complete this action.

    Please try again.

      at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateSchemaAllListsOfWeb(String bstrUrl)

      at Microsoft.SharePoint.PreupgradeReport.Scan.ScanOneSPWeb(SqlConnection connection, String vsUrl, SPVirtualServer vs, SPSite site, SPWeb web)


    11/29/2006 10:42:30 Error: The following site has not been scanned. Id = ac8ae79c-8a72-470f-aa71-ec952e71ce3b and Url = /personal/sbhatnagar


    11/29/2006 10:42:30 Error: The following list has not been scrubbed: Id=949d965f-7958-4799-9df6-5772c9c9a8e5, Name=Document Library, Containing Web=C3

    Also in the prescan.log, I see the following:

    0 11/29 10:41:31 2368 FAILED to persist field schema of lists in web "http://crpvws06d/C0"

    0 11/29 10:41:31 2368 Cannot complete this action.

    Please try again.

    Your help will be greatly appreciated. Thanks.

  • I was hoping when I found your post, that it would help me to interpret the pre-scan results.  Would you mind sharing insights or pointing us in the right direction to help us understand what the pre-scan messages mean and what types of situations may cause the errors or issues reported?

    For example, what does it mean "The following list has not been scrubbed:"  What situations would cause a list not to be scrubbed?  What action should we take as a result of this message?


  • I put together this post as a follow-up to my initial PRESCAN topic " Understanding PRESCAN.EXE in MOSS

  • In response to Stacey's comment; if a List is orhaned and cannot be reached through the SharePoint OM, prescan will generate the error: "The following list has not been scrubbed", and will include the List Id to additional troubleshooting.  For additional information on remediating this and other PRESCAN errors, see my post here:

  • MSDN Windows SharePoint Services Run the pre-upgrade scan tool (Windows SharePoint Services)

  • Do you know if prescan.exe can be run against a particular port number?

    e.g. prescan.exe /v http://myserver:1959

    (Prescan.exe doesn't seem to recognize the port when I run the above)

  • Michael;

    PRESCAN is capable of running against a specific port.  If PRESCAN reports the virtual server cannot be accessed, you should check and confirm the following configurations and run the pre-upgrade report tool (PRESCAN.EXE) again:

    1. Host header value, TCP, and SSL port settings in Internet Information Services for the Virtual Server
    2. Value for Virtual Server in the front-end web server HOSTS table (C:\WINDOWS\System32\drivers\ETC\HOSTS)
    3. Alternate portal site URLs
    4. WSS SP2 installed
    5. Virtual server has been upgraded after WSS SP2 installation

    Using the port settings sample you provide I was able to successfully obtain PRESCAN results in my lab.

    02/03/2007 11:37:57 Scanning SPWeb: http://spsites:1959/Topics

    02/03/2007 11:37:57   Web is using custom template "SPSTOC".

    02/03/2007 11:37:57   Updating list schema in web.

    02/03/2007 11:37:57 Checking if Server="X-REDMMSSPTRS01";Database="SPSites1_SITE";Trusted_Connection=yes;App="prescan.exe" is a WSS V2 SP2 database.

    02/03/2007 11:37:57 Checking if any site has not yet been scanned in Server="X-REDMMSSPTRS01";Database="SPSites1_SITE";Trusted_Connection=yes;App="prescan.exe".

    02/03/2007 11:37:57 Checking if any list has not yet been scrubbed in Server="X-REDMMSSPTRS01";Database="SPSites1_SITE";Trusted_Connection=yes;App="prescan.exe".

    02/03/2007 11:37:57 Scan finished without failure.

    02/03/2007 11:37:57 ===============================Logs===============================

    02/03/2007 11:37:57 Log file: C:\DOCUME~1\MS7C45~1\LOCALS~1\Temp\PreupgradeReport_633060994741085700_Log.txt

    02/03/2007 11:37:57 Summary file: C:\DOCUME~1\MS7C45~1\LOCALS~1\Temp\PreupgradeReport_633060994741085700_Summary.xml

    02/03/2007 11:37:57 ==============================Totals==============================

    02/03/2007 11:37:57 Number of sites skipped (already scanned):   0

    02/03/2007 11:37:57 Number of sites scanned:   1

    02/03/2007 11:37:57 Number of broken sites:   0

    02/03/2007 11:37:57 Number of webs scanned:   18

    02/03/2007 11:37:57 Number of broken webs:   0

    02/03/2007 11:37:57 Number of webs using custom template:   18 (100% of total).

    02/03/2007 11:37:57 Number of pages scanned:   298

    02/03/2007 11:37:57 Number of unghosted pages:   0

  • I copied over the content database from SQL 2000/SPS2003 and did a restore on my new SQL 2005/MOSS2007. When i try to add the content database from sql 2000/SPS2003, it is asking me to run the prescan.exe tool. But when i run the tool, i get the following error.

    C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN>PRESCAN.EXE /ALL


    Preupgrade scan failed with the following error:

    System.InvalidOperationException: The ConnectionString property has not been ini


      at System.Data.SqlClient.SqlConnection.Open()

      at Microsoft.SharePoint.PreupgradeReport.Scan.Run(StringCollection argsList)

      at Microsoft.SharePoint.PreupgradeReport.MainLoop.Main(String[] args)

    and the log files in the local setting show this

    02/20/2007 17:10:33 Error: Failed to get connection string to config db.

    02/20/2007 17:10:33 System.NullReferenceException: Object reference not set to an instance of an object.

      at Microsoft.SharePoint.PreupgradeReport.Scan.get_configDbConnectionString()

    What am I doing wrong?

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment