Compartilhar via


Implantar cmdlets do PowerShell na Web

por Owais Shaikh

Web Deploy V3.0 vem com cmdlets do PowerShell para executar a maioria das tarefas suportadas pela API de Implantação da Web [Microsoft.Web.Deployment]. Você pode ler mais sobre essa API aqui. Esses cmdlets estão no snapin chamado WDeploySnapin3.0, que é instalado e registrado como um snapin em uma instalação típica ou superior do Web Deploy. Para usar esses cmdlets, adicione o snapin sempre que o console do PowerShell for iniciado ou adicione o snapin ao perfil do PowerShell, o que fará com que todos os consoles carreguem automaticamente o snapin.

Assim que o console do PowerShell for carregado, execute o seguinte comando na janela do console para adicionar:

Add-PSSnapin WDeploySnapin3.0

Para adicioná-lo ao perfil do PowerShell:

  1. Se você já tiver um perfil do PowerShell, vá para a etapa 4.
  2. Crie uma pasta do WindowsPowerShell em <Meus Documentos>.
  3. Criar um arquivo chamado Microsoft.PowerShell_profile.ps1
  4. Adicione essa linha ao arquivo de perfil do PowerShell: 'Add-PSSnapin WDeploySnapin3.0'

Alguns pontos a serem observados:

  1. O console do PowerShell é executado em 64 bits em sistemas de 64 bits e é executado no .Net 2.0, exceto até o Windows8. Se você enfrentar problemas devido a um ou ambos, consulte a seção de solução de problemas para soluções.
  2. Todos os cmdlets que criam um pacote Web Deploy definem parâmetros para as tarefas mais comuns, e os cmdlets que os utilizam aceitam valores de parâmetro.
  3. Há apenas um cmdlet de remoção para excluir um site ou um aplicativo abaixo dele.
  4. O Web Deploy tem parâmetros, mas eles são ortogonais aos parâmetros de cmdlet do PowerShell. Quando os parâmetros são referenciados neste documento, isso implica parâmetros de cmdlet. Os parâmetros de Implantação da Web foram chamados especificamente como parâmetros de Implantação da Web.

I. Publicar arquivo de configurações

Todos os cmdlets especificados abaixo têm a capacidade de executar em um artefato remoto, como um servidor remoto ou um banco de dados remoto. Elas exigem mais do que apenas as credenciais. Por exemplo, você precisa do nome do servidor remoto, da cadeia de conexão de banco de dados remoto, se deseja permitir a publicação em um servidor com um certificado de teste etc. Para facilitar o uso, a transferência de informações de credencial do administrador do servidor para o consumidor etc. um novo tipo de arquivo originou o qual agrupa essas configurações. Esse arquivo é chamado de arquivo de configurações de publicação que termina em .publishsettings. Isso é usado pelo Visual Studio para publicação, bem como pela WebMatrix.

Para poder criar esse arquivo para consumo por outros cmdlets e editá-lo, o cmdlet New-WDPublishSettings pode ser usado. Se nenhum nome de arquivo for especificado, ele criará um novo arquivo no diretório de documentos com o nome <novo guid.publishsettings>. Esse caminho será exibido quando o arquivo for criado. Se um nome de arquivo for especificado e o arquivo não existir, ele será criado conforme descrito acima na pasta especificada pelo caminho, no entanto, o caminho para o arquivo deve ser válido. Se o arquivo existir apenas os valores dos atributos especificados durante a execução do comando serão modificados, exceto os atributos no arquivo que são desconhecidos e serão removidos

Exemplo: este exemplo obtém um objeto de credencial e, em seguida, passa-o para o novo cmdlet de arquivo de configurações de publicação junto com outros parâmetros

$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

Todos os cmdlets de backup têm um parâmetro posicional (é o segundo, exceto no backup-wdserver, em que ele é o primeiro parâmetro posicional) chamado output. Isso usa um caminho para a pasta em que você deseja que o backup seja criado. O backup é sempre um pacote zip do Web Deploy. Você pode ler mais sobre pacotes de implantação da Web no Provedor de Pacotes. Se nenhum caminho for especificado, os backups serão criados em uma pasta chamada "Backups de Implantação da Web" na pasta de documentos do usuário. Os backups são nomeados como machinename_nameofproviderused_[Siteorapporfoldername(Opcional)]_timestamp.zip.

