稼働中のwin7をまるごとVirtualBoxに移行する

稼働中のwindows7をまるごとVirtualBoxに移行できないものかとググってみると、方法があったので、実践してみました。

1.Disk2vhdをダウンロードする。
これは、現在稼働中のOSをvhd形式に変換するツールでMSからDLできました。
http://download.sysinternals.com/files/disk2vhd.zip

2.vhdに変換する
disk2vhd.zipを展開後、exeを実行します。下記の画面が表示されますが、VirtualBoxで利用するため、useVhdxのチェックは外してCreateボタンを押します。

3.MacOS上のVirtualBoxに持ってきて起動してみる。
できたvhdファイルが起動できるか、MacOS上のVirtualBoxに置いて起動してみます。

普通に起動できました!

Windowsログ内容をメール送信する

タスクスケジューラのイベントトリガーを利用してWindowsログ内容をメール送信してみます。

今回利用するのはWindowsのPowerShellを利用します。

事前に、PowerShellの実行権限設定を行ってください。

[スタート]->[すべてのプログラム]->[アクセサリ]->[Windows PowerShell](管理者権限で実行)

■ポリシーを変更する

PS C:\windows\system32> Set-ExecutionPolicy RemoteSigned

PS C:\windows\system32> Get-ExecutionPolicy RemoteSigned

PS C:\windows\system32>

■PowerShellスクリプトを用意(test.ps1)

#PowerShellでメール送信


    $username = "ore@hoge.com"

    $myhost = "192.168.0.160"

    $port = 25

    $from = "ore@hoge.com"

    $recipients = "ore@hoge.com"

    $subject = "server log info"

    $body = ""

# コマンド参考


#    $logArray = Get-EventLog -log System -InstanceId 1073748860 -Newest 1 | Format-List


    $logArray = Get-EventLog -log System -InstanceId 1073748860 -Newest 1


    $Index = [string] $logArray.Index

    $EntryType = [string] $logArray.EntryType

    $InstanceId = [string] $logArray.InstanceId

    $EventID = [string] $logArray.EventID

    $Source = [string] $logArray.Source

    $workMessage = [string]$logArray.Message

    $ReplacementStrings = [string]$logArray.ReplacementStrings


    $body = $EntryType +"`n"+ $EventID +"`n"+ $Source+"`n"+$workMessage+"`n"+$ReplacementStrings


    $sc = New-Object Net.Mail.SmtpClient

    $sc.Host = $myhost

    $sc.Port = $port

    $sc.Credentials = New-Object Net.NetworkCredential

    $sc.Credentials.UserName = $username

    $sc.send($from, $recipients, $subject, $body)

■タスクスケジューラーから起動するバッチファイルを作成(test.bat)


powershell C:\temp\test.ps1

■タスクスケジューラーに設定

トリガーイベントを設定し、操作でプログラムの開始を指定。

起動するプログラムは、test.bat

設定タブで「新しいインスタンスを並列で実行」にしておく。