????
Current Path : C:/Windows/System32/migwiz/replacementmanifests/ |
Current File : C:/Windows/System32/migwiz/replacementmanifests/odbc32dll-Repl.man |
<?xml version='1.0' encoding='utf-8' standalone='yes'?> <assembly xmlns="urn:schemas-microsoft-com:asm.v3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" manifestVersion="1.0" > <!-- This is a replacement manifest to replace the faulty manifest for Vista, Win7 and early builds of Win8 (before 8156). --> <!-- This is because those faulty manifests did not take WOW64 entries into account --> <!-- This will support both gather phrase and apply phrase, since USMT can be used to migrate settings from Win7 to Win7 --> <!-- This will also support the gather phrase from sources machines of WinXP and Srv03, since those machines can still migrate to Win7 --> <!-- Currently, we only support 3 favors of migration: (x86 -> x86), (x86 -> AMD64), (AMD64 -> AMD64) --> <assemblyIdentity name="Microsoft-Windows-Microsoft-Data-Access-Components-(MDAC)-ODBC-DriverManager-Dll" version="0.0.0.0" processorArchitecture="*" language="neutral" /> <migration scope="Upgrade,MigWiz,USMT,SvrMig" settingsVersion="0" replacementSettingsVersionRange="0" replacementVersionRange="6.0-6.2.8156" > <!-- Main section of migration. This is only used for exact matching. --> <!-- In other words, source and target machines are of the same build version and the same architecture --> <!-- Otherwise, it will go to the following <supportedComponents> elements --> <migXml xmlns=""> <!-- Since all environment variables are the same in all <supportedComponents>, we only need to define them in this main section --> <!-- "IsNative64Bit" in <conditions> of <environment> block is evaluated on "source machine context" in gather phrase --> <!-- and on "target machine context" in apply phrase --> <!-- Therefore, in [x86 -> AMD64 migration] scenario, %HklmWowSoftware% equals to "HKLM\Software" in "source machine environment" --> <!-- and "HKLM\Software\Wow6432Node" in "target machine environment" respectively --> <environment context="System"> <conditions> <condition>MigXmlHelper.IsNative64Bit()</condition> </conditions> <variable name="HklmWowSoftware"> <text>HKLM\Software\Wow6432Node</text> </variable> </environment> <environment context="System"> <conditions> <condition negation="Yes">MigXmlHelper.IsNative64Bit()</condition> </conditions> <variable name="HklmWowSoftware"> <text>HKLM\Software</text> </variable> </environment> <!-- The default DSN location is "C:\program files\Common Files\ODBC\Data Sources", but it can be overriden by registry --> <environment context="System"> <variable name="ODBCDSNDir_System"> <text>%CSIDL_PROGRAM_FILES_COMMON%\ODBC\Data Sources\</text> </variable> <variable name="ODBCDSNDir_System"> <script>MigXmlHelper.GetStringContent("Registry","HKLM\Software\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]")</script> </variable> </environment> <environment context="System"> <!-- We left %ODBCDSNDir_SystemX86% undefined when the source machine is X86 --> <!-- Otherwise, we will gather data from both user-defined DSN folder and "C:\program files\Common Files\ODBC\Data Sources", --> <!-- since %CSIDL_PROGRAM_FILES_COMMONX86% is defined to be "C:\program files\Common Files" on x86 source machine --> <!-- <pattern> below will be ignored, when it is referencing the undefined variable %ODBCDSNDir_SystemX86% --> <conditions> <condition>MigXmlHelper.IsNative64Bit()</condition> </conditions> <variable name="ODBCDSNDir_SystemX86"> <text>%CSIDL_PROGRAM_FILES_COMMONX86%\ODBC\Data Sources\</text> </variable> <variable name="ODBCDSNDir_SystemX86"> <script>MigXmlHelper.GetStringContent("Registry","HKLM\Software\Wow6432Node\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]")</script> </variable> </environment> <!-- The default file DSN location (under user context) has been modified to "My Documents"; see Windows OS Bug #1633815 --> <environment context="User"> <variable name="ODBCDSNDir_User"> <text>%CSIDL_MYDOCUMENTS%\</text> </variable> <variable name="ODBCDSNDir_User"> <script>MigXmlHelper.GetStringContent("Registry","HKCU\Software\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]")</script> </variable> </environment> <!-- User specific setting (Gather and Apply Phrase) --> <rules context="User"> <include> <objectSet> <pattern type="Registry">HKCU\Software\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_User% [*.DSN]</pattern> </objectSet> </include> <!-- "DestinationPriority" means that it won't migrate if the same object exists on the target machine --> <merge script="MigXmlHelper.DestinationPriority()"> <objectSet> <pattern type="Registry">HKCU\Software\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_User% [*.DSN]</pattern> </objectSet> </merge> <!-- We need to use <destinationCleanup> to ensure that the absence of "DefaultDSNDir" value name is also replicated. See Win8 #326933 for more detail --> <destinationCleanup> <objectSet> <pattern type="Registry">HKCU\Software\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> </objectSet> </destinationCleanup> </rules> <!-- System wide setting (Gather and Apply Phrase) --> <rules context="System"> <include> <objectSet> <pattern type="Registry">HKLM\Software\ODBC\ODBC.INI\* [*]</pattern> <pattern type="Registry">HKLM\Software\Wow6432Node\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_System% [*.DSN]</pattern> <pattern type="File">%ODBCDSNDir_SystemX86% [*.DSN]</pattern> </objectSet> </include> <merge script="MigXmlHelper.DestinationPriority()"> <objectSet> <pattern type="Registry">HKLM\Software\ODBC\ODBC.INI\* [*]</pattern> <pattern type="Registry">HKLM\Software\Wow6432Node\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_System% [*.DSN]</pattern> <pattern type="File">%ODBCDSNDir_SystemX86% [*.DSN]</pattern> </objectSet> </merge> <!-- We need to use <destinationCleanup> to ensure that the absence of "DefaultDSNDir" value name is also replicated. See Win8 #326933 for more detail --> <destinationCleanup> <objectSet> <pattern type="Registry">HKLM\Software\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> <pattern type="Registry">HKLM\Software\Wow6432Node\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> </objectSet> </destinationCleanup> </rules> </migXml> <supportedComponents> <!-- 1st <supportedComponent> [source machine = AMD64, target machine = AMD64]: --> <!-- There is no support for [AMD64 -> X86 migration]. USMT would error out before processing our manifest --> <!-- Note the asterisk character at the end of the "name" attribute in <supportedComponentIdentity>: --> <!-- This matches both normal manifest (Vista / Win7) and DL manifest (Srv03) --> <supportedComponent> <supportedComponentIdentity language="*" name="Microsoft-Windows-Microsoft-Data-Access-Components-(MDAC)-ODBC-DriverManager-Dll*" processorArchitecture="amd64" settingsVersionRange="0" /> <migXml xmlns=""> <!-- User specific setting (Apply Phrase) --> <rules context="User"> <merge script="MigXmlHelper.DestinationPriority()"> <objectSet> <pattern type="Registry">HKCU\Software\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_User% [*.DSN]</pattern> </objectSet> </merge> <!-- We need to use <destinationCleanup> to ensure that the absence of "DefaultDSNDir" value name is also replicated. See Win8 #326933 for more detail --> <destinationCleanup> <objectSet> <pattern type="Registry">HKCU\Software\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> </objectSet> </destinationCleanup> </rules> <!-- System wide setting (Apply Phrase) --> <rules context="System"> <merge script="MigXmlHelper.DestinationPriority()"> <objectSet> <pattern type="Registry">HKLM\Software\ODBC\ODBC.INI\* [*]</pattern> <pattern type="Registry">HKLM\Software\Wow6432Node\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_System% [*.DSN]</pattern> <pattern type="File">%ODBCDSNDir_SystemX86% [*.DSN]</pattern> </objectSet> </merge> <!-- We need to use <destinationCleanup> to ensure that the absence of "DefaultDSNDir" value name is also replicated. See Win8 #326933 for more detail --> <destinationCleanup> <objectSet> <pattern type="Registry">HKLM\Software\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> <pattern type="Registry">HKLM\Software\Wow6432Node\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> </objectSet> </destinationCleanup> </rules> </migXml> </supportedComponent> <!-- 2nd <supportedComponent> [source machine = X86, target machine = X86/AMD64]: --> <!-- Note the asterisk character at the end of the "name" attribute in <supportedComponentIdentity>: --> <!-- This matches both normal manifest (Vista / Win7) and DL manifest (Srv03) --> <supportedComponent> <supportedComponentIdentity language="*" name="Microsoft-Windows-Microsoft-Data-Access-Components-(MDAC)-ODBC-DriverManager-Dll*" processorArchitecture="*" settingsVersionRange="0" /> <migXml xmlns=""> <!-- User specific setting (Apply Phrase) --> <rules context="User"> <merge script="MigXmlHelper.DestinationPriority()"> <objectSet> <pattern type="Registry">HKCU\Software\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_User% [*.DSN]</pattern> </objectSet> </merge> <!-- We need to use <destinationCleanup> to ensure that the absence of "DefaultDSNDir" value name is also replicated. See Win8 #326933 for more detail --> <destinationCleanup> <objectSet> <pattern type="Registry">HKCU\Software\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> </objectSet> </destinationCleanup> </rules> <!-- System wide setting (Apply Phrase) --> <rules context="System"> <!-- The first argument in "RelativeMove" is computed with "source machine environment", --> <!-- while the second one is computed with "target machine environment" --> <!-- The first argument in "RelativeMove" must always be "HKLM\Software", since the source machine is x86 --> <!-- For [x86 -> x86 migration]: the second argument in "RelativeMove" is "HKLM\Software" --> <!-- For [x86 -> AMD64 migration]: the second argument in "RelativeMove" is "HKLM\Software\Wow6432Node" --> <!-- Therefore, no location was modified in the first case; but it is modified in the second case --> <locationModify script="MigXmlHelper.RelativeMove('%HklmWowSoftware%\ODBC\ODBC.INI', '%HklmWowSoftware%\ODBC\ODBC.INI')"> <objectSet> <!-- %HklmWowSoftware% here is computed with the "source machine context" --> <pattern type="Registry">%HklmWowSoftware%\ODBC\ODBC.INI\* [*]</pattern> </objectSet> </locationModify> <merge script="MigXmlHelper.DestinationPriority()"> <objectSet> <!-- %HklmWowSoftware% here is computed with the "target machine environment" --> <pattern type="Registry">%HklmWowSoftware%\ODBC\ODBC.INI\* [*]</pattern> <pattern type="File">%ODBCDSNDir_System% [*.DSN]</pattern> </objectSet> </merge> <!-- We need to use destinationCleanup to ensure that the absence of "DefaultDSNDir" value name is also replicated. See Win8 #326933 for more detail --> <!-- %HklmWowSoftware% is computed with the "target machine environment" --> <destinationCleanup> <objectSet> <pattern type="Registry">%HklmWowSoftware%\ODBC\ODBC.INI\ODBC File DSN [DefaultDSNDir]</pattern> </objectSet> </destinationCleanup> </rules> </migXml> </supportedComponent> </supportedComponents> <!-- Use a special name for better output in log file --> <migrationDisplayID>ReplacementManifests</migrationDisplayID> </migration> </assembly>