Todos esses cmdlets funcionarão localmente por padrão, a menos que informações de servidor remoto sejam fornecidas passando um arquivo de configurações de publicação para o parâmetro SourcePublishSettings.

R. IIS

Todos os cmdlets do IIS funcionarão na versão 7 ou superior do IIS instalada

1. Servidor

Backup-WDServer

Descrição: Sem qualquer argumento, faz backup do servidor atual no qual esse comando é executado. Ele usa o provedor webserver conhecido para esta operação. Portanto, o pacote criado contém todos os artefatos que seriam contidos em um pacote webserver. Você pode ler mais sobre esse provedor aqui.

Parâmetros de cmdlet: o parâmetro ConfigOnly permite que você exclua todo o conteúdo, enquanto os parâmetros SkipFileList e SkipFolderList permitem excluir seletivamente um ou mais arquivos ou pastas do pacote.

Exemplos:

Isso fará backup de tudo o servidor Web, exceto o conteúdo:

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

Crie uma lista dos arquivos que devem ser ignorados. Estas são expressões regulares padrão.

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

Você também pode alterá-lo para ignorar todos os arquivos no site2 alterando a lista para $list=@('\site2\')

2. Site

Backup-WDSite

Descrição: isso fará backup de um site do IIS junto com suas configurações e conteúdo usando o provedor apphostconfig. Você pode ler mais sobre esse provedor aqui.

Parâmetros de cmdlet: o nome do site especificado pelo parâmetro do site ou pelo arquivo de configurações de publicação é feito backup. O valor do parâmetro do site substitui a especificação de configurações de publicação para o nome do site.

ConfigOnly pode ser usado para criar um backup sem conteúdo. Se o site usar um pool de aplicativos não padrão para fazer esse pacote funcionar em outros servidores que talvez não tenham o mesmo pool de aplicativos, use o parâmetro switch includeAppPool. Isso agrupará o pool de aplicativos no pacote.

Parâmetros de Implantação da Web gerados automaticamente: dois tipos de parâmetros são criados:

  1. Um parâmetro para permitir que o usuário altere o nome do site em que o backup do site será aplicado.
  2. Outro parâmetro para permitir que o usuário altere o caminho físico do site e de cada aplicativo Web nesse site.

Portanto, se eu tiver um site com três aplicativos abaixo, obterei quatro parâmetros de caminho físico separados e um parâmetro de nome de site.

Exemplos:

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

3. Aplicativo Web

Backup-WDApp

Descrição: isso fará backup de um aplicativo Web usando o provedor iisApp. Leia mais sobre esse provedor aqui. Aqui está um bom artigo que explica o que é um aplicativo Web e qual é a diferença entre um site, um aplicativo e um diretório virtual no IIS.

Parâmetros de cmdlet: o nome do aplicativo especificado pelo parâmetro do aplicativo ou pelo arquivo de configurações de publicação é feito backup. Se nenhum deles for especificado, ele gerará um erro. O valor do parâmetro de aplicativo substitui a especificação de configurações de publicação para o nome do site. Os parâmetros SkipFileList e SkipFolderList permitem excluir seletivamente um ou mais arquivos ou pastas do pacote.

Parâmetros de Implantação da Web gerados automaticamente: um parâmetro para alterar o nome do aplicativo ou site durante a restauração ou instalação é criado.

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

B. Banco de dados

1. MSSql

Backup-WDSqlDatabase

Descrição: isso fará backup de um Banco de Dados do Microsoft SQL Server usando o provedor dbfullsql. Esse provedor usa o SMO para criar scripts do banco de dados e expõe mais de 100 configurações de provedor para controlar a maneira como o banco de dados é roteado. Isso é abordado em detalhes aqui.

Parâmetros de cmdlet: a string de conexão especificada pelo parâmetro Database ou SQLServerDBConnectionString no arquivo de configurações de publicação é salva como backup. O valor do parâmetro de banco de dados substitui a especificação de configurações de publicação para SQLServerDBConnectionString. As configurações do provedor expostas por esse provedor dbfullsql podem ser passadas usando o parâmetro SourceSettings. Uma configuração muito comum é scriptdropsfirst, que gera scripts para remover objetos se eles existirem. Outra configuração do provedor das opções de script SMO é definir scriptdata como false para apenas extrair esquema.

Parâmetros de implantação da Web gerados automaticamente: um parâmetro é criado para alterar a cadeia de conexão de banco de dados durante a restauração ou instalação

Exemplos:

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

Descrição: isso fará backup de um Banco de Dados do MySql Server usando o provedor dbmysql. Esse provedor usa mysqldump para exportar o banco de dados. Isso é abordado em detalhes aqui.

Parâmetros de cmdlet: a cadeia de conexão especificada pelo parâmetro Database ou mySQLDBConnectionString no arquivo de configurações de publicação é feita backup. O valor do parâmetro de banco de dados substitui a especificação de configurações de publicação para mySQLDBConnectionString. As configurações do provedor podem ser passadas usando o parâmetro SourceSettings. As configurações comumente usadas são includeData e includeSchema. Por padrão, elas são definidas como true.

Parâmetros de implantação da Web gerados automaticamente: um parâmetro é criado para alterar a cadeia de conexão de banco de dados durante a restauração ou instalação

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. Restaurar

Todos os cmdlets de restauração levam o pacote Web Deploy para restaurar como o primeiro parâmetro posicional.

O WebDeploy dá suporte ao conceito de parametrização dos pacotes, o que permite alterar alguns aspectos durante a restauração (sem modificar o pacote). Por exemplo, durante a restauração, você pode optar por especificar o valor da cadeia de conexão de banco de dados que é diferente do que está dentro do pacote usando parâmetros WebDeploy (você precisa ter o parâmetro de cadeia de conexão presente no pacote).)

