Есть ли какой-то очевидный метод, который я не нашел, как настроить периодическое создание теневых копий для данного диска в системе под управлением Windows без графического интерфейса?
Из того, что я могу сказать, переход на вкладку «Теневые копии» свойств диска и нажатие кнопки «Включить» в основном просто создает пару запланированных задач. Эти запланированные задачи, кажется, используют какой-то GUID, уникальный для каждого тома? так что это не то, что я мог бы легко сделать с помощью групповой политики.
Должен же быть какой-то простой способ включения теневых копий из командной строки, верно?
Вы думаете, что это должно быть легко, не так ли? Что ж, ты ошибаешься. Это не.
Если о простоте не может быть и речи ... см. эту ветку, где они пытаются пройти трудный путь. Я люблю автоматизировать вещи, но в данном случае я думаю, что это гораздо больше усилий, чем просто использование графического интерфейса изначально.
Вместо удаленной настройки параметра вы можете просто создать запланированную задачу с помощью групповой политики. Как вы упомянули, задача, созданная обычным способом, использует идентификатор тома; его действие выглядит примерно так:
vssadmin.exe Create Shadow /AutoRetry=15 /For=\\?\Volume{f9d9bfa1-f506-f24f-f54f-fe6ef47fd6f4}\
Поэтому, конечно же, перед вами стоит задача создать объект групповой политики, который работал бы на всех компьютерах.
Я предлагаю сделать ваше расписание небольшим фрагментом 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
Здесь это показано в виде двух строк, чтобы вам было легче увидеть, что происходит, но, очевидно, если вы намереваетесь вызывать свою задачу без внешнего файла сценария (что усложняет ситуацию), вам придется разместить все это в одной строке. Вы можете разделить строки точкой с запятой, вы можете просто встроить всю строку поиска идентификатора тома в строку с помощью $()
, и т.д.
Вы также можете использовать PowerShell -EncodedCommand
параметр для работы с цитированием. Это позволяет получить удобный для чтения многострочный скрипт, который можно разместить где-нибудь в общей папке. Вы base64 кодируете этот сценарий, а затем передаете все это в PowerShell с помощью -EncodedCommand
.
При необходимости я могу расширить эти параметры, если этот код удовлетворит ваши потребности.
Это то, что я использую в 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"
}
В ОС СЕРВЕР (не Windows 10) вы можете выполнить следующие действия:
Моя основная проблема на самом деле заключается в том, что Windows 7.0, 8.1 не может настраивать теневые копии в удаленной системе даже с установленными инструментами RSAT.
Теперь, когда я понимаю, что должен запускать инструмент с сервера Windows, методы удаленного графического интерфейса в порядке. Для этого подойдут различные сценарии и методы PowerShell, но в большинстве ситуаций мне это не требовалось.
Включение и настройка теневых копий общих папок
1. Откройте Управление компьютером. 2. В дереве консоли щелкните правой кнопкой мыши Общие папки, щелкните Все задачи и щелкните Настроить теневые копии. 3.Щелкните том, на котором вы хотите включить теневые копии общих папок, а затем щелкните Включить. 4.Чтобы внести изменения в расписание и область хранения по умолчанию, нажмите «Настройки».
найдено здесь http://itsimple.info/?p=458