63491: Acronis Cyber Backup: エージェントレス バックアップ中に仮想コンピュータ内でスクリプトを実行する方法

次の言語でも参照できます:

use Google Translate

Operating Systems: 

Last update: 20-08-2021

この記事には、エージェントレス バックアップの際に仮想コンピュータでバックアップ前後のコマンドを実行する方法を紹介しています(例では、バックアップ前のコマンドを実行しています)。

はじめに

Acronis エージェント for Hyper-V を使ってエージェントレスバックアップを行う際、ゲストの仮想コンピュータ内でバックアップ前後のスクリプトを実行したい場合、この記事の説明に従ってください。スクリプトを実行するためには、Powershell Direct が使われます。

Powershell Direct の詳細については、PowerShell を使用した仮想マシンの自動化と管理 をご参照ください。

システム要件:

ホスト: Windows 10、Windows Server 2016 あるいはそれ以降(Hyper-V を使用)
ゲスト/仮想コンピュータ: Windows 10、Windows Server 2016 あるいはそれ以降

この記事の例に使われたシステム構成:

  • Hyper-V ホストおよびゲストの仮想コンピュータの両方に、Windows Server 2016 がインストールされています
  • ゲストの仮想コンピュータのコンピュータ名は TestVM で、そのローカル管理者アカウントは TestVM\Administrator です

ソリューション

1. ゲストの仮想コンピュータで、実行したいコマンド(データベース操作のフリーズ、アプリケーションの停止など)が入っている C:\Temp\script.bat というBATファイルを作成します。

ここでは、バックアップ前後のコマンドの実行をテストするために、このサンプル スクリプトを使います:

echo "Hello from %COMPUTERNAME%"
Echo "Script Launched" >> C:\Temp\log.txt

2. Hyper-V ホストで、以下の内容の C:\Temp\testPS.ps1 というファイルを作成します:

$password = ConvertTo-SecureString 'MyPassword' -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ('<仮想コンピュータ\ユーザー>', $password)
Invoke-Command -VMName <仮想コンピュータのコンピュータ名> -ScriptBlock { 仮想コンピュータに入っているBATファイルへのパス } -Credential $credential 

今回の例では、このようになります:

$password = ConvertTo-SecureString 'MyPassword' -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ('TestVM\Administrator', $password)
Invoke-Command -VMName TestVM -ScriptBlock { C:\Temp\script.bat } -Credential $credential 

3. Hyper-V ホストで、以下の内容の C:\Temp\test.cmd というファイルを作成します:

powershell -command set-executionpolicy unrestricted
powershell -file "<PS1ファイルへのパス>"
powershell -command set-executionpolicy default

ステップ2で作ったファイルへのパスを入れてください。今回の例では、このようになります:

powershell -command set-executionpolicy unrestricted
powershell -file "C:\Temp\testPS.ps1"
powershell -command set-executionpolicy default

Hyper-V クラスタを使用する場合、このスクリプトはクラスタのすべてのノードに入っている必要があります。そうすると、仮想コンピュータが現在使用しているノードに拘わらず、スクリプトの実行に成功します。

 

4. バックアップ計画を作成し、必要な仮想コンピュータに適用します。[バックアップ オプション] では、バックアップ前のコマンドを有効にし、実行するコマンドとしてステップ3で作成したCMDファイルを指定します:

5. バックアップ計画を保存し、実行します。

ベリファイ

この記事で例として紹介しているスクリプトを使用した場合、バックアップ計画を開始した後、仮想コンピュータに入っている C:\Temp\log.txt をチェックしてください。「Script launched」という文が入っているはずです。

タグ: