2013-07-11 20 views
29

rsyncを使用してWindowsコンピュータをバックアップするためのPowerShellスクリプトを作成中です。この目的のために、私は上記のスクリプトからWMIを使用して、作者が参加する非永続シャドウコピーを作成しようとしています(バックアップには明らかに推奨されています)。PowerShellの "バックアップ"コンテキストを使用したシャドウコピーの作成

一般的にシャドウコピーを作成する方法を別の質問(Accessing Volume Shadow Copy (VSS) Snapshots from powershell)から見つけましたが、ここで与えられた例では、コンテキストパラメータとして "ClientAccessible"を使用しています。その結果、ライターなしで永続シャドウコピーが作成されます参加。

Get-WmiObject win32_shadowcontext | Out-GridView 

これは、リストはコンテキストが命名したん」:ソリューションを探している間

、私はWMIによって理解されていると仮定したコンテキストのリストを取得するには、次のコマンドを使用することができることを発見しましたバックアップ "、これは便利な私が望むものです。によると

ReturnValue  : 5 
ShadowID   : {00000000-0000-0000-0000-000000000000} 

に設定されている

$shadow = (Get-WmiObject -list win32_shadowcopy).Create("C:\", "Backup") 

はしかし、これが失敗するように見えると$シャドウ変数の内容:私は、そのコンテキストを使用して、非永続的なシャドウコピーを作成しようとすることを進ん関連ドキュメント(Create method of the Win32_ShadowCopy class)、戻り値は「サポートされていないシャドウコピーコンテキスト」を意味します。

なぜこのコンテキストがサポートされていないのか、まったく使用できないのか関連文書が見つかりませんでした。私は "FileShareBackup"と "AppRollback"コンテキストも成功させずに試してみました。

シャドウコピーを作成するときに何らかの理由でWMIが "clientAccessible"以外のものを本当にサポートしていないとか、OSに依存していると思います(Windows 7でこれをテストしています)。 、64-bit)

これを動作させるにはどうすればよいですか?

+2

私は同じことを自分で書いています(しかし、C#とライブラリAlphaVSSで書かれています)。これは私が学んだことです:スナップショットをマウントしてファイルを同期させてマウントできるようにする必要がありますスナップショットは 'NoAutoRelease'フラグが' true'にセットされていなければなりません。また、 'NoAutoRelease'をtrueに設定するには、' Persistent'を 'true'に設定する必要があります。そうすれば、' ClientAccessable'が動作するのに余計な時間を費やすことがなくなります。両方の変数が「true」に設定されている) –

+0

NoAutoReleaseをFalseに設定して作成されたシャドウコピーは、要求したプロセスが終了すると自動的に削除されます([リンク](http://msdn.microsoft.com/en-us/library/windows/desktop) /aa394427(v=vs.85).aspx))。もともと私はそれが私が見ていた問題だと疑っていましたが、私がAppRollbackの文脈と同じ問題を抱えているという事実は、そうでないかもしれないことを示唆しています。しかし一般に、[リンク](http://www.goodjobsucking.com/?p=62)で説明されているように、自動リリースシャドウコピーをマウントすることは可能です。しかし、私はそこで提案されている解決策よりもPowerShellを使う方が好きです。 –

+2

WMIを動作させることができない場合は、[AlphaVSSアセンブリ](http://alphavss.codeplex.com/)をPowershellにロードしてみてください。 [スナップショットの作成方法、マウント方法、C#での削除方法はこちら](http://pastebin.com/XhVLyq0m)、PowerShellにそのスナップショットを翻訳できるはずです。 –

答えて

1

あなたの$ shadowはエラーメッセージを見て戻り値が5で、シャドウIDはすべて0です。バイナリを使ってレジストリのボリュームシャドウコピーの最後に1または2を追加する必要がありますdword ..

regeditの検索でvolsnapという名前のレジストリにフォルダがあります.volsnap.sysは、C:\ Windows \ System32 \ driversディレクトリにあります。ファイルサイズは52,352バイトです。volsnapファイルには、Microsoftのデジタル署名が含まれています。正しいバイト数を確認してください。

これは、その真偽を確認します。 volsnap.sysは、EXE-Packerによって圧縮されたファイルのようです。この手法は、ファイルサイズを小さく抑え、デバッグ作業を妨げるために、トロイの木馬によってよく使用されます。

しかし、それだけでは、善意の専門家のソフトウェア製作者であっても、圧縮ファイルを利用するため、悪意のある意図を推定する十分な理由ではありません。このため、すべての専門家の2%がこのファイルを脅威になると考えています。それが害を及ぼす可能性は高いです。他のユーザーからの追加コメントを検討してください。

シャドウIDのデフォルト 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000005

それはすでにそれはおそらく1

かに変更しdoesntの5を持っている場合まさにshown.youは$ Wかどうかわからないdiffernt文言イムを試してみても通り

シャドウのid $シャドウ00000000-0000-0000-0000-0000000000001

新しいコードを作成しませんork。スタンドアロン版のjsを試していない場合。

関連する問題