2016-08-01 7 views
0

次のPowerShellスクリプトを作成しました。タスクスケジューラのPowerShell MySQLバックアップスクリプトのエラー0x00041301

$root = 'C:\Backups\My Website\Database Dumps\' 

$dateString = (Get-Date).ToString("yyyy-MM-dd") 

$fileName = $dateString + "-MyWebsiteDbBackup.sql" 

$backupFilePath = ($root + $fileName) 

$command = ("mysqldump -u root wpdatabase > " + "`"$backupFilePath`"") 

Write-Host $command 

Invoke-Expression $command 

その機能は、自分のワードプレスWebサイト用のMySQLデータベースを毎日バックアップすることになっています。

PowerShell ISEでスクリプトを実行すると問題なく実行され、MySQLダンプファイルが作成されます。

ただし、タスクスケジューラでは、コード0x00041301で実行中に停止していました。

資格情報については、my.cnfのテクニックdescribed hereを使用しています。ユーザーがログオンしているかどうかにかかわらず、実行するタスクを設定しました。

vonPryzの答えに基づいて

コード更新。

$root = 'C:\Backups\My Website\Database Dumps\' 

$dateString = (Get-Date).ToString("yyyy-MM-dd") 

$fileName = $dateString + "-MyWebsiteDbBackup.sql" 

$backupFilePath = ($root + $fileName + " 2>&1") 

$command = ("mysqldump -u root wpdatabase > " + "`"$backupFilePath`"") 

Write-Host $command 

$output = Invoke-Expression $command 

$output | Out-File C:\mysqlBackupScriptOutput.txt 

これは今私が間違って何をやっているillegal character in path

を言って、エラーを与えますか?

+1

「$ dateString =(Get-Date).ToString( "yyyy-MM-dd") 'は読みやすくなります。 – vonPryz

+0

ありがとうございます。私はそれをそれに更新します。 – Ciwan

+0

$ backupFilePathに割り当てた文字列から '2>&1'を削除して、まだ無効な文字を取得しているかどうかを確認します(>は不正なパス文字です)。 –

答えて

0

タスクスケジューラのコード0x00041301meansタスクが実行されていること。これは、mysqldumpが何かを促している可能性があります。たぶんパスワードか確認ダイアログ。どのユーザーアカウントが実行中のタスクですか?

デバッグするには、プロセスの出力をキャプチャして、何が起こっているのかを確認する必要があります。 Tee-Objectを使用してファイルにコピーを送信してみてください。

+0

ありがとうございました。私が最後に 'Invoke-Expression $ command |ティーオブジェクト - ファイルパス "C:\ commandoutput.txt" | Out-Null'でテキストファイルを作成しますか?それとも最初にそれを持っている必要がありますか? – Ciwan

+0

いいえ、それはそうではないように見えます。まずファイルを作成してみましょう。 – Ciwan

+0

それは助けにもならなかった。私がタスクを実行した後、 'commandoutput.txt'は空でした! – Ciwan

関連する問題