Por que o script “criar ponto de restauração” funciona de maneira diferente no Windows 7 e no Windows 10 / 8.1

0

De um artigo como-geek , eu recebo um script como este:

strDesc = "Restore Point by script"
Set oArgs = WScript.Arguments
If oArgs.Count > 0 Then strDesc = oArgs(0)

WScript.Echo "Creating Restore Point: " & strDesc

Set oRestorePoint = GetObject("winmgmts:\.\root\default:SystemRestore")
strResult = oRestorePoint.CreateRestorePoint(strDesc, 0, 100)

If strResult <> 0 Then
    WScript.Echo "Error " & strResult & ": Unable to create Restore Point"
    WScript.Sleep 444000    'Let user see the result
Else
    WScript.Echo "Restore Point created successfully."
    WScript.Sleep 2000      'Let user see the result
End If

WScript.Quit strResult

Eu crio uma tarefa agendada com esse script no Windows 7 para que ela crie pontos de restauração diariamente para mim e funcione bem.

No entanto, no Windows 8.1 / 10, eu acho um comportamento estranho. Dentro de um CMD de administrador, executando

cscript CreateRestorePoint.vbs

não cria um novo ponto de restauração quando existe algum ponto de restauração (mas ainda imprime "Ponto de restauração criado com êxito"). Em outras palavras, cscript CreateRestorePoint.vbs cria um ponto de restauração somente depois que eu faço vssadmin delete shadows /all , mas uma segunda execução de cscript CreateRestorePoint.vbs falha devido à existência do primeiro ponto de restauração. - Este problema não acontece no Windows 7 SP1.

Alguém pode explicar e corrigir esse problema no Windows 8.1 / 10?

[[[UPDATE: Problem Solved]]]

Assim como Ken aponta em seu comentário, adicionar uma chave de registro [HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore] SystemRestorePointCreationFrequency=10 é a solução (reinicialização necessária). Desde o Windows 8, a Microsoft permite criar apenas um ponto de restauração a cada 24 horas. SystemRestorePointCreationFrequency=10 diminui esse limite para 10 miniutes. Veja esta página do MSDN .

    
por Jimm Chen 02.11.2015 / 08:11

1 resposta

2

É muito mais fácil usar o power shell para o Windows 8.1 e 10. Ambos têm isso e você cria um liner e o nomeia.

Uma nota ... você só pode executar o Checkpoint uma vez a cada 24 horas.

Coloque esta linha no bloco de notas e salve o arquivo como CreateCheckpoint.ps1 (verifique se o arquivo não está salvo como CreateCheckpoint.ps1.txt).

Checkpoint-Computer -Description "Daily Restore Point"

Vá para um prompt de comando do administrador e digite powershell. Uma janela se abrirá. Basta ir ao caminho do arquivo e digitar ./createcheckpoint.ps1 e ele criará o ponto de restauração.

Se isso funcionar, ele mostrará o ponto de restauração na sua lista. Se você quiser colocar isso em uma tarefa agendada, crie um arquivo run.bat e coloque essas linhas nele. Altere o caminho abaixo para onde você colocou o arquivo ps1. Você precisa executar o arquivo bat como administrador.

@ECHO OFF
PowerShell.exe -command "& c:\restorepoint.ps1 -description 'DailyRP'"
PAUSE
    
por 06.11.2015 / 04:00