System control manager как запустить

Обновлено: 02.07.2024

Службы SQL Server можно запускать и останавливать также при помощи Windows 2000 Service Control Manager, как локально, так и через сеть. Вы можете даже сконфигурировать службы SQL Server на автоматический запуск при каждом запуске вашего компьютера. Чтобы службы SQL Server запускались автоматически из Windows 2000 Service Control Manager, выполните следующие действия.

  1. Нажмите на экранную кнопку Start, наведите курсор на Programs, затем наведите курсор на Administrative Tools, а затем выберите Services, чтобы запустить Service Control Manager (рис. 8.3).

Применение SQL Server Enterprise Manager

Enterprise Manager – это часть Microsoft Management Console (MMC), "Консоли Управления Microsoft". MMC является основным приложением, служащим для управления всеми аспектами работы компьютера под управлением Windows 2000 Server. В Windows 2000 и в последующих версиях Windows, MMC будет иметь гораздо более важную роль при управлении приложениями Microsoft BackOffice , такими как Microsoft Exchange Server, Microsoft Proxy Server , Microsoft Site Server, Microsoft Systems Management Server и Microsoft SNA Server.

Управление SQL Server

Для конфигурирования и управления инсталляцией SQL Server чаще всего применяется Enterprise Manager. В то время как Service Manager позволяет только запускать, приостанавливать и останавливать службы, Enterprise Manager может останавливать и запускать сервер, а также выполнять следующие действия.

  • Регистрировать сервер.
  • Конфигурировать локальные и удаленные серверы.
  • Конфигурировать многосерверные инсталляции и управлять ими.
  • Выполнять настройку входа в систему и добавлять новых пользователей, системных администраторов и операторов.
  • Назначать пароль системного администратора (sa).
  • Создавать и планировать задания.
  • Создавать оповещения и конфигурировать SQL Server для общения с системными администраторами через электронную почту.
  • Устанавливать базы данных, таблицы, индексы, представления, хранимые процедуры, правила, триггеры, настройки по умолчанию, устройства для резервного копирования, журналы ошибок и управлять ими.
  • Управлять другими службами SQL Server.

Enterprise Manager (рис. 8.5) является как бы "универсальным средством" для решения всех этих и других задач. В оставшейся части данной лекции мы поможем вам начать пользоваться средством Enterprise Manager. А в других лекциях мы расскажем, как применять Enterprise Manager для решения более сложных задач по управлению SQL Server.

Ниже перечислены четыре задачи, которые можно выполнять при помощи Enterprise Manager. Эти задачи нужно выполнить, когда вы впервые начинаете пользоваться некоторой инсталляцией SQL Server. Затем, в последующих разделах, мы более подробно расскажем о каждой из этих задач.

SCM — это сервер, реализованный в Windows, для удаленного управления сервисами (вызовом процедур).

Постановка задачи

Решение проблемы с ошибками

Класс имеет два конструктора, первый — по умолчанию: сохраняет код ошибки при выполнении. Второй — получает код ошибки, как аргумент. Второй необходимо использовать в тех случаях, когда необходимо вызвать исключение, но перед этим выполнить какие-либо действия, после которых команда GetLastError() вернет не верные значения. Для этого сохраняется код ошибки, выполняются действия, затем вызывается исключение. Пример таких действий можно найти ниже: очиста PTR, исползуемой для маршалинга (PTR необходимо очистить до вызова исключения, т.к. вернуться к этому куску кода в дальнейшем не получится).

При этом реализация методов будет самой, что ни на есть элементарной:

Память выделенную под SCM надо очищать

Основной функционал

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

Первый метод связывает sys файл с сервисом, добавляя этот сервис в систему. Второй — удаляет драйвер из системы, остальные две — запускают и останавливают сервис, соответственно.

Настройки при компиляции

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


Не забудьте прописать lib:

Свойства проекта


Настройки свойств при компилировании библиотеки:

Послесловие

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

  • авторизация пользователей через Active Directory
  • e-mail уведомления о пушах
  • управление и создание репозиториев, а так же управление доступом через web-интерфейс
  • возможность размещения mercurial, git, svn
  • простота разворачивания
  • поддержка SSL

Внедрение сервиса проводилось на Debian 8.3 x64.

Под катом процесс установки и настройки:

1. Установка Mercurial и SCM-Manager

Устанавливаем Mercurial и доп. пакеты:


Переходим в директорию, куда будем устанавливать SCM-Manager:


Скачиваем последнюю версию с официального сайта:


