Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Kristina Olson
Die Version v2.1 von Web Deploy installiert mehrere PowerShell-Skripts, mit denen Sie Ihren IIS-Server ganz einfach konfigurieren können, damit Benutzer sie mithilfe von Web Deploy veröffentlichen können. Auf dieser Seite wird gezeigt, wie Sie mithilfe dieser Skripts eine Standardveröffentlichungswebsite erstellen, die Veröffentlichung für eine neue oder vorhandene Website und einen vorhandenen Benutzer aktivieren, SQL- oder MySQL-Datenbanken veröffentlichen oder Delegierungsregeln einrichten – alles mithilfe von PowerShell.
Die skripts, die Sie verwenden werden, sind:
- SetupSiteForPublish.ps1
- CreateSqlDatabase.ps1
- CreateMySqlDatabase.ps1
- AddDelegationRules.ps1
Anforderungen
Der Server muss über ein Betriebssystem verfügen, das im Lieferumfang von IIS7 enthalten ist. Dies bedeutet entweder Windows Server 2008 oder Windows Server 2008 R2. Sie müssen ein Administrator auf dem Computer sein.
Stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:
- PowerShell2 muss installiert werden (dies ist in Windows Server 2008 R2 integriert; für Windows Server 2008 können Sie PowerShell2 als Update von hier abrufen: https://www.catalog.update.microsoft.com/ScopedViewInline.aspx?updateid=0be83604-db27-4b99-976a-136a92bd579b. Möglicherweise ist ein Neustart erforderlich.
- Die Webserverrolle (IIS) muss im Server-Manager aktiviert sein.
- Der Webdienstrollendienst von IIS ("Verwaltungsdienst") muss im Server-Manager aktiviert sein.
- Um die PowerShell-Datenbankskripts zu verwenden, muss der Server Zugriff auf eine SQL- oder MySQL-Datenbank haben. SQL Server-Verwaltungsobjekte müssen auch für SQL installiert werden.
- Web Deploy muss mit der Integrationskomponente des Verwaltungsdiensts installiert werden. (Damit diese Option im Web Deploy-Installationsprogramm angezeigt wird, muss der Webdienst zuerst aktiviert sein.)
Allgemeine PowerShell-Anweisungen
Starten Sie ein PowerShell-Befehlsfenster.
Klicken Sie in der Taskleiste auf das PowerShell-Symbol, oder klicken Sie auf "Start", geben Sie PowerShell ein, und wählen Sie Windows PowerShell aus.
(Das blaue Symbol)Stellen Sie sicher, dass Ihre Ausführungsrichtlinie das Ausführen von Skripts zulässt.
Geben Sie "Get-ExecutionPolicy" ein. Wenn sie eingeschränkt ist (Standardeinstellung), müssen Sie auf eine eingeschränktere Einstellung zurücksetzen, z. B. durch Eingabe von "Set-ExecutionPolicy AllSigned". Die Einstellung "AllSigned" lässt die Ausführung signierter Skripts zu, wird Sie jedoch auffordern, falls diese (die Skripts) nicht vertrauenswürdig sind.
Weitere Informationen zu Ausführungsrichtlinieneinstellungen finden Sie unter Verwenden des Set-ExecutionPolicy-Cmdlets.
Wechseln Sie zum Verzeichnis "Web Deploy-Skripts".
- Typ
cd '%programfiles%\IIS\Microsoft Web Deploy v2\Scripts'(ersetze%programfiles%durch den tatsächlichen Pfad, z. B.C:\Program Files).
- Typ
Verwenden des SetupSiteForPublish-Skripts zum Erstellen einer standardmäßigen Veröffentlichungswebsite (keine Datenbanken)
Führen Sie das skript SetupSiteForPublish.ps1 ohne Argumente aus:
Was dies tut:
Das Skript erstellt einen Benutzer und eine Website für die Veröffentlichung von Nicht-Administratoren und speichert die Veröffentlichungsprofilinformationen in einer Datei auf dem Desktop. Genauer gesagt wird eine Website namens "WDeploySite" mit physischem Websitestamm unter %systemdrive%\inetpub\WDeploySite. Der Standort verfügt über einen übereinstimmenden Anwendungspool, WDeployAppPool und wird standardmäßig Port 8080 zugewiesen (oder der nächste verfügbare Port, wenn ein anderer Standort 8080 verwendet). Das Skript erstellt außerdem einen lokalen Windows-Benutzer ohne Administratorrechte namens "WDeploySiteuser" und gewährt diesem Benutzer Vollzugriff auf die ACLs des Ordners "WDeploySite" und die IIS-Manager-Berechtigungen für die Website. Die Einstellungsinformationen werden auf dem Desktop in einer Datei namens "WDeploy.PublishSettings" gespeichert. Diese Datei kann von WebMatrix (oder potenziell Visual Studio) für die Veröffentlichung auf der Website verwendet werden. Dieses Profil enthält zu diesem Zeitpunkt keine Datenbankveröffentlichungsinformationen.
Aktivieren Sie das Web Deploy-Publishing für jede Site und jeden Nutzer mithilfe des Skripts "SetupSiteForPublish":
Skript: SetupSiteForPublish.ps1
Beschreibung: Für eine festgelegte Website und ein Benutzerkonto ermöglicht es dem bestimmten Benutzer, auf der angegebenen Website zu veröffentlichen. Das Skript erstellt das Benutzerkonto, die Website und den Anwendungspool. legt die Verzeichnis-ACLs und IIS-Manager-Berechtigungen für die Website fest; und speichert die Einstellungsinformationen in einer Datei.
Parameter:
| Name | Beschreibung | Standardwert | Hinweise |
|---|---|---|---|
| siteName | Name der Website. Wenn die Website nicht vorhanden ist, wird sie erstellt. | WDeploySite | |
| sitePhysicalPath | Speicherort der physischen Datei für den Websiteinhalt. Wenn das Verzeichnis nicht vorhanden ist, wird es erstellt. | %systemdrive%\inetpub\WDeploySite |
|
| siteAppPoolName | Name des Anwendungspools, der der Website zugeordnet wird. Wenn der Anwendungspool nicht vorhanden ist, wird er erstellt. | WDeployAppPool | Es wird empfohlen, einen Anwendungspool pro Standort zu verwenden. |
| sitePort | Port für die Websitebindungen. | Erster Port von 8080-8200, der nicht von einer anderen Website verwendet wird. | Möglicherweise ist eine Firewallregel erforderlich, um den Port für Remotedatenverkehr zu öffnen. |
| deploymentUserName | Name des Benutzers, dem Der Zugriff auf die Website gewährt werden soll. Wenn der Benutzer nicht vorhanden ist, wird ein Nicht-Administrator-Benutzer erstellt. | WDeploySiteuser | |
| BereitstellungsBenutzerPasswort | Kennwort für den Bereitstellungsbenutzer. Wenn kein Kennwort angegeben ist, wird ein Kennwort automatisch generiert und in der Einstellungsdatei gespeichert. | [automatisch generiert] | |
| managedRunTimeVersion | Wenn angegeben, wird versucht, die angegebene Laufzeitversion für den Anwendungspool festzulegen. Wenn keine übereinstimmende Laufzeitversion gefunden wird, wird der Anwendungspool standardmäßig verwendet. | Standardeinstellungen für Anwendungspools | Beispielformat "v2.0" oder "v4.0" |
| VeröffentlichenEinstellungSpeicherPfad | Ein vorhandenes Verzeichnis, in dem die Einstellungsdatei gespeichert wird. | Desktop des aktuellen Benutzers | Muss ein vorhandenes Verzeichnis sein. Wenn das angegebene Verzeichnis nicht vorhanden ist, tritt ein Fehler auf. |
| VeröffentlichenEinstellungsDateiname | Name der Einstellungsdatei, einschließlich der Erweiterung. | WDeploy.PublishSettings | Denken Sie daran, die Erweiterung einzuschließen. Wenn die Datei bereits vorhanden ist, werden die darin aufgeführten Websiteinformationen überschrieben. |
Beispiele:
Aktivieren sie die Veröffentlichung für einen vorhandenen Benutzer auf einer vorhandenen Website (das Kennwort wird nicht in der Einstellungsdatei gespeichert):
.\SetupSiteForPublish.ps1 -siteName ExistingSite -deploymentUserName UserA -publishSettingSavePath C:\profiles -publishSettingFileName UserA.PublishSettings
Aktivieren Sie die Veröffentlichung für einen neuen Benutzer auf einer neuen Website mit einem benutzerdefinierten Namen und Speicherort für die Veröffentlichungseinstellungsdatei:
.\SetupSiteForPublish.ps1 -siteName NewSite -sitePhysicalPath C:\inetpub\NewSiteRoot -siteAppPoolName NewSitePool -sitePort 81 -deploymentUserName NewSiteUser -deploymentUserPassword Passw0rd -publishSettingSavePath C:\profiles -publishSettingFileName NewSite.PublishSettings
Die PublishSettings-Datei enthält auch das neue Benutzerkennwort. Beachten Sie, dass die Verbindungszeichenfolgenfelder leer sind – sie können manuell ausgefüllt werden, oder Sie können dies dem Profil mithilfe der Skripts zur Datenbankgenerierung hinzufügen:
<?xml version="1.0" encoding="utf-8"?>
<publishData>
<publishProfile publishUrl="RWS-2008R2" msdeploySite="NewSite" destinationAppUrl="http://RWS-2008R2:81" mySQLDBConnectionString="" SQLServerDBConnectionString="" profileName="Default Settings" publishMethod="MSDeploy" userName="NewSiteUser" userPWD="Passw0rd" savePWD="True" />
</publishData>
Erstellen einer SQL-Datenbank für ein Veröffentlichungskonto mithilfe des CreateSqlDatabase-Skripts
Skript: CreateSqlDatabase.ps1
Beschreibung: Erstellt eine Datenbank, eine Anmeldung, einen Datenbankbenutzer mit db_owner Berechtigungen für die Datenbank und speichert die entsprechenden Verbindungszeichenfolgeninformationen in einer Einstellungsdatei.
Parameter:
| Name | Beschreibung | Standardwert | Hinweise |
|---|---|---|---|
| databaseName | Der Name der datenbank, die erstellt werden soll. | wDeploySqldb | |
| datenbankBenutzerName | Name des Datenbankbenutzers und des Logins. | wdeploySqlUser | Geben Sie immer einen neuen Benutzer an, oder Sie können das Anmeldekennwort eines Benutzers zurücksetzen und die vorherigen Verbindungsanmeldeinformationen des Benutzers ungültig machen. |
| DatenbankBenutzerPasswort | Kennwort für den Datenbankbenutzer und die Anmeldung. Wenn kein Kennwort angegeben wird, wird automatisch ein Kennwort generiert. | [automatisch generiert] | In einigen Fällen kann das automatisch generierte Kennwort Zeichen enthalten, die Probleme mit bestimmten Veröffentlichungsclients verursachen. Erwägen Sie das Ändern des Skripts, wenn Sie das Skript für die automatisierte Datenbankerstellung verwenden. |
| databaseAdminUser | SQL Server-Administratorbenutzername (in der Regel "sa"). | ERFORDERLICH | |
| databaseAdminPassword | Kennwort für das SQL Server-Administratorkonto. | ERFORDERLICH | |
| sqlServerInstanceName | Speicherort des SQL-Servers. | .\Sqlexpress |
Allgemein
| VeröffentlichenEinstellungSpeicherPfad | Ein vorhandenes Verzeichnis, in dem die Einstellungsdatei gespeichert wird. | Desktop des aktuellen Benutzers | Muss ein vorhandenes Verzeichnis sein. Wenn das angegebene Verzeichnis nicht vorhanden ist, tritt ein Fehler auf. |
|---|---|---|---|
| VeröffentlichenEinstellungsDateiname | Name der Einstellungsdatei, einschließlich der Erweiterung. | WDeploy.PublishSettings | Denken Sie daran, die Erweiterung einzuschließen. Wenn die Datei bereits vorhanden ist, werden die darin aufgeführten Websiteinformationen überschrieben. |
Beispiele:
Erstellen einer Datenbank mit dem Benutzer unter Verwendung der Standardwerte (lokale SQLExpress-Datenbank):
.\CreateSqlDatabase.ps1
Erstellen Sie eine neue Datenbank, und fügen Sie die Verbindungszeichenfolgeninformationen zur vorhandenen Veröffentlichungseinstellungsdatei c:\profiles\UserA.PublishSettingshinzu:
PS C:\Program Files\IIS\Microsoft Web Deploy V2\Scripts> .\CreateSqlDatabase.ps1 -databaseName UserADb -databaseUserName UserADbUser -databaseUserPassword Passw0rdA -databaseAdminUser sa -databaseAdminPassword Passw0rd -sqlServerInstanceName .\SQLExpress -publishSettingSavePath C:\profiles -publishSettingFileName UserA.PublishSettings
Erstellen einer MySQL-Datenbank für ein Veröffentlichungskonto mithilfe des Skripts CreateMySqlDatabase
Skript: CreateMySqlDatabase.ps1
Beschreibung: Erstellt eine Datenbank, einen Datenbankbenutzer mit allen Berechtigungen für die Datenbank (bei localhost) und speichert die Verbindungszeichenfolgeninformationen in einer Einstellungsdatei.
Parameter:
| Name | Beschreibung | Standardwert | Hinweise |
|---|---|---|---|
| databaseName | Der Name der datenbank, die erstellt werden soll. | WDeployDb | |
| databaseUserName | Name des Datenbankbenutzers. | WDeployUser | |
| DatenbankBenutzerPasswort | Kennwort für den Datenbankbenutzer und die Anmeldung. Wenn kein Kennwort angegeben wird, wird automatisch ein Kennwort generiert. | [automatisch generiert] | In einigen Fällen kann das automatisch generierte Kennwort Zeichen enthalten, die Probleme mit bestimmten Veröffentlichungsclients verursachen. Erwägen Sie das Ändern des Skripts, wenn Sie das Skript für die automatisierte Datenbankerstellung verwenden. |
| databaseAdminUser | Name für den Datenbankadministrator, in der Regel "Stamm". | ERFORDERLICH | Wenn sie nicht angegeben wird, werden Sie zur Eingabe dieses Parameters aufgefordert. |
| databaseAdminPassword | Kennwort für das Serveradministratorkonto. | ERFORDERLICH | Sie werden aufgefordert, einen Wert für diesen Parameter anzugeben, wenn Sie keinen bereitstellen. |
| serverHostName | Speicherort des MySQL-Servers | localhost | *Siehe Hinweis unten in der Tabelle |
Allgemein:
| VeröffentlichenEinstellungSpeicherPfad | Ein vorhandenes Verzeichnis, in dem die Einstellungsdatei gespeichert wird. | Desktop des aktuellen Benutzers | Muss ein vorhandenes Verzeichnis sein. Wenn das angegebene Verzeichnis nicht vorhanden ist, tritt ein Fehler auf. |
|---|---|---|---|
| VeröffentlichenEinstellungsDateiname | Name der Einstellungsdatei, einschließlich der Erweiterung. | WDeploy.PublishSettings | Denken Sie daran, die Erweiterung einzuschließen. Wenn die Datei bereits vorhanden ist, werden die darin aufgeführten Websiteinformationen überschrieben. |
*Wenn Sie einen Nicht-Localhost-Wert für serverHostName angeben und die Berechtigungen für den Benutzer nicht ändern, kann der Benutzer möglicherweise nicht auf seine Datenbank zugreifen. Standardmäßig bieten die in diesem Skript erteilten Berechtigungen den Datenbankbenutzerzugriff vom lokalen Computer aus. Wenn der Datenbankserver nicht auf demselben Computer gehostet wird, sollte der Berechtigungserteilungsbereich des PowerShell-Skripts geändert werden, um allgemeinere Berechtigungen zu erteilen, z. B. durch Ändern der folgenden Skriptzeile, um den Zugriff von einem beliebigen Computer zu ermöglichen:
Standardskriptberechtigungszeile:
$createUserScript = "Grant all privileges on {0}.* to '{1}'@'localhost' identified by '{2}';"
Geänderte Skriptberechtigungszeile:
$createUserScript = "Grant all privileges on {0}.* to '{1}'@'%' identified by '{2}';"
Beispiele:
Erstellen Sie eine Datenbank mit einem Benutzer mit Hilfe der Standardwerte.
.\CreateMySqlDatabase.ps1
Erstellen Sie eine neue Datenbank, und fügen Sie die Verbindungszeichenfolgeninformationen zur vorhandenen Veröffentlichungseinstellungsdatei c:\profiles\UserA.PublishSettingshinzu:
.\CreateMySqlDatabase.ps1 -databaseName UserADb -databaseUsername UserADbUser -databaseUserPassword Passw0rd -databaseAdminUser root -databaseAdminPassword iis6!dfu -publishSettingSavePath C:\profiles -publishSettingFileName UserA.PublishSettings
Einrichten von Delegierungsregeln für den Server mithilfe des Skripts "AddDelegationRules"
Skript: AddDelegationRules.ps1
Beschreibung: Dieses Skript wird automatisch während einer vollständigen Installation vom Installationsprogramm ausgeführt, aber wenn Sie die Regeln nicht vollständig installiert haben oder die Regeln jederzeit reparieren möchten, können Sie dieses AddDelegationRules-Skript erneut ausführen.
Parameter:
| Name | Beschreibung | Standardwert | Hinweise |
|---|---|---|---|
| erhöhterBenutzername | Name für das Benutzerkonto, dem Schreibzugriff auf die applicationHost.config Datei des Servers gewährt wird. Dieser Benutzer wird als Run-as-Benutzer in der appPoolPipeline, appPoolNetFx und createApp-Regeln verwendet. | WDeployUser | Erstellt nur einen lokalen Windows-Benutzer und funktioniert nicht, wenn die gemeinsame Konfiguration aktiviert ist. Das Kennwort für dieses Benutzerkonto wird zurückgesetzt, wenn das Skript ein zweites Mal ausgeführt wird. |
| erhöhtes Passwort | Wird automatisch generiert, wenn nicht angegeben. | [automatisch generiert] | |
| adminUsername | Name für ein Administratorbenutzerkonto, das als "Run-As" Benutzer in der recycleApp-Regel verwendet wird. | WDeployAdmin | Erstellt nur einen lokalen Windows-Benutzer und funktioniert nicht, wenn die freigegebene Konfiguration aktiviert ist. Das Kennwort für dieses Benutzerkonto wird zurückgesetzt, wenn das Skript ein zweites Mal ausgeführt wird. |
| Admin-Passwort | Automatisch generiert, wenn nicht angegeben | [automatisch generiert] | |
| ignorePasswordResetErrors | Wechseln. Wenn der Benutzername mit erhöhten Rechten auf ein vorhandenes Konto verweist, kann das Skript das Kennwort für das Konto zurücksetzen. | [ausgelassen - Zurücksetzen von Benutzerwörtern nicht zulässig] | Das Zurücksetzen eines Benutzerkennworts kann dazu führen, dass der Benutzer den Zugriff auf Daten verliert. Dieser Schalter sollte mit Vorsicht verwendet werden. Weitere Informationen finden Sie unter https://windows.microsoft.com/windows-vista/What-are-the-risks-of-resetting-a-password. Beachten Sie auch, dass das neue Benutzerkennwort nicht gespeichert und später nicht abgerufen werden kann. |