2

私は PowerShell を初めて使用し、次の PowerShell スクリプトをまとめる方法をグーグルで検索することができました。

#System Variable for backup Procedure

 $date = Get-Date -Format d.MMMM.yyyy
 New-PSDrive -Name "Backup" -PSProvider Filesystem -Root "\\server>\<path>"
 $source = "\\server>\<path>"
 $destination = "\\<server>\<path>\$date"
 $path = test-Path $destination

メール変数

 $smtp = "smudmug.mug"
 $from = "James Clegg <email@email.com>"
 $to = "James Clegg <email@email.com>"
 $body = "Hi All, </br></br> Please find the back up log File for <Server>      attached.</br></br> Back up complete on $date</br></br>Kind Regards,</br></br> James"
 $subject = "Backup of <Server> is Complete $date"

バックアップ プロセスが開始されました

if ($path -eq $true) {
write-Host "Folder Already exists"
Remove-PSDrive "Backup"  
} elseif ($path -eq $false) {
        cd backup:\
        copy-Item -Recurse $source -passthru -Destination $destination
        $backup_log = Dir -Recurse $destination | out-File      "$destination\backup_log.txt"
        $attachment = "$destination\backup_log.txt"
        #Send an Email to User 
        send-MailMessage -SmtpServer $smtp -From $from -To $to -Subject        $subject -Attachments $attachment -Body $body -BodyAsHtml
        write-host "Backup Successful"
        cd c:\

     Remove-PSDrive "Backup"  
     }

   cmd /c pause | out-null

使用中のファイルをコピーできるようにするために追加する必要があるものを教えてください。

敬具、

ジェームズ

4

1 に答える 1

1

別のアプリケーションで開いているファイルをコピーするのは簡単ではありません。問題は、ファイルをコピーできたとしても、ファイルが使用可能な状態にあるという保証がないことです。最も単純なテキスト ファイルを除くすべてのファイルは、簡単に破損します。次のシナリオを検討してください。

   user           backup
    |                |
 (saves doc)         |
    |                |
(write n chars)      |
    |             (read file)   
(write m chars)   (write copy)
    |                |

望ましい結果は何ですか?ユーザーの観点からは、ドキュメントには保存前または保存前のいずれかの状態が含まれている必要があります。実際の結果は、一部の変更が保存されただけで、ほとんど正しくありません。ファイルがスプレッドシートのようにより複雑な構造である場合、結果は修復できないほど破損する可能性があります。

この種の同時実行の問題を回避するために、オープン ファイル エージェントがあります。Windows には VSS (ボリューム シャドウ コピー サービス) が組み込まれており、サードパーティ製品も存在します。アイデアは、ファイルのアクティビティを監視し、すべての変更がディスクにフラッシュされたときに一貫性のあるコピーを作成することです。これには、アプリケーションからの協力も必要です。VSS の詳細については、Technetの記事を参照してください。最善の策は、すでに問題に取り組んでいる既存のバックアップ ソリューションを使用することです。

于 2015-06-26T09:38:36.913 に答える