Удаляем скачанный архив:


На этом этом этапе сервис полностью функционален и готов к работе в своей базовой комплектации. Web-интерфейс доступен по адресу: localhost:8080. Логин и пароль администратора по умолчанию: scmadmin. Но продолжим настройку.

2. Делаем автозагрузку SCM-Manager

Создаем файл /etc/init.d/scmserver:


Вписываем в созданный файл следующее:


Поправим права, что бы файл был исполняемым:


Добавляем в автозагрузку:

3. Перенос сервиса на другой порт


Меняем на нужный нам, сохраняем файл и перегружаем сервис:

4. Добавляем SSL

Перейдем в каталог с конфигом:


Генерируем сертификат на 1 год:


Раскоментируем строки SSL-коннектора и укажем пароль (вместо *password*) для хранилища ключа, что мы вписывали создавая его, порт на котором он будет слушать SSL («Port»), а так же укажем местоположение хранилища ключей:


Смотрим fingerprints если нужно:


В процессе настройки SSL столкнулся с проблемой, что при пушах через ssl — сервер упрямо ругался на SSL и не хотел пушить, дело оказалось в том что в Python 2.7.9 и позже версии включили по умолчанию запрет на самоподписанные сертификаты. Что бы отключить данную опцию редактируем файл:

Перегружаем сервис для применения изменений:


На этом настройка через консоль завершена и дальше настройка продолжится через web-интерфейс.

5. Настройка SCM-Manager через web-интерфейс

Заходим в web-интерфейс localhost:8080. Убрать анонимный доступ и сменить пароль на встроенного администратора. В web-интерфейсе перейдите в «Security» — «Users» —> удалите пользователя «anonymous» —> измените пароль пользователя «scmadmin».

Установка плагинов для авторизации через AD, отправки почты, отправки уведомлений о пушах. В web-интерфейсе перейдите в «Config» — «Plugins»:

Для авторизации через AD установите: «scm-auth-ldap-plugin»
Для отправки почты установите: «scm-mail-plugin»
Для уведомлений о пушах установите: «scm-notify-plugin»

Установка плагина для просмотра активности в репозиториях через web-интерфейс:

В web-интерфейсе перейдите в «Config» — «Plugins»
Установите плагин: «scm-activity-plugin»

Для окончания установки плагинов перегрузите сервис:


Конфигурация плагина «LDAP Authentication». В web-интерфейсе перейдите в «Config» — «General» — Section «LDAP Authentication».

Profile: «ActiveDirectory»
Base DN: пусть к OU с пользователями для авторизации
Connection DN: пользователь для авторизации SCM-Manager в AD
Connection Password: (Пароль пользователя для авторизации SCM-Manager в AD)
Host URL: ip и порт контроллера домена
Enable nester ad groups: no
Use StartTLS: no (Включить\выключить шифрование при коннекте к AD)
Enable: yes (Включить\выключить плугин)

После внесения настроек нажать для их сохранения кнопку «Save». Можно после внесения настроек протестировать настройки кнопкой «Test Connection». Теперь любой доменный пользователь из указанной OU может залогиниться. Но при этом у него по умолчанию нет прав никуда и он не сможет увидеть ни один репозиторий. Нужно администратору дать доступ пользователя добавив его в acces-list репозитория или в группу которой дан доступ в необходимые репозитории.

Конфигурация плагина по отправке почты: в web-интерфейсе перейдите в «Config» — «General» — Section «Mail configuration».

Установить следующие параметры:

Host: адрес SMTP-сервера
Port: порт SMTP-сервера
Username: имя пользователя для авторизации на SMTP-сервере
Password: пароль пользователя для авторизации на SMTP-сервере
From: от кого будет исходить письмо
Transport Strategy: SMTP_PLAIN (Передача пароля открытым типом)
Subject Prefix: (что будет вставляться в начале темы письма)

Можно протестировать внесенные настройки кнопкой «Test Configuration».

Изменить расположение репозиториев на сервере: в web-интерфейсе перейдите в «Config» — «Repository Types».

В разделах для SVN, Mercurial, Git написать свой путь в строках «Repository directory».

Создание репозиториев: в web-интерфейсе перейдите в «Main» — «Repositories», нажать «Add». В поле «Name» указать название репозитория, в поле «Type» выбрать тип репозитория.

Настройка почтовых push-уведомлений для репозиториев: в web-интерфейсе перейдите в «Main» — «Repositories», выделите репозиторий, где нужно настроить почтовые push-уведомления, снизу появятся закладки, перейдите в закладку «Notification» и заполните:

