Erstellen eines BizTalk Server-VHD-Images mit Sysprep (BizTalk Server-Beispiel)
Sysprep erstellt eine Momentaufnahme eines virtuellen Computers mit installierter BizTalk Server für die schnelle Bereitstellung auf anderen virtuellen Computern.
Voraussetzungen
Bevor Sie Sysprep verwenden, sollten Sie über kenntnisse zur Verwendung virtueller Computer mit Hyper-V verfügen. Sie sollten auch über einen virtuellen Computer mit einem sauber, der typischen Installation von BizTalk Server und allen erforderlichen Komponenten verfügen.
Sysprep kann unter Windows Server 2008 und Windows Vista mit SP1 ausgeführt werden.
Ziel des Beispiels
Sysprep erstellt eine VHD einer BizTalk Server Installation (einschließlich des Betriebssystems und aller Voraussetzungen) für eine schnelle Bereitstellung auf anderen virtuellen Computern. Ein mit Sysprep erstelltes Image wählt einen neuen Computernamen, um beim ersten Start der Domäne beizutreten. Damit BizTalk Server ordnungsgemäß ausgeführt wird, müssen verschiedene Vorkommen des Computernamens in der Registrierung und in den Datenbanken aktualisiert werden.
In diesem Dokument wird vorausgesetzt, dass BizTalk Server für die Ausführung auf einem einzelnen Computer konfiguriert ist. Es wird gezeigt, wie andere Vorkommen des Computernamens durch den neuen Namen ersetzt werden.
Speicherort dieses Beispiels
Das Beispiel ist im folgenden SDK-Verzeichnis gespeichert:
<Beispielpfad>\Admin\Sysprep\
In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.
Hinweis
Die in der folgenden Tabelle aufgeführten VBS- und CMD-Dateien sind in den Sysprep-Antwortdateien (Sysprep.xml und SetupCompletecmd.txt) automatisiert und werden hier nur zu Referenzzwecken genannt. Wenn Sie diese Skripts manuell ausführen müssen, führen Sie sie in der Reihenfolge aus, in der sie in der Tabelle aufgeführt sind.
Datei | BESCHREIBUNG |
---|---|
Sysprep.xml | Antwortdatei |
SetupCompletecmd.txt | Antwortdatei |
ReplaceMachineName.vbs | Zweck: Öffnet eine Datei und ersetzt alle Instanzen einer angegebenen Zeichenfolge durch den aktuellen Computernamen. Nützlich, um andere Skript- und XML-Dateien vorzubereiten und um bm.exe.config zu aktualisieren. Verwendung: ReplaceMachineName.vbs <Datei zum Öffnen><der zu ersetzenden Zeichenfolge> |
UpdateRegistry.vbs | Zweck: Updates den Computernamen, der in den BizTalk-Registrierungseinstellungen gespeichert ist. Verwendung: UpdateRegistry.vbs <UpdateInfo.xml>. Achten Sie darauf, alle Vorkommen von $(OLDCOMPUTERNAME) und $(NEWCOMPUTERNAME) in dieser XML-Datei zu ersetzen. |
UpdateDatabase.vbs | Zweck: Updates den Computernamen, der in den BizTalk-Verwaltungsdatenbanken gespeichert ist. Verwendung: UpdateDatabase.vbs <UpdateInfo.xml> |
UpdateBAMDb.vbs | Zweck: Updates den computernamen, der in den BAM-Datenbanken gespeichert ist. Verwendung: UpdateBamDb.vbs <UpdateInfo.xml> |
UpdateSSO.cmd | Zweck: Konfiguriert den Geheimserver des einmaligen Anmeldens (Single Sign-On, SSO) von Enterprise neu. Verwendung: sso.cmd <UpdateInfo.xml> |
UpdateSqlServerAndInstanceName.cmd | Zweck: Konfiguriert SQL und SQL Express neu, startet eine Reihe abhängiger Dienste neu und registriert BAMAlerts erneut. Verwendung: Bearbeiten Sie das Skript, ersetzen Sie alle Instanzen von $(NEWCOMPUTERNAME), und aktualisieren Sie serviceusername und servicepassword für BAM-Warnungen. Führen Sie dann UpdateSqlServerAndInstanceName.cmd aus, und übergeben Sie dabei den alten Computernamen als erstes Argument. |
Erstellen der Antwortdateien und Ausführen von Sysprep
So erstellen Sie die Antwortdateien
Installieren und konfigurieren Sie BizTalk Server auf einem virtuellen Computer. Verwenden Sie die Standardoptionen für Installation und Konfiguration, da Sysprep benutzerdefinierte Installationen nicht unterstützt.
Kopieren Sie den Inhalt des Ordner scripts in das Verzeichnis C:\Scripts auf dem virtuellen Computer.
Bereiten Sie eine Sysprep-Antwortdatei vor, indem Sie die folgenden Zeilen in Sysprep.xml ändern. (Hinweis: Diese Zeilen sind vor ihnen mit einem "!" gekennzeichnet.) Sie können diese als Vorlage verwenden oder eigene Erstellen und Kopieren des <Abschnitts FirstLogonCommands> .
$(OLDCOMPUTERNAME): Ersetzen Sie dies durch den aktuellen Computernamen des virtuellen Computers.
Benutzerkonten
Kennwörter
Unternehmensdetails sollten ebenfalls in UpdateSqlServerAndInstance.cmd und in Sysprep.xml aktualisiert werden.
Alternativ können Sie eine Sysprep-Antwortdatei von Grund auf neu erstellen, indem Sie das Automated Installation Kit (AIK) unter Windows Server 2008 verwenden. Stellen Sie sicher, dass Der <Abschnitt FirstLogonCommands mit den Beispielen> übereinstimmt, damit die BizTalk-Skripts beim ersten Start ausgeführt werden.
So führen Sie Sysprep aus
Öffnen Sie eine Eingabeaufforderung, und führen Sie Sysprep aus. Der Befehl sieht in etwa wie folgt aus:
C:\windows\system32\sysprep\sysprep.exe /oobe /generalize /shutdown /unattend:c:\scripts\unattend_Win2K8x64.xml
Die Ausführung von Sysprep dauert rund eine halbe Stunde. Nach Abschluss der Ausführung wird der virtuelle Computer automatisch heruntergefahren.
Führen Sie danach vorhandene Momentaufnahmen zusammen, und kopieren Sie die VHD-Datei an einen sicheren Ort.
Das VHD-Image, das das Betriebssystem, BizTalk Server und alle erforderlichen Komponenten umfasst, kann nun auf anderen virtuellen Computern bereitgestellt werden.
SetupCompletecmd.txt
del /Q /F c:\windows\system32\sysprep\sysprep.xml
SqlCmd -s . -d Repository -A -Q "drop login [PDC08-CSD\Administrator]"
SqlCmd -s . -d Repository -A -Q "create login [$(COMPUTERNAME)\Administrator] from windows"
SqlCmd -s . -d Repository -A -Q "EXEC sp_changedbowner [$(COMPUTERNAME)\Administrator]"
Sysprep.xml
- <!--
References:
"Unattended Installation Settings Reference" @ https://technet.microsoft.com/library/cc749204.aspx
"How to Sysprep in Windows 2008 " @ http://briandesmond.com/blog/how-to-sysprep-in-windows-2008
Make sure to modify the values specified for the
<Credentials> and <DomainAccounts> sections of this unattend file.
SetupComplete.cmd should be copied to the C:\Windows\Setup\Scripts\ folder before running sysprep.
Contents of SetupComplete.cmd:
del /Q /F c:\windows\system32\sysprep\sysprep.xml
SqlCmd -s . -d Repository -A -Q "drop login [PDC08-CSD\Administrator]"
SqlCmd -s . -d Repository -A -Q "create login [$(COMPUTERNAME)\Administrator] from windows"
SqlCmd -s . -d Repository -A -Q "EXEC sp_changedbowner [$(COMPUTERNAME)\Administrator]"
Sysprep.xml (this file) should be copied to the C:\Windows\System32\sysprep\ folder.
Run sysprep with the following options:
sysprep /generalize /oobe /shutdown /unattend:sysprep.xml
-->
<?xml version="1.0" encoding="utf-8" ?>
- <unattend xmlns="urn:schemas-microsoft-com:unattend">
- <settings pass="oobeSystem">
- <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback>en-US</UILanguageFallback>
<UserLocale>en-US</UserLocale>
</component>
- <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <UserAccounts>
- <!--
This sets the password for the Administrator account back to pass@word1
-->
- <AdministratorPassword>
<Value>pass@word1</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
- <!--
Enter the appropriate value for the <Name> and <Domain> elements here,
this group/account will be added to the local Administrators and Remote Desktop Users groups.
-->
- <DomainAccounts>
- <DomainAccountList wcm:action="add">
- <DomainAccount wcm:action="add">
<Name>MSMQ4TR</Name>
<Group>Administrators;RemoteDesktopUsers</Group>
</DomainAccount>
<Domain>Northamerica.corp.microsoft.com</Domain>
</DomainAccountList>
- <!--
Additional DomainAccountList section. Uncomment/modify this section if you need to add
groups / users from multiple domains to the local Administrators and Remote Desktop Users groups.
<DomainAccountList wcm:action="add">
<DomainAccount wcm:action="add">
<Name>OsloVM_NTDev</Name>
<Group>Administrators;RemoteDesktopUsers</Group>
</DomainAccount>
<Domain>Ntdev.corp.microsoft.com</Domain>
</DomainAccountList>
-->
</DomainAccounts>
</UserAccounts>
- <!--
The new computer name is generated using a combination of <RegisteredOwner>, <RegisteredOrganization>, and random alphanumeric characters. Since <RegisteredOrganization> is blank, the new computer name will be OsloVPC-*******.
-->
<RegisteredOwner>OsloVPC</RegisteredOwner>
<TimeZone>Pacific Standard Time</TimeZone>
- <Display>
<ColorDepth>16</ColorDepth>
<HorizontalResolution>1024</HorizontalResolution>
<VerticalResolution>768</VerticalResolution>
</Display>
<RegisteredOrganization />
<StartPanelOff>true</StartPanelOff>
<ShowWindowsLive>false</ShowWindowsLive>
<DoNotCleanTaskBar>true</DoNotCleanTaskBar>
<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
- <VisualEffects>
<FontSmoothing>ClearType</FontSmoothing>
</VisualEffects>
</component>
</settings>
- <settings pass="specialize">
- <component name="Microsoft-Windows-IE-ESC" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<IEHardenAdmin>false</IEHardenAdmin>
<IEHardenUser>false</IEHardenUser>
</component>
- <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <!--
Enter credentials for a user account that has permissions to join a computer to the domain specified in the <JoinDomain> element. (Note: you must enter your password in plaintext here. This file will be deleted at the conclusion of Windows setup by SetupComplete.cmd in the C:\Windows\Setup\Scripts\ folder. For more information see the bottom of "How to Sysprep in Windows 2008" @ http://briandesmond.com/blog/how-to-sysprep-in-windows-2008)
-->
- <Identification>
- <Credentials>
<Domain>northamerica</Domain>
<Username>davidhamilton</Username>
<Password>******</Password>
</Credentials>
<JoinDomain>Redmond.corp.microsoft.com</JoinDomain>
</Identification>
</component>
- <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <!--
By specifying a value of "*" for <ComputerName>, Windows setup will generate a new computer name using a combination of <RegisteredOwner>, <RegisteredOrganization>, and random alphanumeric characters. Since <RegisteredOrganization> is blank, the new computer name will be OsloVPC-*******
-->
<ComputerName>*</ComputerName>
<RegisteredOrganization />
- <!--
The new computer name is generated using a combination of <RegisteredOwner>, <RegisteredOrganization>, and random alphanumeric characters. Since <RegisteredOrganization> is blank, the new computer name will be OsloVPC-*******.
-->
<RegisteredOwner>OsloVPC</RegisteredOwner>
<ShowWindowsLive>false</ShowWindowsLive>
<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
- <!--
This setting will copy the profile of the original image to the renamed image when set to true
-->
<CopyProfile>true</CopyProfile>
<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
<DoNotCleanTaskBar>true</DoNotCleanTaskBar>
</component>
</settings>
- <settings pass="generalize">
- <component name="Microsoft-Windows-Security-Licensing-SLC" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
- <component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
</component>
- <component name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
</component>
</settings>
<cpi:offlineImage cpi:source="catalog:e:/sources/install_windows longhorn serverenterprise.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
- <!--
When the virtual machine is started, Windows setup will:
- Assign the copy a random computer name: "OsloVPC-*****"
- Reset the local Administrators password to pass@word1
- Join the domain specified in the sysprep.xml file (under Microsoft-Windows-UnattendedJoin\Identification\JoinDomain)
- Add the groups/users specified under <DomainAccounts> to the local Administrators and the local Remote Desktop Users group.
Known issues:
- Sysprep removes the Server Manager icon from the Quick Launch toolbar, investigating how to prevent this.
- To start SQL Server Management Studio, either connect to the new server name (OsloVPC-*******) or else connect to ".". The "Server name:" drop-down box in SQL Server Management Studio is pre-populated with "PDC08-CSD" which will not work since the computer name has been changed by sysprep.
- There are some known issues associated with changing the computer name; renaming the computer after everything was installed was not a design, development or test requirement for this milestone.
-->
Kommentare
Microsoft Office SharePoint Server wird mit diesen Skripts wird nicht geändert. Wenn Sie den Windows SharePoint Services-Adapter verwenden, müssen Sie wahrscheinlich Microsoft Office SharePoint Server neu konfigurieren und dann den Schlüssel SharePointAdapterManagementGroup unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BizTalk Server\3.0\TPM aktualisieren.