Dependendo de como o pacote foi criado, o pacote Web Deploy pode ter um ou mais . Esses cmdlets de restauração inspecionam o pacote e adicionam parâmetros dinâmicos do PowerShell à coleção. Portanto, se um pacote tiver um parâmetro de Implantação da Web chamado "Parameter1", você encontrará um parâmetro do PowerShell com o nome "Parameter1". No entanto, os parâmetros dinâmicos têm seus próprios problemas no PowerShell e isso só funcionará se os pacotes não tiverem um espaço no nome ou no caminho para o arquivo.

Como alternativa, todos esses cmdlets de restauração também têm um parâmetro "Parâmetros" que permite especificar manualmente novos valores de parâmetro durante a restauração. Esse parâmetro "Parameters" utiliza o objeto Dicionário do PowerShell para os pares nome-valor dos parâmetros do Web Deploy.

Para descobrir os parâmetros de Implantação da Web definidos em qualquer pacote de Implantação da Web, você pode simplesmente abrir o arquivo zip no Windows Explorer e examinar o arquivo parameters.xml presente na raiz do pacote. Qualquer parâmetro de Implantação da Web que não tenha um valor padrão precisa que um valor seja especificado. Adicione todos esses parâmetros em um arquivo xml e passe-os como o valor do parâmetro ParameterValuesFile. Você pode gerar esse arquivo conforme mostrado aqui ou manualmente. O formato é

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

Get-WDParameters cmdlet pode ler esse arquivo e convertê-lo em objeto de parâmetros WebDeploy (dicionário), que é aceito por todos os cmdlets de restauração.

Se qualquer pacote for restaurado sem especificar um valor para os parâmetros no interior, o comportamento padrão substituirá os recursos dos quais o pacote foi criado originalmente. Por exemplo, se eu criar um pacote do site1 usando o backup-wdsite site1, quando eu restaurar esse pacote usando o cmdlet de restauração sem fornecer nenhum valor para os parâmetros neste pacote, o site1 será substituído pelos conteúdos e configurações existentes no pacote. O mesmo vale para todos os cmdlets de restauração.

Todos esses cmdlets restauram localmente, exceto quando o arquivo de configurações de publicação de destino é especificado; nesse caso, a mesma operação é realizada em um servidor remoto via Serviço de Gerenciamento da Web (WMSvc) ou serviço de Agente de Implantação da Web.

R. IIS

1. Servidor

Restore-WDServer

Descrição: restaura um pacote de servidor Web. O uso comum é fazer backup de um servidor antes de fazer uma alteração e, em caso de falha, o servidor pode ser revertido aplicando o pacote de backup de Implantação da Web criado antes de fazer as alterações.

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

