Большинство практических WMI-сценариев создается на основе того или иного примера, который найден в Интернете. Приведу несколько возможных вариантов WMI-сценариев.

Перечисление логических дисков системы.

Следующий сценарий на Visual Basic выводит на экран наименования логических дисков, присутствующих в системе.

for each Disk in GetObject("winmgmts:").InstancesOf _

("CIM_LogicalDisk")

WScript.Echo "Instance:", Disk.Path_.Relpath

Next

При выполнении цикла переменной Disk поочередно присваиваются все элементы класса "логический диск". Затем сценарий (третья его строчка) выводит на экран сообщение с логическим именем этого диска.

Перезапуск остановившихся служб системы.

Следующий пример кода на Visual Basic может быть использован для перезапуска остановленных служб системы:

Set colListOfServices = GetObject("winmgmts:").ExecQuery _

("Select * from Win32_Service Where State = 'Stopped' and _

StartMode = 'Automatic'")

For Each strService in colListOfServices strService.StartService()

Next

Первая строка кода создает коллекцию объектов, удовлетворяющих условию выборки, заданному в WQL-запросе. Этот запрос выбирает все службы, для которых установлен автоматический режим запуска и которые в настоящий момент остановлены. Пятая строка кода организует цикл, выполняющий метод запуска служб, найденных на предыдущем этапе.

Для данного сценария можно установить автоматический запуск через определенные промежутки времени, чтобы гарантировать работу всех служб компьютера. В свойствах службы есть опция восстановления, в которой можно задать параметры перезапуска службы после ее аварийной остановки. Однако если служба по тем или иным причинам не стартовала при запуске системы или была остановлена вручную, то автоматически она также не будет запущена. Приведенный в примере код позволяет автоматически находить такие службы и запускать их.

Варианты применения wmi | Самоучитель системного администратора | Powershell


Самоучитель системного администратора



Новости за месяц

  • Август
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31