Командлеты PowerShell для веб-развертывания

Овайс Шайх

Веб-развертывание версии 3.0 поставляется с командлетами PowerShell для выполнения большинства задач, поддерживаемых API веб-развертывания [Microsoft.Web.Deployment]. Дополнительные сведения об этом API см. здесь. Эти командлеты находятся в оснастке С именем WDeploySnapin3.0, который устанавливается и регистрируется в качестве оснастки для обычной или более поздней установки веб-развертывания. Чтобы использовать эти командлеты, добавьте оснастки при каждом запуске консоли PowerShell или добавьте оснастки в профиль PowerShell, который автоматически загружает оснастки все консоли.

Чтобы добавить при загрузке консоли PowerShell, выполните следующую команду в окне консоли:

Add-PSSnapin WDeploySnapin3.0

Чтобы добавить его в профиль PowerShell, выполните следующие действия.

  1. Если у вас уже есть профиль PowerShell, перейдите к шагу 4.
  2. Создайте папку WindowsPowerShell в разделе <"Мои документы>".
  3. Создание файла с именем Microsoft.PowerShell_profile.ps1
  4. Добавьте эту строку в файл профиля PowerShell: Add-PSSnapin WDeploySnapin3.0

Несколько моментов, которые следует отметить:

  1. Консоль PowerShell работает в 64-разрядных системах и работает в .Net 2.0, за исключением Windows8. Если возникают проблемы из-за одного или обоих из них, обратитесь к разделу устранения неполадок для решений.
  2. Все командлеты, создающие пакет веб-развертывания, создают параметры для наиболее распространенных задач и командлетов, которые используют его, принимают значения параметров.
  3. Существует только один командлет удаления для удаления сайта или приложения под ним.
  4. Веб-развертывание имеет параметры, но они являются ортогональными для параметров командлета PowerShell. Если параметры ссылаются в этом документе, это означает параметры командлета. Параметры веб-развертывания были специально вызваны в качестве параметров веб-развертывания.

I. Публикация файла Параметры

Все приведенные ниже командлеты имеют возможность выполняться для удаленного артефакта, например удаленного сервера или удаленной базы данных. Для них требуется больше, чем только учетные данные. Например, требуется имя удаленного сервера, удаленная база данных строка подключения, следует ли разрешить публикацию на сервере с помощью тестового сертификата и т. д. Для удобства использования передача учетных данных от администратора сервера к потребителю и т. д. Новый тип файла был создан, какие группы этих параметров объединяются. Этот файл называется файлом параметров публикации, заканчивающийся в .publishsettings. Это используется Visual Studio для публикации, а также WebMatrix.

Чтобы создать такой файл для использования другими командлетами и изменить его New-WDPublish Параметры можно использовать. Если имя файла не указано, он создаст новый файл в каталоге документов с именем <guid.publishsettings>. Этот путь будет отображаться при создании файла. Если указано имя файла и файл не существует, он будет создан, как описано выше в папке, указанной путем, однако путь к файлу должен быть допустимым. Если файл существует только значения атрибутов, указанных при выполнении команды, будут изменены, за исключением атрибутов в файле, который неизвестен и будет удален.

Пример. Этот пример получает объект учетных данных, а затем передает его в новый командлет файла параметров публикации вместе с другими параметрами.

$cred = Get-Credential
New-WDPublishSettings -ComputerName owais-1 -Site Site1 -Credentials $cred -AllowUntrusted -SiteUrl "https://www.mywebsite.com" -FileName C:\pprofiles\mywebsite.publishsettings -AgentType wmsvc
Get-WDPublishSettings cmdlet allows to load values from a publish setting file into PublishSettings object.
$publishsettings=Get-WDPublishSettings C:\pprofiles\mywebsite.publishsettings

II. Резервное копирование

Все командлеты резервного копирования имеют позиционный параметр (это второй, за исключением backup-wdserver, где он является первым позициальным параметром), который называется выходными данными. Путь к папке, в которой требуется создать резервную копию. Резервное копирование всегда является zip-пакетом веб-развертывания. Дополнительные сведения о пакетах веб-развертывания см. в поставщике пакетов. Если путь не указан, резервные копии создаются в папке с именем "Веб-развертывание резервных копий" в папке документов пользователя. Резервные копии называются machinename_nameofproviderused_[Siteorapporfoldername(необязательно)]_timestamp.zip.

Все эти командлеты будут работать локально, если данные удаленного сервера не предоставляются путем передачи файла параметров публикации для параметра SourcePublish Параметры.

