Web 配置 PowerShell コマンドレット
作成者: Owais Shaikh
Web Deploy V3.0 には、Web Deploy API [Microsoft.Web.Deployment] でサポートされているほとんどのタスクを実行するための PowerShell コマンドレットが付属しています。 この API の詳細については、こちらを参照してください。 これらのコマンドレットは、WDeploySnapin3.0 という名前のスナップインに含まれています。これは、Web 配置の一般的または高度なインストールでスナップインとしてインストールおよび登録されます。 これらのコマンドレットを使用するには、PowerShell コンソールを起動するたびにスナップインを追加します。または、PowerShell プロファイルにスナップインを追加すると、すべてのコンソールでスナップインが自動的に読み込まれます。
PowerShell コンソールが読み込まれるときに追加するには、コンソール ウィンドウで次のコマンドを実行します。
Add-PSSnapin WDeploySnapin3.0
PowerShell プロファイルに追加するには:
- PowerShell プロファイルが既に存在する場合は、手順 4 に進みます。
- <マイ ドキュメント> の下に WindowsPowerShell フォルダーを作成します。
- Microsoft.PowerShell_profile.ps1 という名前のファイルを作成します
- PowerShell プロファイル ファイルに次の行を追加します: 'Add-PSSnapin WDeploySnapin3.0'
注意すべき点をいくつか次に示します。
- PowerShell コンソールは、64 ビット システムで 64 ビットで実行され、Windows8 までを除いて.Net 2.0 で実行されます。 これらのいずれかまたは両方が原因で問題が発生した場合は、解決策のトラブルシューティングセクションを参照してください。
- Web 配置パッケージを作成するコマンドレットはすべて、最も一般的なタスクのパラメーターを作成し、それを使用するコマンドレットはパラメーター値を受け入れます。
- サイトまたはその下にあるアプリを削除するための削除コマンドレットは 1 つだけあります。
- Web 配置にはパラメーターがありますが、PowerShell コマンドレット パラメーターと直交しています。 このドキュメントでパラメーターに言及する場合は、コマンドレット パラメーターを意味します。 Web 配置パラメーターは、具体的に Web 配置パラメーターと明記されています。
I. 発行設定ファイル
以下に示すコマンドレットはすべて、リモート サーバーやリモート データベースなどのリモート成果物に対して実行できます。 これには、資格情報以上のものが必要です。 たとえば、リモート サーバー名、リモート データベース接続文字列、テスト証明書を使用したサーバーへの発行を許可するかどうかなどが必要です。使いやすくするために、サーバー管理者からコンシューマーへの資格情報の転送など、これらの設定をグループ化する新しいファイルの種類が作成されました。 このファイルは発行設定ファイルと呼ばれ、末尾が .publishsettings になります。 これは、Visual Studio および WebMatrix で発行に使用されます。
他のコマンドレットで使用する目的でこのようなファイルを作成および編集できるようにするには、New-WDPublishSettings コマンドレットを使用できます。 ファイル名が指定されていない場合は、<新しい 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. バックアップ
すべてのバックアップ コマンドレットには、出力と呼ばれる位置指定パラメーター (これは 2 番目のものですが、backup-wdserver の場合は最初の位置指定パラメーター) があります。 これにより、バックアップを作成するフォルダーへのパスが取得されます。 バックアップは常に Web 配置 zip 圧縮パッケージです。 Web 配置パッケージの詳細については、 Package プロバイダーを参照してください。 パスが指定されていない場合、バックアップはユーザーのドキュメント フォルダーの下にある "Web Deploy Backups" という名前のフォルダーに作成されます。 バックアップの名前は、machinename_nameofproviderused_[Siteorapporfoldername(省略可能)]_timestamp.zip のように付けられます。
既定ではこれらのコマンドレットはすべてローカルで動作します。ただし、リモート サーバー情報を SourcePublishSettings パラメーターに対して発行設定ファイルを渡すことで提供する場合を除きます。
A. IIS
すべての IIS コマンドレットは、インストールされている IIS バージョン 7 以降に対して機能します
1.Server (サーバー)
Backup-WDServer
説明: 引数なしでこれを実行すると、このコマンドが実行されている現在のサーバーがバックアップされます。 この操作には、既知の Web サーバー プロバイダーが使用されます。 そのため、作成されたパッケージには、Web サーバー パッケージに含まれるすべての成果物が含まれます。 このプロバイダーの詳細については、こちらを参照してください。
コマンドレット パラメーター: ConfigOnly パラメーターを使用すると、すべてのコンテンツを除外できますが、SkipFileList および SkipFolderList パラメーターを使用すると、パッケージから 1 つ以上のファイルまたはフォルダーを選択的に除外できます。
例 :
以下は、コンテンツを除く、Web サーバーのすべてをバックアップします。
Backup-WDServer -SourcePublishSettings c:\profiles\myserver.publishsettings -ConfigOnly
スキップする必要があるファイルのリストを作成します。 これは標準の正規表現です。
$list = @('\\site2\\iisstart.htm','\\site2\\welcome.png')
Backup-WDServer –SkipFileList $list
リストを $list=@('\site2\') に変更して、site2 に属しているファイルをすべてスキップするように変更することもできます
2.サイト
Backup-WDSite
説明: これは、apphostconfig プロバイダーを使用して、IIS サイトとその設定およびコンテンツをバックアップします。 このプロバイダーの詳細については、こちらを参照してください。
コマンドレット パラメーター: サイト パラメーターまたは発行設定ファイルによって指定された名前のサイトがバックアップされます。 サイト パラメーターの値は、サイト名の発行設定での指定をオーバーライドします。
ConfigOnly を使用すると、コンテンツなしのバックアップを作成できます。 サイトで既定以外のアプリ プールを使用している場合、同じアプリケーション プールがない可能性がある他のサーバーでこのパッケージを動作させるには、スイッチ パラメーター includeAppPool を使用します。 これにより、アプリケーション プールがパッケージにバンドルされます。
自動生成される Web 配置パラメーター: 2 種類のパラメーターが作成されます。
- サイト バックアップを適用するサイトの名前をユーザーが変更できるようにするパラメーター。
- ユーザーがサイトの物理パスと、そのサイトにあるすべての Web アプリケーションを変更できるようにするもう 1 つのパラメーター。
したがって、3 つのアプリを含むサイトが 1 つある場合は、4 つの個別の物理パスパラメーターと 1 つのサイト名パラメーターを利用できます。
例 :
Backup-WDSite "Default Web Site" -ConfigOnly
Backup-WDSite MySite –IncludeAppPool
Backup-WDSite MySite -SkipFileList $list
3.Web アプリケーション
Backup-WDApp
説明: これは、iisApp プロバイダーを使用して Web アプリケーションをバックアップします。 このプロバイダーの詳細については、こちらを参照してください。 こちらの優れた記事には、Web アプリケーションとは何か、さらに IIS のサイト、アプリ、仮想ディレクトリの違いについて説明があります。
コマンドレット パラメーター: アプリケーション パラメーターまたは発行設定ファイルによって指定された名前のアプリがバックアップされます。 いずれも指定されていない場合は、エラーがスローされます。 アプリケーション パラメーターの値は、サイト名の発行設定での指定をオーバーライドします。 SkipFileList および SkipFolderList パラメーターを使用すると、パッケージから 1 つ以上のファイルまたはフォルダーを選択的に除外できます。
自動生成される Web 配置パラメーター: 復元またはインストール中にアプリまたはサイトの名前を変更するためのパラメーターが作成されます。
$list = @('\\iisstart\.htm')
Backup-WDApp "Default web site/app" -SkipFileList $list
B. データベース
1.MSSql
Backup-WDSqlDatabase
説明: これは、dbfullsql プロバイダーを使用して Microsoft SQL Server データベースをバックアップします。 このプロバイダーは、SMO を使用してデータベースをスクリプト化し、100 個を超えるプロバイダー設定を公開して、データベースがスクリプト化される方法を制御します。 これについては、こちらに詳しく記載されています。
コマンドレット パラメーター: Database パラメーター、または発行設定ファイルの SQLServerDBConnectionString で指定された接続文字列の DB がバックアップされます。 Database パラメーター値は、SQLServerDBConnectionString の発行設定での指定をオーバーライドします。 この dbfullsql プロバイダーによって公開されるプロバイダー設定は、SourceSettings パラメーターを使用して渡すことができます。 非常に一般的に使用される設定の 1 つは、オブジェクトが存在する場合にオブジェクト スクリプトを削除するスクリプトを作成する scriptdropsfirst です。 SMO スクリプト オプションのもう 1 つのプロバイダー設定は、単にスキーマを抽出するために scriptdata を false に設定することです。
自動生成される Web 配置パラメーター: 復元またはインストール中にデータベース接続文字列を変更するためのパラメーターが作成されます
例 :
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
説明: これは、dbfullsql プロバイダーを使用して MySql Server データベースをバックアップします。 このプロバイダーは、mysqldump を使用してデータベースをスクリプト化します。 これについては、こちらに詳しく記載されています。
コマンドレット パラメーター: Database パラメーター、または発行設定ファイルの mySQLDBConnectionString で指定された接続文字列の DB がバックアップされます。 データベース パラメーター値は、mySQLDBConnectionString の発行設定での指定をオーバーライドします。 プロバイダーの設定は、SourceSettings パラメーターを使用して渡すことができます。 一般的に使用される設定は includeData と includeSchema です。 既定では、これらは true に設定されます。
自動生成される Web 配置パラメーター: 復元またはインストール中にデータベース接続文字列を変更するためのパラメーターが作成されます
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. 復元
すべての復元コマンドレットは、復元する Web 配置パッケージを最初の位置指定パラメーターとして受け取ります。
WebDeploy ではパッケージのパラメーター化の概念がサポートされているため、復元中に (パッケージを変更せずに) いくつかの側面を変更できます。 たとえば、復元中に、WebDeploy パラメーターを使用してパッケージ内の値とは異なるデータベース接続文字列の値を指定できます (パッケージに接続文字列パラメーターが存在する必要があります)。
パッケージの構築方法によっては、Web 配置パッケージに 1 つ以上のパラメーターが含まれている場合があります。 これらの復元コマンドレットは、パッケージを検査し、動的な PowerShell パラメーターをコレクションに追加します。 そのため、パッケージに "Parameter1" という名前の Web 配置パラメーターがある場合は、"Parameter1" という名前の PowerShell パラメーターが見つかります。 ただし、動的パラメーターには PowerShell において独自の問題があり、これが機能するのは、パッケージの名前またはファイルへのパスにスペースがない場合のみです。
または、これらすべての復元コマンドレットには "Parameters" パラメーターもあるので、復元中に新しいパラメーター値を手動で指定できます。 この "Parameters" パラメーターは、Web 配置パラメーターの名前と値のペアの PowerShell Dictionary オブジェクトを受け取ります。
Web 配置パッケージで定義されている Web 配置パラメーターを見つけるには、エクスプローラーで zip ファイルを開き、パッケージのルートに存在する parameters.xml ファイルを調べるだけです。 既定値も値もない Web 配置パラメーターには、値を指定する必要があります。 これらのパラメーターをすべて xml ファイルに追加し、ParameterValuesFile パラメーターの値として渡します。 このファイルは、こちらに記載されているように生成することも、手動で生成することもできます。 形式は次のとおりです
<parameters>
<setParameter name="name1" value="value1" />
<setParameter name="name2" value="value2" />
</parameters>
Get-WDParameters コマンドレットは、このファイルを読み取り、すべての復元コマンドレットで受け入れられる WebDeploy パラメーター オブジェクト (ディクショナリ) に変換できます。
任意のパッケージが内部でパラメーターの値の指定なしで復元された場合、既定の動作では、パッケージが最初に作成されたリソースが上書きされます。 たとえば、backup-wdsite site1 を使用して site1 からパッケージを作成した場合、このパッケージ内のパラメーターに値を指定せずに復元コマンドレットを使用してこのパッケージを復元すると、パッケージに含まれるもの、コンテンツと構成で site1 が上書きされます。すべての復元コマンドレットについても同じことが当てはまります。
これらのコマンドレットはすべてローカルに復元します。ただし、宛先の発行設定ファイルが指定されている場合を除きます。この場合、Web 管理サービス (WMSvc) または Web Deployment Agent サービスを介してリモート サーバーに対してまったく同じ操作が実行されます。
A. IIS
1.Server (サーバー)
Restore-WDServer
説明: Web サーバー パッケージを復元します。 一般的な使用方法は、変更を行う前にサーバーをバックアップすることです。失敗した場合、変更を行う前に作成された Web 配置バックアップ パッケージを適用して、サーバーを元に戻すことができます。
$folderList = @(‘\\app_data’)
Restore-WDServer D:\OWAIS-1_WebServer_20120419121214.zip -DestinationPublishSettings c:\destinationServer.publishSettings –SkipFolderList $folderList
2.サイト
Restore-WDSite
説明: IIS サイト パッケージを復元します。 パッケージに "Site Physical Path" と "Site Name" という名前の 2 つのパラメーターがある場合、それらは SitePhysicalPath および SiteName 動的 PowerShell パラメーターとして公開されます。 このコマンドを実行すると、物理パス c:\site1
を使用して新しいサイト 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
説明: これは、Web アプリケーションを復元します。 Backup-WDApp は、インストール時にアプリの名前を変更する 1 つのパラメーターを含むパッケージを作成します。 これを使用すると、復元中にアプリを別のアプリに復元できます。 サイトの下のアプリに配置するときは、サイトが存在する必要があります。 アプリはこのパッケージによって作成されますが、サイトは作成されません。
例 :
Restore-WDApp C:\myappbackup.zip -ApplicationPathParam1 "Default web site\app1"
B. データベース
Restore-WDDatabase
説明: データベースが存在しない場合は、(現在のユーザーがこの操作に対するアクセス許可を持っている限り) customers と呼ばれる新しいデータベースが作成され、それに対してスクリプトが実行されます。 動的な Web 配置パラメーターの値なしでこれを実行すると、このパッケージが作成された元のデータベースが上書きされます。 パッケージの作成時に scriptDropsFirst 設定が使用されなかった場合、競合する既存のコンテンツを含むデータベースへの適用は失敗することに注意してください。 このコマンドレットは、MSSql または MySQL のバックアップを復元するために使用できます。 Backup-WDSQLDatabase を使用して作成されたバックアップを使用した MS SQL データベースの復元と、Backup-WDMySqlDatabase を使用して作成されたバックアップを使用した My SQL データベースの復元のみが可能です。
例 :
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
説明: このコマンドレットは、任意の Web 配置パッケージを適用するために使用できます。 Web 配置パッケージを作成または取得する方法はいくつかあり、オープンソース アプリケーション ギャラリー パッケージのダウンロード、Visual Studio でのパッケージの作成、msdeploy.exe コマンドライン ツール (詳細)、このドキュメントで前述した Backup-WD* コマンドレットの使用などがあります。 たとえば、wordpress という名前のアプリとして IIS サーバーの既定の Web サイトに wordpress をインストールする場合は、アプリ ギャラリーから packages というフォルダーに wordpress パッケージをダウンロードします。 wordpress パッケージ パラメーターの既定値はすべてそのままで動作しますが、2 つの必須パラメーター (管理者および管理者以外の MySQL パスワード) のみ値の指定が必要です。
パラメーター:
Restore-WDPackage c:\Packages\wordpress.zip -DBAdminPassword mysecretserverpassword –DBPassword mysqllocalpassword
IV. 削除
Remove-WDSite -Site NonWorkingSite
このコマンドを実行すると、applicationHost.config 内の nonworkingsite の定義に指定されたサイトと、そのサイトのディレクトリの内容が削除されます
V. アプリ プール フレームワークの取得と設定
これらのコマンドレットを使用すると、apppool .net フレームワークのバージョンを読み取って変更できます。
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 の設定
このコマンドレットを使用して、サイトのコンテンツに acl を設定できます。 たとえば、サイト site1 があり、ユーザー 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. Invoke
destinationpublishsettings を使用してリモート システムでコマンドまたはスクリプトを呼び出し、リモート実行の結果をリアルタイムで確認できます。 runcommand プロバイダーをリモートで実行できるようにするには、リモート システムの管理者である必要があります。 このプロバイダーの詳細については、こちらを参照してください。 MWD Api が特定のスクリプトまたはコマンドの完了を待機する既定の最大時間は 5 秒です。 この実行時間を増やす場合は、次の例に示すように、waitInterval と waitAttempts に大きい値を指定できます。
A. スクリプト
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. 同期
これらのコマンドレットは、ソースと宛先を取得し、それらの間で同期します。 ソースは全く変更されません。 クライアントの代わりにソースという単語を使用している理由は、同期においてクライアントとサーバーが非常に紛らわしい用語であるためです。 場合によっては、ローカル サーバーをリモート サーバーと同期することがあります。 この場合、リモート サーバーがソースで、ローカル サーバーが宛先です。 または、マシン 1 で PowerShell コマンドレットを実行し、マシン 2 と 3 を同期することもできます。 リモートのソースや宛先を使用するには、このドキュメントで説明されている最初のコマンドレットを使用して作成できる発行設定ファイルを指定する必要があります。また、すべての同期コマンドレットでは、sourceSettings パラメーターと destinationSettings パラメーターもサポートされており、ソースまたは宛先あるいはその両方に対してプロバイダー設定を選択的に設定できます。
A. IIS
1.Server (サーバー)
Owais-1 と Owais-2 の 2 つの IIS 7.5 サーバーを同期する必要があります。 最初にそれぞれの publishsettings ファイルを作成し、次にサーバーを同期します。 自分の資格情報を指定しなかったので、これら 2 つのシステムの管理者であれば、これは成功します。
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.サイト
次のコマンドでは、site2 が存在しなかった場合に作成されます。物理パスの変更 (したがってコンテンツは新しいフォルダ c:\site2
にコピーされます) と、サイトのバインドの変更も行いました。
Sync-WDSite site1 Site2 -SitePhysicalPath c:\site2 -SiteBinding "*:8078:" -IncludeAppPool
3.アプリ
既定の Web サイトで実行されているアプリケーションがあります。 これを Site1 に移動する必要があります。 次のコマンドでそれを実行します。
Sync-WDApp "Default Web Site/drupal" "site1/drupal"
新しい druppal アプリの動作をテストしたので、既定の Web サイトにある元の druppal アプリを削除します。
Remove-WDSite "Default Web Site/drupal"
B. データベース
前のコマンドレットでは、Web 配置パッケージを使用してデータベースをバックアップおよび復元する方法を示していますが、Sync-WDSQLDatabase と Sync-WDMySQLDatabase コマンドレットを使用して、.sql スクリプトとの間でデータベースを同期したり、別のデータベース インスタンスに直接同期したりすることもできます。
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 コマンドレットを使用できます。 これは、MWD API でサポートされている一般的なマニフェスト プロバイダー同期です。 詳細については、 こちらを参照してください。 マニフェストは、xml ファイル内のプロバイダー、プロバイダー パス、およびプロバイダー設定のコレクションです。 構造は、xml ファイルのルート ノードが、現在の同期の目的でプロバイダーの名前と見なされるということです。したがって、こちらのリストに定義されている既知のプロバイダーの名前にすることはできません。 その後、同期に含めるプロバイダーと一致する要素名を持つ子ノードを保持できます。path 属性はそのプロバイダーのパスを表し、必須です。 次に、現在の同期操作に利用するプロバイダー設定ごとに属性値のペアを追加します。
このコマンドレットには、2 つのマニフェストが必要です。1 つはソース用、1 つは宛先用です。 マニフェストは常に、指定された順序で実行されます。 プロバイダーが IIS サイトで動作する apphostconfig プロバイダーなどのコミット操作をサポートしている場合、コミットは同期が完了しない限り、呼び出されません。 そのため、サイトを作成するプロバイダーの後にサイトが存在することを想定しているプロバイダーがある場合、サイトがまだコミットされていないため、これは失敗します。 次の例では、アプリを同期し、それが使用するデータベースをアプリと共にマニフェストに含めます。
ソースのマニフェスト:
<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