Чтение онлайн

на главную - закладки

Жанры

Недокументированные и малоизвестные возможности Windows XP

Клименко Роман

Шрифт:

 'параметра 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: является системным);

Поделиться:
Популярные книги

Кодекс Охотника. Книга IV

Винокуров Юрий
4. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга IV

An ordinary sex life

Астердис
Любовные романы:
современные любовные романы
love action
5.00
рейтинг книги
An ordinary sex life

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Защитник

Кораблев Родион
11. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Защитник

Неестественный отбор.Трилогия

Грант Эдгар
Неестественный отбор
Детективы:
триллеры
6.40
рейтинг книги
Неестественный отбор.Трилогия

Метаморфозы Катрин

Ром Полина
Фантастика:
фэнтези
8.26
рейтинг книги
Метаморфозы Катрин

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Хозяйка Междуречья

Алеева Елена
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Хозяйка Междуречья

В теле пацана 4

Павлов Игорь Васильевич
4. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 4

Ротмистр Гордеев 2

Дашко Дмитрий
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 2

Неожиданный наследник

Яманов Александр
1. Царь Иоанн Кровавый
Приключения:
исторические приключения
5.00
рейтинг книги
Неожиданный наследник

Курсант: назад в СССР 2

Дамиров Рафаэль
2. Курсант
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Курсант: назад в СССР 2

Сердце Дракона. Двадцатый том. Часть 2

Клеванский Кирилл Сергеевич
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Сердце Дракона. Двадцатый том. Часть 2

Треск штанов

Ланцов Михаил Алексеевич
6. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Треск штанов