А. IIS

Все командлеты IIS будут работать с установленными службами IIS версии 7 или выше.

1. Сервер

Backup-WDServer

Описание. Это без каких-либо аргументов создает резервную копию текущего сервера, где выполняется эта команда. Он использует известный поставщик веб-сервера для этой операции. Поэтому созданный пакет содержит все артефакты, которые будут содержаться в пакете веб-сервера. Дополнительные сведения об этом поставщике см. здесь.

Параметры командлета: параметр ConfigOnly позволяет исключить все содержимое, а параметры SkipFileList и SkipFolderList позволяют выборочно исключить один или несколько файлов или папок из пакета.

Примеры:

Это создаст резервную копию всего веб-сервера, кроме содержимого:

Backup-WDServer -SourcePublishSettings c:\profiles\myserver.publishsettings -ConfigOnly

Создайте список файлов, которые следует пропустить. Это стандартные регулярные выражения.

$list = @('\\site2\\iisstart.htm','\\site2\\welcome.png')
Backup-WDServer –SkipFileList $list

Вы также можете изменить это, чтобы пропустить все файлы в сайте 2, изменив список на $list=@('\site2\')

2. Сайт

Backup-WDSite

Описание. Это создаст резервную копию сайта IIS вместе со своими параметрами и содержимым с помощью поставщика apphostconfig. Дополнительные сведения об этом поставщике см. здесь.

Параметры командлета: имя сайта, указанного параметром сайта или файлом параметров публикации, создается резервная копия. Значение параметра сайта переопределяет спецификацию параметров публикации для имени сайта.

ConfigOnly можно использовать для создания резервной копии без содержимого. Если сайт использует пул приложений, отличный от по умолчанию, то для работы этого пакета на других серверах, которые могут не иметь тот же пул приложений, используйте параметр switch includeAppPool. При этом пул приложений будет упаковываться в пакет.

Автоматически созданные параметры веб-развертывания: создаются два типа параметров:

  1. Параметр, позволяющий пользователю изменить имя сайта, на котором будет применена резервная копия сайта.
  2. Другой параметр, позволяющий пользователю изменить физический путь сайта и каждого веб-приложения под этим сайтом.

Таким образом, если у меня есть сайт с тремя приложениями под я получаю 4 параметров физического пути отдельно и один параметр имени сайта.

Примеры:

Backup-WDSite "Default Web Site" -ConfigOnly
Backup-WDSite MySite –IncludeAppPool
Backup-WDSite MySite -SkipFileList $list

3. Веб-приложение

Backup-WDApp

Описание. Это создаст резервную копию веб-приложения с помощью поставщика iisApp. Дополнительные сведения об этом поставщике см. здесь. Ниже приведена хорошая статья , которая объясняет, что такое веб-приложение и что такое разница между сайтом, приложением и виртуальным каталогом в IIS.

Параметры командлета: имя приложения, указанного параметром приложения или файлом параметров публикации, создается резервная копия. Если ни один из них не указан, он выдает ошибку. Значение параметра приложения переопределяет спецификацию параметров публикации для имени сайта. Параметры SkipFileList и SkipFolderList позволяют выборочно исключить один или несколько файлов или папок из пакета.

Автоматически созданные параметры веб-развертывания: параметр для изменения имени приложения или сайта во время восстановления или установки создается.

$list = @('\\iisstart\.htm')
Backup-WDApp "Default web site/app" -SkipFileList $list

B. База данных

1. MSSql

Backup-WDSqlDatabase

Описание. Это создаст резервную копию базы данных Microsoft SQL Server с помощью поставщика dbfullsql. Этот поставщик использует SMO для скрипта базы данных и предоставляет более 100 параметров поставщика для управления способом выполнения скриптов базы данных. Здесь подробно описано.

Параметры командлета: строка подключения, указанный параметром базы данных или SQLServerDB Подключение ionString в файле параметров публикации, создается резервная копия. Значение параметра базы данных переопределяет спецификацию параметров публикации для SQLServerDB Подключение ionString. Параметры поставщика, предоставляемые этим поставщиком dbfullsql, можно передать с помощью параметра Source Параметры. Один из наиболее часто используемых параметров — scriptdropsfirst, который скрипты, если объект существует, удалите скрипты объектов. Другим параметром поставщика из параметров скриптов SMO является установка значения scriptdata значение false, чтобы просто извлечь схему.

Параметры автоматического развертывания веб-развертывания: параметр создается для изменения базы данных строка подключения во время восстановления или установки.

Примеры:

New-WDPublishSettings -ComputerName serverName -MSSqlConnectionString "Data Source=localhost;Initial Catalog=MyDb;User id=MyDbUser;Password=MyPassword" -FileName d:\SQLdb.PublishSettings -Credential serverName\Administrator
Backup-WDSQLDatabase -SourcePublishSettings D:\SQLdb.PublishSettings
Backup-WDSQLDatabase -Database "Data Source=localhost;Initial Catalog=MyDb;User id=MyDBUser;Password=MyPassword" -SourceSettings @{ copyAllUsers='false'; scriptDropsFirst='true'; }

2. MySql

Backup-WDMySQLDatabase

Описание. Это создаст резервную копию базы данных Сервера MySql с помощью поставщика dbmysql. Этот поставщик использует mysqldump для скрипта базы данных. Здесь подробно описано.

Параметры командлета: строка подключения, указанные параметром базы данных или mySQLDB Подключение ionString в файле параметров публикации, создается резервная копия. Значение параметра базы данных переопределяет спецификацию параметров публикации для mySQLDB Подключение ionString. Параметры поставщика можно передать с помощью параметра Source Параметры. Часто используемые параметры включаютData и includeSchema. По умолчанию для них задано значение true.

Параметры автоматического развертывания веб-развертывания: параметр создается для изменения базы данных строка подключения во время восстановления или установки.

New-WDPublishSettings -ComputerName serverName -MySqlConnectionString "Data Source=localhost;database=MyDb;Uid=MyDbUser;pwd=MyPassword" -FileName d:\MySQLdb.PublishSettings -Credential serverName\Administrator
Backup-WDMySQLDatabase -Database 'Server=localhost;Database=MyDb;Uid=MyDbUser;pwd=MyPassword’
Backup-WDMySqlDatabase –SourcePublishSettings d:\mysqldb.publishsettings

III. Восстановление

Все командлеты восстановления принимают пакет веб-развертывания для восстановления в качестве первого позиционного параметра.

WebDeploy поддерживает концепцию параметризации пакетов, которая позволяет изменять несколько аспектов во время восстановления (без изменения пакета). Например, во время восстановления можно указать значение строка подключения базы данных, которая отличается от того, что находится в пакете с помощью параметров WebDeploy (в пакете должен присутствовать параметр строка подключения.)

В зависимости от того, как был создан пакет, пакет веб-развертывания может иметь один или несколько параметров. Эти командлеты восстановления проверяют пакет и добавляют в коллекцию динамические параметры PowerShell. Поэтому если пакет имеет параметр веб-развертывания с именем "Parameter1", то вы найдете параметр PowerShell с именем "Parameter1". Однако динамические параметры имеют свои собственные проблемы в PowerShell, и это будет работать только в том случае, если пакеты не имеют места в имени или пути к файлу.

Кроме того, все эти командлеты восстановления также имеют параметр Parameters, который позволяет вручную указывать новые значения параметров во время восстановления. Этот параметр "Параметры" принимает объект Словаря PowerShell для пар значений имен параметров веб-развертывания.

Чтобы узнать параметры веб-развертывания, определенные в любом пакете веб-развертывания, можно просто открыть ZIP-файл в Windows Обозреватель и проверить файл parameters.xml, присутствующих в корне пакета. Любой параметр веб-развертывания, который не имеет значения по умолчанию, или значение должно быть указано. Добавьте все эти параметры в XML-файл и передайте его в качестве значения параметра ParameterValuesFile. Вы можете создать этот файл, как указано здесь или вручную. Формат :

<parameters>
  <setParameter name="name1" value="value1" />
  <setParameter name="name2" value="value2" />
</parameters>

Командлет Get-WDParameters может прочитать этот файл и преобразовать его в объект параметров WebDeploy (словарь), который принимается всеми командлетами восстановления.

Если любой пакет восстанавливается без указания значения параметров в пределах, поведение по умолчанию будет перезаписывать ресурсы, из которых изначально был создан пакет. Например, если я создаю пакет с сайта1 с помощью backup-wdsite site1, то при восстановлении этого пакета с помощью командлета восстановления без предоставления параметров в этом пакете сайт1 будет перезаписан с любым содержащимся пакетом, содержимым, а также конфигурацией. То же самое относится ко всем командлетам восстановления.

Все эти командлеты восстанавливаются локально, за исключением случаев, когда указан файл параметров публикации назначения, в этом случае то же самое будет происходить с удаленным сервером через службу веб-управления (WMSvc) или службу агента веб-развертывания.

А. IIS

1. Сервер

Restore-WDServer

Описание. Восстановление пакета веб-сервера. Обычное использование заключается в резервном копировании сервера перед внесением изменений и в случае сбоя сервер может быть отменить изменения путем применения пакета резервного копирования веб-развертывания, созданного перед внесением изменений.

$folderList = @(‘\\app_data’)
Restore-WDServer D:\OWAIS-1_WebServer_20120419121214.zip -DestinationPublishSettings c:\destinationServer.publishSettings –SkipFolderList $folderList

2. Сайт

Restore-WDSite

Описание. Восстановление пакета сайта IIS. Если пакет имеет два параметра с именем "Физический путь сайта" и "Имя сайта", они будут предоставляться как параметр SitePhysicalPath и SiteName dynamic powershell. Эта команда создаст новый сайт сайта1 с физическим путем c:\site1. Если для этих параметров не указано значение, восстановление будет применяться к тому же сайту и содержимому, перезаписи любых изменений, которые могут быть в сайте.

Параметры: может потребоваться использовать список skipfolderlist и skipfilelist, чтобы исключить некоторые папки и/или файлы из копирования в содержимом сайта.

Restore-WDSite C:\defaultsite.zip -SitePhysicalPath c:\site1 -SiteName site1
Restore-WDSite -Package 'D:\Users\Administrator\Documents\Web Deploy Backups\IIS-Server_AppHostConfig_Default Web Site_20120417100827.zip' -skipFolderList @('App_Data')  -verbose

3. Приложение

Restore-WDApp

Описание. Это приведет к восстановлению веб-приложения. Backup-WDApp создает пакет с одним параметром, чтобы изменить имя приложения во время установки. Это можно использовать для восстановления приложения в другом приложении во время восстановления. Сайт должен существовать при развертывании в приложении под сайтом. Приложение будет создано этим пакетом, но сайт не будет создан.

Примеры:

Restore-WDApp C:\myappbackup.zip -ApplicationPathParam1 "Default web site\app1"

B. База данных

Restore-WDDatabase

Описание. Если база данных не существует, она создаст новую базу данных, которая называется клиентами (если текущий пользователь имеет разрешения на эту операцию) и выполнит скрипт на нем. Если это выполняется без каких-либо значений для параметров динамического веб-развертывания, исходная база данных, из которой был создан пакет, будет перезаписана. Обратите внимание, что если параметр scriptDropsFirst не использовался при создании пакета, то применение к базе данных с конфликтом существующего содержимого завершится ошибкой. Этот командлет можно использовать для восстановления резервной копии MSSql или MySQL. Базу данных MS SQL можно восстановить только с резервной копией, созданной с помощью backup-WDSQLDatabase и базы данных My SQL с резервной копией, созданной с помощью Backup-WDMySqlDatabase.

Примеры:

Backup-WDSqlDatabase "server=.\sqlexpress;integrated security=SSPI;database=customers" "C:\dbbackup.zip"
Restore-WDDatabase c:\dbbackup.zip –DatabaseConnectionStringParam1 "server=.\sqlexpress;integrated security=SSPI;database=customers_copy"
Backup-WDMySqlDatabase "server=localhost;uid=someuser;pwd=somepwd;database=coolDb" "C:\dbbackup.zip"
Restore-WDDatabase c:\dbbackup.zip –DatabaseConnectionStringParam1 "server=localhost;uid=someuser;pwd=somepwd;database=coolDb_copy"

C. Универсальный пакет

Restore-WDPackage

Описание. Этот командлет можно использовать для применения любого пакета веб-развертывания. Существует несколько способов создания или получения пакета веб-развертывания, таких как скачивание пакета коллекции приложений открытый код, создание пакета в Visual Studio, использование средства командной строки msdeploy.exe (дополнительные сведения) или использование командлетов Backup-WD*, отмеченных ранее в документе. Например, для установки wordpress на веб-сайте IIS Server Default в качестве приложения с именем wordpress скачайте пакет wordpress из коллекции приложений в папку, называемую пакетами. Все значения по умолчанию для параметров пакета wordpress будут работать так же, как и только необходимо указать значения для двух обязательных параметров: администратора и пароля mysql без администратора.

Параметры:

Restore-WDPackage c:\Packages\wordpress.zip -DBAdminPassword mysecretserverpassword –DBPassword mysqllocalpassword

IV. Удалить

Remove-WDSite -Site NonWorkingSite

Эта команда удаляет определение сайта с именем nonworkingsite в applicationHost.config, а также содержимое каталога сайта

V. Получение и настройка платформы пула приложений

Эти командлеты позволяют считывать и изменять версию apppool .net framework.

Get-WDAppPoolFx "default web site"
managedRuntimeVersion
---------------------
v2.0
Set-WDAppPoolFx "default web site" -AppPoolFrameworkVersion v4.0
Get-WDAppPoolFx "default web site"
managedRuntimeVersion
---------------------
v4.0

VI. Настройка WDACL

Этот командлет можно использовать для задания acls на содержимом сайта. Например, предположим, что у меня есть сайт, сайт1 и я пытаюсь предоставить пользователю u1 доступ на чтение.

Сначала я проверка текущие разрешения.

$ret = Get-Acl C:\site1
$ret.Access
I don’t see u1 in the list. Let me give the user u1 access as follows
Set-WDAcl "site1" -SetAclUser u1
Check whether this worked
$ret = Get-Acl C:\site1
$ret.Access
I see that u1 has been given read access as below. [I have not pasted the other permissions on this folder. Just the u1 part]
FileSystemRights  : Read, Synchronize
AccessControlType : Allow
IdentityReference : MOSHAIKH1\u1
IsInherited       : False
InheritanceFlags  : ContainerInherit, ObjectInherit
PropagationFlags  : None

VII. Вызывать

Команды или скрипты можно вызвать в удаленной системе с помощью назначенийpublishsettings и просмотреть результаты удаленного выполнения в режиме реального времени. Для удаленного выполнения поставщика runcommand необходимо быть администратором удаленной системы. Дополнительные сведения об этом поставщике см. здесь. Максимальное время, когда API MWD по умолчанию ожидает завершения заданного скрипта или команды, составляет 5 секунд. Если вы хотите увеличить это время выполнения, можно указать более высокие значения для waitInterval и waitAttempts, как показано в приведенном ниже примере.

А. Скрипт

Invoke-WDScript C:\my.cmd –Verbose

При выполнении скрипта вы сможете просмотреть выходные данные команды при его выполнении с подробным описанием.

B. Команда

$settings = @ { waitInterval = 3000; waitAttempts = 25;}
Invoke-WDCommand "dir c:\mydirectory /s/b" -DestinationSettings $settings

Это приведет к выполнению команды, и выходные данные не будут отображаться, так как подробные данные не были указаны. Однако это будет ждать 3 секунды между каждым временем ожидания и будет выполнять 25 итераций ожидания. В целом выполнение процесса будет продолжаться в течение 75 секунд.

VIII. Sync

Эти командлеты принимают источник и назначение и синхронизируются между ними. Источник никогда не изменяется. Причина, по которой я использую источник слова вместо клиента, заключается в том, что клиент и сервер очень запутаны термины синхронизации. Вы можете синхронизировать локальный сервер с удаленным сервером. В этом случае удаленный сервер является источником и локальным сервером является назначением. Кроме того, можно выполнить командлет PowerShell на компьютере 1 и синхронизировать компьютеры 2 и 3. Чтобы использовать удаленный источник и (или) назначение, необходимо предоставить файл параметров публикации, который можно создать с помощью первого командлета, упоминание в этом документе. Все командлеты синхронизации также поддерживают параметры источника Параметры и назначения Параметры для выборочного задания параметров поставщика для источника или назначения или обоих.

А. IIS

1. Сервер

Я хочу синхронизировать два сервера IIS 7.5, Owais-1 и Owais-2. Сначала я создаю файл publishsettings для каждого, а затем синхронизирую серверы. Так как я не указал свои учетные данные, это будет успешным, если я администратор в этих двух системах.

New-WDPublishSettings -ComputerName owais-1 -AgentType MSDepSvc -FileName c:\owais1.publishsettings
Publish settings file created at: 'c:\owais1.publishsettings'.
New-WDPublishSettings -ComputerName owais-2 -AgentType MSDepSvc -FileName c:\owais2.publishsettings
Publish settings file created at: 'c:\owais2.publishsettings'.
Sync-WDServer -SourcePublishSettings c:\owais1.publishSettings -DestinationPublishSettings c:\owais2.publishSettings

2. Сайт

В следующей команде сайт2 будет создан, если он не существует, и я также изменил физический путь (содержимое будет скопировано в новую папку c:\site2) и привязка сайта.

Sync-WDSite site1 Site2 -SitePhysicalPath c:\site2 -SiteBinding "*:8078:" -IncludeAppPool

3. Приложение

У меня есть приложение, работающее на веб-сайте по умолчанию. Я хочу переместить это в разделе Site1. Следующая команда сделает это.

Sync-WDApp "Default Web Site/drupal" "site1/drupal"

Теперь, когда я протестировал новое приложение drupal работает, я удалю исходное приложение drupal под веб-сайтом по умолчанию.

Remove-WDSite "Default Web Site/drupal"

B. База данных

Предыдущие командлеты показали, как создать резервную копию и восстановить базу данных с помощью пакета веб-развертывания, однако можно также синхронизировать базу данных с скриптом .sql или напрямую с другим экземпляром базы данных с помощью командлетов Sync-WDSQLDatabase и Sync-WDMySQLDatabase.

1. MSSql

Sync-WDSQLDatabase "server=.\sqlexpress;uid=sa;pwd=********;database=umbracodb" "server=.\sqlexpress;uid=sa;pwd=************;database=sometestdb"

При этом будет создана новая база данных с именем sometestdb (если она еще не существует) и синхронизирована схема и данные.

Sync-"server=.\sqlexpress;uid=sa;pwd=********;database=umbracodb"  c:\umbraco.sql

При этом база данных umbracodb будет выполняться в umbraco.sql по указанному выше пути.

2. MySql

Sync-WDMySQLDatabase "server=localhost;uid=root;pwd=********;database=wordpress265" "server=localhost;uid=root;pwd=************;database=wordpress265_new"

При этом будет создана новая база данных с именем wordpress265_new (если она еще не существует) и синхронизирует схему и данные.

Sync-WDMySQLDatabase "server=localhost;uid=root;pwd=***************;database=wordpress265" c:\wordpress.sql

Это приведет к выполнению скрипта базы данных wordpress265 в wordpress.sql по указанному выше пути.

C. В любом другом месте

Для синхронизации общего назначения, не охваченной другими командлетами выше, можно использовать командлет Sync-WDManifest. Это общая синхронизация поставщика манифестов, поддерживаемая API MWD. Подробнее об этом можно прочитать здесь. Манифест — это коллекция поставщиков, путей поставщика и параметров поставщика в XML-файле. Структура заключается в том, что корневой узел XML-файла считается именем поставщика для текущей синхронизации. Поэтому это не может быть имя любого из известных поставщиков, как указано в списке здесь. Затем он может иметь дочерние узлы с именем элемента, соответствующим поставщику, который вы хотите включить в синхронизацию. Атрибут пути представляет путь этого поставщика и является обязательным. Затем добавьте пары значений атрибутов для каждого параметра поставщика, который вы хотите использовать для текущей операции синхронизации.

Этот командлет должен иметь два манифеста: один для источника и один для назначения. Манифест всегда выполняется в указанном порядке. Если поставщик поддерживает операцию фиксации, например поставщик apphostconfig, который работает с сайтами IIS, фиксация не вызывается, если синхронизация не завершена. Поэтому если у вас есть поставщик, который ожидает, что сайт будет существовать после того, как он создает поставщик, это завершится ошибкой, так как сайт еще не был зафиксирован. В следующем примере я синхронизирую приложение и добавим базу данных, которую приложение использует вместе с ним в манифесте.

Исходный манифест:

<demoManifest>
  <iisApp path="Site1" />
  <dbfullsql path="server=.\sqlexpress;integrated security=SSPI;database=customers" />
</demoManifest>

Манифест назначения:

<demoManifest>  <iisApp path="Site2" />  <dbfullsql path="server=.\sqlexpress;integrated security=SSPI;database=customers_demo_cpy" /></demoManifest>Sync-WDManifest C:\sourceManifest.xml C:\destManifest.xmlWARNING: Cannot connect to the database 'customers_demo_cpy'.Retrying operation 'Add' on object dbFullSql (server=.\sqlexpress;uid=sa;database=customers_demo_cpy). Attempt 1 of 5.Manifest         : C:\sourceManifest.xmlManifest-Dest    : C:\destManifest.xmlTimeTaken        : 0:10Errors           : 0Warnings         : 0BytesCopied      : 0ObjectsDeleted   : 0ObjectsUpdated   : 0ObjectsAdded     : 3TotalChanges     : 3ParameterChanges : 0