Код, который я сделал для VSS:
$array = @()
$arrayforC=@()
$checkC = gwmi -class Win32_Share | Where-Object {$_.path -match "C:"}
$checkD = gwmi -class Win32_Share | Where-Object {$_.path -match "D:"}
foreach ( $checkin in $check ) {$arrayforC = $checkin | where-object
{$_.name -ne 'Admin$' `
-and ($_.name -ne 'C$') -and ($_.name -ne 'print$') `
-and ($_.name -ne 'IPC$')} }
foreach ( $checkin in $check ) {$arrayford = $checkin | where-object
{$_.name -ne 'Admin$' `
-and ($_.name -ne 'D$') -and ($_.name -ne 'print$') `
-and ($_.name -ne 'IPC$')} }
#if ( $arrayforC -eq $null ) {Write-host Null}
if ( $arrayforC -ne $null )
{
vssadmin add shadowstorage /for=C: /on=C: /maxsize=10%
vssadmin create shadow /for=C:
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"
}
if ( $arrayforD -ne $null )
{
vssadmin add shadowstorage /for=D: /on=D: /maxsize=10%
vssadmin create shadow /for=D:
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"
}
Первая и основная проблема заключается в том, что когда я использовал этот сценарий, он создавал теневые копии с моими аргументами, но когда вы переходите на диск C, щелкаете его правой кнопкой мыши и нажимаете Настроить теневые копии, я вижу, что это не Включить теневое копирование (я прикреплю рисунок ниже)введите описание изображения здесь
и вторая проблема: Register-ScheduledTask: невозможно создать файл, если этот файл уже существует. В строке: 22 символа: 1 + Register-ScheduledTask -TaskName ShadowCopyC_AM -Trigger $ Trigger -Ac ...
Я не знаю, почему он сказал, потому что каждый раз, когда он создает файл, он всегда с другим именем.