2. Site

Restore-WDSite

Descrição: restaura um pacote de site do IIS. Se o pacote tiver dois parâmetros chamados "Caminho Físico do Site" e "Nome do Site", eles serão expostos como parâmetro powershell dinâmico SitePhysicalPath e SiteName. Esse comando criará um novo site site1 com caminho c:\site1físico. Se nenhum valor for especificado para esses parâmetros, a restauração será aplicada ao mesmo site e conteúdo, substituindo quaisquer alterações feitas no site.

Parâmetros: talvez você queira usar skipfolderlist e skipfilelist para excluir algumas pastas e/ou arquivos de serem copiados no conteúdo do site.

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. Aplicativo

Restore-WDApp

Descrição: isso restaurará um aplicativo Web. Backup-WDApp cria um pacote com um parâmetro para alterar o nome do aplicativo no momento da instalação. Isso pode ser usado para restaurar o aplicativo para um aplicativo diferente durante a restauração. O site deve existir ao implantar em um aplicativo que está sob um site. O aplicativo será criado por esse pacote, mas o site não será criado.

Exemplos:

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

B. Banco de dados

Restore-WDDatabase

Descrição: se o banco de dados não existir, isso criará um novo banco de dados chamado clientes (desde que o usuário atual tenha permissões para essa operação) e executará o script nele. Se isso for executado sem valores para parâmetros dinâmicos de Implantação da Web, o banco de dados original do qual esse pacote foi criado será substituído. Observe que, se a configuração scriptDropsFirst não tiver sido usada ao criar o pacote, a aplicação a um banco de dados com conteúdo existente conflitante falhará. Esse cmdlet pode ser usado para restaurar um backup MSSql ou MySQL. Você só pode restaurar um banco de dados SQL MS com um backup criado usando Backup-WDSQLDatabase e meu banco de dados SQL com um backup criado usando Backup-WDMySqlDatabase.

Exemplos:

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. Pacote Genérico

Restore-WDPackage

Descrição: esse cmdlet pode ser usado para aplicar qualquer pacote de Implantação da Web. Há várias maneiras de criar ou obter um pacote de Implantação da Web, como baixar um pacote da Galeria de Aplicativos de software livre, criar um pacote no Visual Studio, usar a ferramenta de linha de comando msdeploy.exe (mais informações) ou usar os cmdlets backup-WD* anotados anteriormente no documento. Por exemplo, para instalar o wordpress em um site padrão do servidor IIS como um aplicativo chamado wordpress, baixe o pacote wordpress da galeria de aplicativos em uma pasta chamada pacotes. Todos os valores padrão para os parâmetros do pacote wordpress funcionarão como estão, mas apenas precisarão especificar os valores para dois parâmetros necessários: administrador e senha mysql não administrador.

Parâmetros:

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

IV. Retirar

Remove-WDSite -Site NonWorkingSite

Esse comando excluirá a definição do site chamado nonworkingsite em applicationHost.config, bem como o conteúdo do diretório do site

V. Obter & definir o Framework do pool de aplicações

Esses cmdlets permitem que você leia e altere a versão do .net framework do apppool.

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. Definir WDACL

Este cmdlet pode ser usado para configurar ACLs sobre o conteúdo de um site. Por exemplo, digamos que eu tenha um site, site1 e estou tentando dar acesso de leitura ao usuário u1.

Primeiro, verifico as permissões atuais.

$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. Invocar

Você pode invocar comandos ou scripts em um sistema remoto usando destinationpublishsettings e ver os resultados da execução remota em tempo real. Você precisa ser um administrador no sistema remoto para poder executar o provedor runcommand remotamente. Você pode ler mais sobre esse provedor aqui. O tempo máximo padrão que a API MWD aguarda para que o script ou comando fornecido seja concluído é de 5 segundos. Se você quiser aumentar esse tempo de execução, poderá especificar valores mais altos para waitInterval e waitAttempts, conforme mostrado no exemplo abaixo.

R. Script

Invoke-WDScript C:\my.cmd –Verbose

Isso executará o script e você poderá ver a saída do comando se executá-lo no modo verbose.

B. Command

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

Isso executará o comando e nenhuma saída será exibida, pois o modo verboso não foi especificado. No entanto, isso aguardará 3 segundos entre cada lapso de tempo e fará 25 iterações de espera. Ao todo, a execução do processo continuará no máximo por 75 segundos.

