'ΠΎΡΡΠ°Π²ΡΠ΅Π³ΠΎΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°ΡΡΠΈ
'ΠΊΠΎΠ΄Π° ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.
private sub sronoff()
'ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ WMI Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ½ΠΈΠΊΠ΅ΡΠ° winmgmts.
'ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ root/default Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ
'ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡ SystemRestore ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° c ΠΈΠΌΠΈΡΠ°ΡΠΈΠ΅ΠΉ
'ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° (impersonate). ΠΡΠ»ΠΈ Π²Π°ΠΌ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ
'ΠΈΠΌΠ΅Π½ root/default, ΡΠΎ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠ»Π°ΡΡ SystemRestore
'ΠΠΎΠΌΠ½ΠΈΡΠ΅, Π²ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅Π΅ΡΡΡΠ°, Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠ³ΠΎΠ²
'ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² WMI. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΡ ΠΈ
'ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.
Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")
'Π§ΡΡΡ Π½ΠΈΠΆΠ΅ ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ· ΡΠ΅Π΅ΡΡΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ
'ΡΡΠ΅Π½Π°ΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°,
'Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² ΡΠ΅Π΅ΡΡΡΠ΅. Π§ΡΠΎΠ±Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
'Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°Π»ΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΌΡ ΠΏΠΎΠ΄Π°Π²Π»ΡΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΄Π°ΡΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.
'ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΡΡΡΠΎΠΊΠ° Π³ΠΎΠ²ΠΎΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΎ ΡΠΎΠΌ,
'ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π°Π»ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ,
'Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ON ERROR RESUME NEXT
'ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ΅Π΅ΡΡΡΠΎΠΌ. ΠΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
'ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° DisableSR. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π²Π½ΠΎ 1,
'ΡΠΎ SystemRestore ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ Π½Π° Π²ΡΠ΅Ρ Π΄ΠΈΡΠΊΠ°Ρ ΠΈ Π½Π°Ρ
'ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ,
'ΠΊΡΠΎΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ.
dasableSR = objREG.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DisableSR")
'ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²
'ΡΠ΅Π΅ΡΡΡΠ΅, ΡΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π°ΠΏΠΈΡΠ΅Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ err
'ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ°Π²Π½ΡΠΉ β2147024894 (ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ
'Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ΅Π΅ΡΡΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ
'ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ, Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ) .ΠΡΠ»ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π°
'ΠΎΡΠΈΠ±ΠΊΠ° Ρ Π΄Π°Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΎ SystemRestore Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°,
'ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ/ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ², ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ
'(Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ΄ Π‘:\ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΠΊ), Π±ΡΠ΄ΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½Ρ.
'ΠΠΈΠΆΠ΅ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π΅ ΡΠ΅ ΠΆΠ΅
'Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎ ΠΈ ΡΡΠΎ. Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π±ΡΠ»Π° ΠΎΠΏΠΈΡΠ°Π½Π°
'Π»ΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΠ°ΠΊΠΊΠ°ΠΊ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Windows ΡΡΠΎ
'Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ
'ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
if (err.Number = β2147024894) and (Drive <> "c:\") then
objTextFile.WriteLine " : ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ DisableSR ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠ΅Π΅ΡΡΡΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ SystemRestore ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠ° Π΄Π»Ρ Π΅Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ Π‘Π²ΠΎΠΉΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΡ"
'ΠΡΡ ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π³Π»Π°Π²Π½Π°Ρ, ΡΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ
'ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΡ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΡΠ΅Π½Π°ΡΠΈΡ
'Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ/ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ
'Π΄ΠΈΡΠΊ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ SystemRestore ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°.
exit sub
End if
'ΠΠΎΠ΄ Π΄ΠΈΡΠΊΠΎΠΌ C:\ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Π°ΡΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ
'Π΄ΠΈΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ Π΄ΠΈΡΠΊ Π‘:\, ΡΠΎ Π±ΡΠΊΠ²Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ
'ΡΠ°Π±ΠΎΡΡ SystemRestore Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
'SystemRestore Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Π΄ΠΈΡΠΊΠ΅ SystemRestore Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
'ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ΅Ρ Π΄ΠΈΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ DisableSR ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ
'ΡΠ°Π²Π΅Π½ 1. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅/Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ System Restore
'Π½Π° ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° Π΄ΠΈΡΠΊΠ°Ρ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ
'ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° DisableSR, ΡΠ°Π²Π½ΠΎΠΌ 1 (ΡΡΠΈ Π·Π°ΠΏΡΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ). ΠΡΠΈ
'ΡΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΠΊ Π·Π°ΠΏΡΠΎΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ β Π΅ΡΠ»ΠΈ SystemRestore Π½Π°
'Π½Π΅ΠΌ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ DisableSR ΡΡΠ°Π½Π΅Ρ ΡΠ°Π²Π½ΡΠΌ 0, Π° Π·Π½Π°ΡΠΈΡ,
'Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΈ ΡΠ°ΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
'ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π½ΠΈΠΆΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄ΠΈΡΠΊ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
if (dasableSR > 0) and (Drive <> "c:\") then
objTextFile.WriteLine " : ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ SystemRestore Π½Π° Π²ΡΠ΅Ρ Π΄ΠΈΡΠΊΠ°Ρ Π±ΡΠ»Π° ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°"
exit sub
else
'ΠΠ»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ
'if β¦ else ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ select case. Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ Π΄Π°Π»ΡΡΠ΅
'ΠΊΠΎΠ΄ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ.
select case StopSR
case "N"
If (obj.Disable(Drive)) = 0 Then
objTextFile.WriteLine " : SystemRestore Π΄Π»Ρ Π΄ΠΈΡΠΊΠ° " & Drive & " ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°"
Else
objTextFile.WriteLine " : ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!!! SystemRestore Π΄Π»Ρ Π΄ΠΈΡΠΊΠ° " & Drive & " ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ"
End If
case "Y"
If (obj.Enable(Drive)) = 0 Then
objTextFile.WriteLine " : SystemRestore Π΄Π»Ρ Π΄ΠΈΡΠΊΠ° " & Drive & " ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π°"
Else
objTextFile.WriteLine " : ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!!! SystemRestore Π΄Π»Ρ Π΄ΠΈΡΠΊΠ° " & Drive & " Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ"
End If
End Select
End if
'Π‘ΡΠΈΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠΎΠ½ΠΎΠΌ Π·Π°ΠΊΡΡΠ²Π°ΡΡ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΎΡΠΊΡΡΡΡΠ΅
'Π΄ΠΎ ΡΡΠΎΠ³ΠΎ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΠΌ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΡΡΡΠΎΠΊΠ°.
objTextFile.Close
end sub
ΠΠΎΡ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΈ Π²ΡΠ΅. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ½ ΠΎΠΏΠΈΡΠ°Π½ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΈΠ½Π°ΡΠ΅ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ WMI. ΠΡΠ»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π΅ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ, Π° ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΡΠ΅ΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠΎΠΊΡ
Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/ default:SystemRestore")
Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠΎΠΊΠΎΠΉ
Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\Β«ΠΈΠΌΡΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Β»\root\default:SystemRestore")
ΠΡΠΈ ΡΡΠΎΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΊΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΎΠΏΡΡΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ.
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ:
β cscript d: \sr.vbs β ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ (Π΅ΡΠ»ΠΈ Π΄ΠΈΡΠΊ C: ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ);
β cscript d:\sr.vbs c:\ Y β ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ (Π΅ΡΠ»ΠΈ Π΄ΠΈΡΠΊ C: ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ);
β cscript d:\sr.vbs D:\ N β ΠΎΡΠΊΠ»ΡΡΠΈΡΡ SystemRestore ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅ D:.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ°Ρ Π·Π° ΡΠ°Π±ΠΎΡΡ WMI, Π° Π½Π΅ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠΎΠ½ΠΈΠΊΠ΅ΡΡ winmgmts ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ. ΠΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ SystemRestore, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΠΈΡΡΠΈΠ½Π³ 11.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡSet obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/ default:SystemRestore")
'Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΡΠΊΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
'Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
'ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΡΠΎΡΠΊΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ»ΡΡΠ°Π΅
'Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΠ°ΠΌ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π΅ Π½ΡΠΆΠ΅Π½,
'Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² Π»ΡΠ±ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ.
'ΠΡΠ»ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΡΠΊΠΈ Π² ΠΆΡΡΠ½Π°Π»,
'ΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ.
ErrorSRCode = obj.CreateRestorePoint("Π’ΠΎΡΠΊΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΡ " & Time(), 0, 100)
ΠΠ½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²Π΅ΡΠ²ΠΈ ΡΠ΅Π΅ΡΡΡΠ°
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ ΡΠ΅Π΅ΡΡΡΡ (WScript.CreateObject("Wscript.Shell") ), ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΠΈΡΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ· ΡΠ΅Π΅ΡΡΡΠ°, Π±ΡΠ» ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ/ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΈΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅Π΅ΡΡΡΠΎΠΌ.
ΠΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ β Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ ΡΠ΅Π΅ΡΡΡΠ°. ΠΡΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Windows, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ Π½Π΅ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ Π½ΠΎΠ²ΠΎΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Windows, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.