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

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

Жанры

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

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

Шрифт:

 • 0 — успешное завершение;

 • 2 — пользователь не имеет доступа к запрашиваемым данным;

 • 3 — у пользователя нет достаточных привилегий;

 • 8 — неизвестная ошибка;

 • 9 — пользователь не имеет необходимых привилегий;

 • 21 — указан недопустимый параметр.

Несмотря на то, что при вызове данного метода был использован только один параметр, на самом деле для работы с ним нужны четыре параметра. Во-первых, это путь к файлу, который будет вызван (в данном случае применялся только этот параметр). Во-вторых, это путь к каталогу, который должен использовать-ся вызываемым

процессом (если он не задан, то будет использоваться каталог, в котором находится запускаемый файл). В-третьих, это строка начальной конфигурации процесса (если она не задана, то будет применяться пустая строка (\"\")). В-четвертых, это переменная, которой будет присвоен идентификатор созданного процесса.

■ Terminate — прекращает процесс и все его дочерние процессы.

■ GetOwner — возвращает учетную запись пользователя, от имени которого был запущен процесс, а также домен, к которому он принадлежит.

■ GetOwnerSid — возвращает SID пользователя, от имени которого был запущен процесс.

■ SetPriority — устанавливает приоритет выполнения определенного процесса.

■ AttachDebugger — вызывает отладчик данного процесса.

ПРИМЕЧАНИЕ

За более детальной информацией обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\wbem.

Выключение, перезагрузка компьютера, завершение сеанса пользователя

С помощью инструментария WMI можно выключить удаленный или локальный компьютер, перезагрузить его или завершить сеанс текущего пользователя. Рассмотрим пример завершения сеанса текущего пользователя на локальном компьютере (если у вас есть удаленный компьютер, то при подключении к пространству имен вместо точки необходимо указать его имя). Особенность данного примера состоит в другом способе подключения к классу — с помощью базы данных CIMOM. 

Листинг 11.5. Завершение сеанса пользователя компьютера

'Подключаемся к пространству имен root\cimv2

set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\\.\root\cimv2")

'Выполняем SQL-запрос для подключения к классу

set colSoftware = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

'Вызываем метод для завершения сеанса пользователя. Метод для своей

'работы использует один параметр (точнее, два, но второй параметр на данный

'момент не используется) – флаг, указывающий на необходимое действие.

'В нашем случае флаг равен 0, что говорит о необходимости завершения сеанса

'пользователя .Для осуществления возможности перезагрузки или выключения

'компьютера необходимо, чтобы инициирующий перезагрузку процесс обладал

'правом SE_SHUTDOWN_NAME. Остальные значения флага определяются от бита,

'установленного в нем.
Биты описаны следующим образом: "Завершение работы",

'"Перезагрузка", "Принудительно", "Питание выключено"

for each objSoftware in colSoftware

 objSoftware.Win32Shutdown 0

next

Как правило, администраторы локального компьютера обладают правами на завершение сеанса. Другие же действия по умолчанию возможны от имени системы.

Кроме метода Win32 Shutdown, класс Win32_OperatingSystem описывает еще три метода. Если вызывающий процесс обладает правом SE_SHUTDOWN_NAME, то выполняются следующие действия.

■ Reboot — компьютер будет перезагружен. Метод не имеет параметров, но при успешном выполнении возвращает 0.

■ Shutdown — компьютер будет выключен. Метод не имеет параметров, но при успешном выполнении возвращает 0.

■ SetDateTime — будет установлено системное время компьютера. Данный метод для своей работы требует один параметр, определяющий новое время, которое нужно установить (имеет тип DateTime, имеющий довольно странный формат, например установка параметра равным "00000000000000.000000:000" обнуляет время).

Получение сведений об установленных на компьютере программах

Это еще одна интересная возможность WMI, которой можно воспользоваться. Другими словами, можно удаленно узнавать о том, установлена ли на компьютере какая-либо программа, когда она была установлена, а также просмотреть весь список установленных на компьютере программ. Для примера попробуем создать текстовый файл, содержащий сведения об установленных на компьютере программах, их описании, а также дате установки. В приведенном ниже коде будет использоваться еще одна возможность WMI — получение сведений непосредственно из ее базы данных.

Листинг 11.6. Создание списка установленных на компьютере программ

'Объявляем объект для доступа к файловой системе, а потом создаем файл,

'в который будут записываться сведения об установленных на компьютере

'программах (например, файл Program_list.txt в каталоге e:\)

set objFSO = CreateObject("Scripting.FIleSystemObject")

set objTextFile = objFSO.CreateTextFile("e:\Program_list.txt", True)

'Подключаемся к пространству имен root\cimv2

set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\root\cimv2")

'Выполняем SQL-запрос на получение всех записей из таблицы Win32_Product

'Конечно, можно было бы использовать SQL-запрос для получения только

'отдельных записей или колонок таблицы, но для примера нам такой сложный

'запрос не нужен

set colSoftware = objWMIService.ExecQuery("Select * from Win32_Product")

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

Ермак. Регент

Валериев Игорь
10. Ермак
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ермак. Регент

Пышка и Герцог

Ордина Ирина
Фантастика:
юмористическое фэнтези
историческое фэнтези
фэнтези
5.00
рейтинг книги
Пышка и Герцог

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Неудержимый. Книга XXIX

Боярский Андрей
29. Неудержимый
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Неудержимый. Книга XXIX

Эммануэль

Арсан Эммануэль
1. Эммануэль
Любовные романы:
эро литература
7.38
рейтинг книги
Эммануэль

Звездная Кровь. Изгой II

Елисеев Алексей Станиславович
2. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
технофэнтези
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой II

Выйду замуж за спасателя

Рам Янка
1. Спасатели
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Выйду замуж за спасателя

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Кротовский, вы сдурели

Парсиев Дмитрий
4. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
рпг
5.00
рейтинг книги
Кротовский, вы сдурели

Неудержимый. Книга XXVI

Боярский Андрей
26. Неудержимый
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXVI

Возвращение демонического мастера. Книга 2

Findroid
2. Вселенная Вечности
Фантастика:
фэнтези
героическая фантастика
5.00
рейтинг книги
Возвращение демонического мастера. Книга 2

Измена. Мой заклятый дракон

Марлин Юлия
Любовные романы:
любовно-фантастические романы
7.50
рейтинг книги
Измена. Мой заклятый дракон

Бестужев. Служба Государевой Безопасности. Книга третья

Измайлов Сергей
3. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга третья