VIII. Sincronizar

Esses cmdlets recebem uma origem e um destino e sincronizam um com o outro. A origem nunca é modificada. O motivo pelo qual estou usando a palavra "fonte" em vez de "cliente" é porque "cliente" e "servidor" são termos muito confusos no contexto de sincronização. Você pode potencialmente sincronizar o servidor local com um servidor remoto. Nesse caso, o servidor remoto é a origem e o servidor local é o destino. Como alternativa, você pode executar o cmdlet do PowerShell no computador 1 e sincronizar computadores 2 e 3. Para usar uma origem remota e/ou destino, você precisa fornecer um arquivo de configurações de publicação que pode ser criado usando o primeiro cmdlet mencionado neste documento. Todos os cmdlets de sincronização também dão suporte a parâmetros sourceSettings e destinationSettings para poder definir seletivamente as configurações do provedor para a origem ou o destino ou ambos.

R. IIS

1. Servidor

Quero sincronizar dois servidores IIS 7.5, Owais-1 e Owais-2. Primeiro, criarei um arquivo publishsettings para cada um e, em seguida, sincronizarei os servidores. Como não especifiquei minhas credenciais, isso terá êxito se eu for um administrador nesses dois sistemas.

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. Site

No comando a seguir, o site2 será criado se ele não existir e eu também alterei o caminho físico (o conteúdo será, portanto, copiado para a nova pasta c:\site2) e a associação do site.

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

3. Aplicativo

Tenho um aplicativo em execução no site padrão. Quero mover isso no Site1. O comando a seguir fará isso.

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

Agora que testei que o meu novo aplicativo drupal funciona, vou excluir o aplicativo drupal original sob o site da web padrão.

Remove-WDSite "Default Web Site/drupal"

B. Banco de dados

Os cmdlets anteriores mostraram como você pode fazer backup e restaurar um banco de dados usando um pacote de Implantação da Web, no entanto, você também pode sincronizar um banco de dados de ou para um script de .sql ou sincronizar diretamente com outra instância de banco de dados usando os cmdlets Sync-WDSQLDatabase e Sync-WDMySQLDatabase.

1. MSSql

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

Isso criará um novo banco de dados chamado sometestdb (se ele ainda não existir) e sincronizará o esquema e os dados.

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

Isso gerará o script do banco de dados umbracodb em umbraco.sql no caminho fornecido acima.

2. MySql

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

Isso criará um novo banco de dados chamado wordpress265_new (se ele ainda não existir) e sincronizará o esquema e os dados.

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

Isso transformará o banco de dados wordpress265 para wordpress.sql no caminho fornecido acima.

C. Todo o resto

Para sincronização de finalidade geral não coberta por outros cmdlets indicados acima, você pode usar Sync-WDManifest cmdlet. Essa é uma sincronização geral do provedor de manifesto com suporte da API MWD. Você pode ler mais sobre isso aqui. Manifesto é uma coleção de provedores, caminhos de provedor e configurações de provedor em um arquivo xml. A estrutura é que o nó raiz do arquivo xml é considerado o nome de um provedor para a finalidade da sincronização atual. Portanto, não pode ser o nome de nenhum dos provedores conhecidos, conforme fornecido na lista aqui. Em seguida, ele pode ter nós filhos com o nome do elemento correspondente ao provedor que você deseja incluir na sincronização. Um atributo 'path' representa o caminho desse provedor e é obrigatório. Em seguida, adicione pares de valor de atributo para cada configuração de provedor que você deseja aproveitar para a operação de sincronização atual.

Esse cmdlet precisa de dois manifestos: um para a origem e outro para o destino. O manifesto é sempre executado na ordem especificada. Se o provedor der suporte a uma operação de confirmação, como o provedor apphostconfig que funciona com sites do IIS, a confirmação não será chamada, a menos que a sincronização seja concluída. Portanto, se você tiver um provedor que espera que um site exista após um provedor que o crie, isso falhará, pois o site ainda não foi confirmado. No exemplo a seguir, sincronizarei um aplicativo e incluirei um banco de dados que o aplicativo usa junto com ele no manifesto.

Manifesto de origem:

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

Manifesto de destino:

<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