“Geri yükleme noktası oluştur” komut dosyasının Windows 7 ve Windows 10 / 8.1'de neden farklı çalıştığı


0

Bir geek makalesinden , şöyle bir betiği alıyorum:

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

Bu komut dosyasıyla Windows 7'de zamanlanmış bir görev oluşturup günlük olarak benim için geri yükleme noktası oluşturmasını sağlıyorum ve iyi çalışıyor.

Ancak Windows 8.1 / 10'da garip bir davranış buluyorum. Yönetici CMD'sinde yürütme

cscript CreateRestorePoint.vbs

Herhangi bir geri yükleme noktası bulunduğunda yeni bir geri yükleme noktası oluşturmaz (ancak yine de "Geri Yükleme Noktası başarıyla oluşturuldu" ifadesini yazdırır). Başka bir deyişle, cscript CreateRestorePoint.vbsyalnızca benden sonra bir geri yükleme noktası oluşturur vssadmin delete shadows /all, ancak cscript CreateRestorePoint.vbsilk geri yükleme noktasının varlığından dolayı ikinci bir başarısızlık koşusu . - Bu sorun Windows 7 SP1'de gerçekleşmez.

Birisi bu sorunu Windows 8.1 / 10'da açıklayabilir ve düzeltebilir mi?

[[[GÜNCELLEME: Sorun Çözüldü]]]

Ken'in yorumunda da belirtildiği gibi, bir kayıt defteri anahtarı eklemek [HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore] SystemRestorePointCreationFrequency=10çözümdür (yeniden başlatma gerekir). Windows 8’den bu yana Microsoft, varsayılan olarak her 24 saatte yalnızca bir geri yükleme noktası oluşturmanıza izin verir. SystemRestorePointCreationFrequency=10bu sınırı 10 minutes'a düşür. Bu MSDN sayfasına bakın .


"Winmgmts: {impersonationLevel = kimliğe bürünmek}! Root / default: SystemRestore" ( bu makaleden alınmış ) deneyin .
harrymc

Yanıtlar:


2

Windows 8.1 ve 10 için güç kabuğunu kullanmak çok daha kolaydır. Her ikisinde de var ve bir astar oluşturup adlandırıyorsunuz.

Bir not .. Kontrol Noktasını sadece 24 saatte bir kontrol edebilirsiniz.

Bu satırı not defterine yerleştirin ve dosyayı CreateCheckpoint.ps1 olarak kaydedin (dosyanın CreateCheckpoint.ps1.txt olarak kaydedilmediğinden emin olun).

Checkpoint-Computer -Description "Daily Restore Point"

Bir yönetici komut istemine gidin ve powershell yazın. Bir pencere açılacaktır. Dosyanın yoluna gidin ve ./createcheckpoint.ps1 yazın, geri yükleme noktasını oluşturacaktır.

Bu işe yararsa, listenizdeki geri yükleme noktasını gösterecektir. Bunu zamanlanmış bir göreve koymak istiyorsanız, bir run.bat dosyası oluşturun ve bu satırları içine yerleştirin. Aşağıdaki yolu ps1 dosyasını yerleştirdiğiniz yere değiştirin. Yarasa dosyasını yönetici olarak çalıştırmanız gerekir.

@ECHO OFF
PowerShell.exe -command "& c:\restorepoint.ps1 -description 'DailyRP'"
PAUSE

Teşekkür ederim. Powershell'i denemek için biraz zamana ihtiyacım var. .Vbs'imin "her 24 saatte yalnızca bir kez oluştur" sınırı nedeniyle başarısız olduğunu mu demek istediniz? Bu konuda herhangi bir Microsoft resmi açıklaması var mı? Bu limiti aşmanın bir yolu var mı?
Jimm Chen

Böyle bir sınır yok - yalnızca son 24 saat içinde oluşturulmadıysa, Windows otomatik olarak bir geri yükleme noktası oluşturacaktır. Maksimum yerine minimum. Yayındaki yorumuma bakın.
harrymc

2
UYARI: Son 1440 dakika içinde zaten bir tane oluşturulduğundan, yeni bir sistem geri yükleme noktası oluşturulamaz. Geri yükleme noktası oluşturma sıklığı, 'HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ SystemRestore' kayıt defteri anahtarı altında 'SystemRestorePointCreationFrequency' DWORD değeri oluşturularak değiştirilebilir. Bu kayıt defteri anahtarının değeri, iki geri yükleme noktası oluşturma arasında gerekli zaman aralığını (dakika cinsinden) gösterir. Varsayılan değer 1440 dakikadır (24 saat).
NobleMan

Bu, onu kodlamak ve elle çalıştırmanın yolunu kullanmamak istiyorsanız.
NobleMan

Bu sadece Checkpoint-Computer'ın bir kısıtlamasıdır.
harrymc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.