web-dev-qa-db-ja.com

Server Coreでボリュームシャドウコピーをセットアップする方法

GUIなしでWindowsを実行しているシステムで、特定のドライブのシャドウコピーの定期的な作成をセットアップする方法を見つけられない明らかな方法はありますか?

ディスクプロパティの[シャドウコピー]タブに移動して[有効にする]ボタンをクリックすると、基本的にいくつかのスケジュールされたタスクが作成されます。これらのスケジュールされたタスクは、ある種のGUID各ボリュームに固有の?.

コマンドラインからシャドウコピーを有効にする簡単な方法があるはずですよね?

7
Zoredache
7
HopelessN00b

リモートで設定を構成する代わりに、グループポリシーを使用してスケジュールされたタスクを作成することもできます。ご指摘のとおり、通常の方法で作成されたタスクはボリュームIDを使用します。そのアクションは次のようになります。

_vssadmin.exe Create Shadow /AutoRetry=15 /For=\\?\Volume{f9d9bfa1-f506-f24f-f54f-fe6ef47fd6f4}\
_

したがって、もちろん、あなたにとっての課題は、すべてのコンピューターで機能するGPOを作成することです。

ボリュームIDを見つけて同じコマンドを呼び出す小さなpowershellスニペットをスケジュールにすることをお勧めします。

システムドライブに対してこれを実行したいと仮定します。その場合、次のようなコードはPowerShell 2.0以降で機能します。

_$volID = Get-WmiObject Win32_Volume | Where-Object { $_.DriveLetter -ieq $env:SYSTEMDRIVE } | Select-Object -ExpandProperty DeviceID
Start-Process 'vssadmin.exe' -ArgumentList "Create Shadow /AutoRetry=15 /For=$volID" -Wait
_

これはここでは2行で示されているので、何が起こっているのかをより簡単に確認できますが、外部スクリプトファイルなしでタスクを呼び出す場合(複雑になるため)、1行ですべてを記述する必要があります。行をセミコロンで区切ることができます。$()などを使用して、ボリュームID検索行全体を文字列に埋め込むことができます。

Powershellの_-EncodedCommand_パラメーターを使用して、引用符を処理することもできます。これにより、共有のどこかに座って読みやすい複数行のスクリプトを作成できます。そのスクリプトをbase64エンコードし、_-EncodedCommand_を使用して全体をPowerShellに渡します。

このコードがあなたのニーズを満たすと仮定して、必要に応じてこれらのオプションを拡張できます。

3
briantist

これはPowerShellで使用するものです 。それは私のサイトへのリンクですが、ここに貼り付けるよりもずっとよく見えます。

#Enable Volume Shadow copy
clear
$Continue = Read-Host "Enable Volume Shadowcopy (Y/N)?"
while("Y","N" -notcontains $Continue){$Continue = Read-Host "Enable Volume Shadowcopy (Y/N)?"}
if ($Continue -eq "Y") {
#Enable Shadows
vssadmin add shadowstorage /for=C: /on=C:  /maxsize=8128MB
vssadmin add shadowstorage /for=D: /on=D:  /maxsize=8128MB
#Create Shadows
vssadmin create shadow /for=C:
vssadmin create shadow /for=D:
#Set Shadow Copy Scheduled Task for C: AM
$Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=C:"
$Trigger=new-scheduledtasktrigger -daily -at 6:00AM
Register-ScheduledTask -TaskName ShadowCopyC_AM -Trigger $Trigger -Action $Action -Description "ShadowCopyC_AM"
#Set Shadow Copy Scheduled Task for C: PM
$Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=C:"
$Trigger=new-scheduledtasktrigger -daily -at 6:00PM
Register-ScheduledTask -TaskName ShadowCopyC_PM -Trigger $Trigger -Action $Action -Description "ShadowCopyC_PM"
#Set Shadow Copy Scheduled Task for D: AM
$Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=D:"
$Trigger=new-scheduledtasktrigger -daily -at 7:00AM
Register-ScheduledTask -TaskName ShadowCopyD_AM -Trigger $Trigger -Action $Action -Description "ShadowCopyD_AM"
#Set Shadow Copy Scheduled Task for D: PM
$Action=new-scheduledtaskaction -execute "c:\windows\system32\vssadmin.exe" -Argument "create shadow /for=D:"
$Trigger=new-scheduledtasktrigger -daily -at 7:00PM
Register-ScheduledTask -TaskName ShadowCopyD_PM -Trigger $Trigger -Action $Action -Description "ShadowCopyD_PM"
}
1
Dan Rhodes

私の主な問題は、RSATツールがインストールされていても、Windows 7.0、8.1がリモートシステムでシャドウコピーを構成できないことです。

Windowsサーバーからツールを実行しなければならないことに気付いたので、リモートGUIメソッドは問題ありません。これを実現するためのさまざまなスクリプトおよびpowershellメソッドが機能しますが、ほとんどの状況では実際にはそれを必要としませんでした。

0
Zoredache

共有フォルダーのシャドウコピーを有効にして構成するには

1.コンピュータの管理を開きます。 2.コンソールツリーで、[共有フォルダー]を右クリックし、[すべてのタスク]をクリックして、[シャドウコピーの構成]をクリックします。 3.共有フォルダのシャドウコピーを有効にするボリュームをクリックし、[有効にする]をクリックします。 4.デフォルトのスケジュールとストレージ領域を変更するには、[設定]をクリックします。

ここにあります http://itsimple.info/?p=458

0
user485573