Notify Repository Contact: no
Use Author as From Address: no
Email per Push: no
Maximum Diff Lines: 1000 (максимальное количество строк в письме в которых будут показаны изменения внесенные в файлы репозитория)

Добавте почтовый адрес на который будут приходить уведомления нажав на кнопку «Add». Сохраните внесенные изменения нажав кнопку «Ok».

На этом настройка конфигурации сервера по заданным условиям окончена и сервис готов к использованию. SCM-Server позволяет импортировать репозитории с одним ограничением — он не умеет импортировать репозитории из мест где нужна авторизация.

"Ну вот! Начали за здравие, кончили за упокой. При чем тут службы?" - спросите вы. и будете неправы. Очень даже при чем.

Я было начал эту статью с описания простейшего драйвера, но, по ходу дела, был вынужден отвлекаться на то, чтобы объяснять, как его зарегистрировать, запустить и т.д. и т.п. Тогда я решил, что будет логичнее, сначала поведать о том, как драйверы регистрируются, запускаются… Но тут возникла похожая проблема. Мне пришлось говорить о том, к каким действиям еще не написанного драйвера, приведет тот или иной вызов диспетчера управления службами или диспетчера ввода-вывода. Тут уж ничего не поделаешь. Слишком тесно эти компоненты связаны друг с другом. Как бы там ни было, но я остановился на втором варианте: сначала я глаголю о диспетчере управления службами, потом, в следующей статье, о простейшем драйвере, затем о диспетчере ввода-вывода, и наконец, разберем полнофункциональный драйвер. Когда вы прочитаете последующие статьи, будет неплохо вернуться к предыдущим - тогда многое встанет на свои места. Так что запаситесь терпением.

Поскольку у меня нет ни малейшего желания выступать в качестве переводчика официальной документации Microsoft, по крайней мере безвозмездно, то информацию о функциях, которыми мы будем пользоваться, принимаемых ими параметрах и их значениях, я буду давать лишь в объеме, необходимом для реализации наших целей. За подробностями обращайтесь к MSDN, API Reference и DDK.

  • Диспетчер управления службами (Service Control Manager, SCM). Именно благодаря ему мы будем иметь возможность легко и просто загружать наши драйверы;
  • Программа управления службой (Service Control Program, SCP). Работает в тесной связке с SCM;
  • Собственно сам драйвер.


Диспетчер управления службами

На конечном этапе загрузки системы, перед появлением диалога регистрации пользователя, запускается SCM (\%SystemRoot%\System32\Services.exe), который, просматривая раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\, создает свою внутреннюю базу данных (ServicesActive database или SCM database). Далее SCM находит в созданной базе все драйверы устройств и службы, помеченные для автоматического запуска, и загружает их.

Чтобы получить кое-какое представление об этом, запустите редактор реестра (\%SystemRoot%\regedit.exe), откройте раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ и изучите его содержимое.

Теперь запустите оснастку Администрирование > Службы ( Administrative Tools > Services ). Вы увидите список установленных служб (именно служб, а не драйверов).

Чтобы просмотреть список загруженных драйверов, запустите Администрирование > Управление компьютером ( Administrative Tools > Computer Management ) и в левом окне откройте ветвь Служебные программы > Сведения о системе > Программная среда > Драйверы ( System Tools > System Information > Software Environment > Drivers ).

Проанализировав содержимое этих трех окон, вы заметите, что они во многом совпадают.

Вышеупомянутый раздел реестра содержит подразделы, обозначенные внутренним именем драйвера или службы. Соответственно, каждый подраздел содержит сведения о конфигурации драйвера или службы.

Рассмотрим минимально возможный набор параметров, необходимых для запуска драйвера. Более подробно можно почитать тут: Windows 2000 DDK > Setup, Plug Play, Power Management > Design Guide > Reference > Part3: Setup > 1.0 INF File Sections and Directives > INF AddService Directive . В качестве примера, возьмем простейший драйвер режима ядра beep.sys (о нем самом мы поговорим в следующий раз). Подраздел реестра соответствующий этому драйверу и его содержимое представлен на рис 2-1.

Рис. 2-1. Подраздел реестра для драйвера beep.sys

Автоматический запуск драйвера иногда называют статической загрузкой, по аналогии со статически загружаемыми VxD в Windows 9x. Это не правильно, т.к. автоматически загруженный драйвер можно выгрузить и удалить из базы данных SCM в любой момент.

Читайте также: