Услуги можно отключить с помощью msconfig
, а затем включили позже.
Я обнаружил, что их также можно включить или отключить с помощью sc config
команд, установив start
вариант как disabled
или один из boot
,system
,auto
,и т.д.
Как я могу создать сценарий или использовать командную строку в программе, чтобы определить, какой тип запуска использовать при повторном включении службы?
Что вам нужно определить? Установлен ли он уже на тот тип, который вы хотите установить?
На самом деле не имеет значения, каково текущее состояние. Если вы «повторно включаете» службу, устанавливая для нее тип запуска «Автоматически», а для нее уже установлено значение «Автоматически», то никаких изменений не произойдет, поэтому вам действительно не нужно определять ее текущее состояние.
Я не думаю, что есть какой-то родной способ сделать это. Единственный способ сделать это - экспортировать состояние, когда вы его отключите, а затем повторно прочитать его из файла конфигурации, когда вы его включите. Возможно, вам повезет больше в StackOverflow с этим.
На каком O / S вы работаете? Powershell может быть лучшим выбором. Вы можете использовать Google "Get-Service" для начала.
Я понял!
После некоторого тестирования и исследования я обнаружил место в реестре, где msconfig
сохраняет прошлое включенное начальное значение, а также дату отключения.
HKLM\Software\Microsoft\Shared Tools\MSConfig\services
Он состоит из подключах для каждой отключенной службы, и каждый подключ имеет следующие значения: YEAR
, MONTH
, DAY
, HOUR
, MINUTE
, SECOND
а также краткое имя отключенной службы, данные которой содержат одно из следующего:
0
= загрузка1
= система2
= авто3
= спрос5
= Авто с задержкойВсе, что мне нужно сделать, это прочитать и написать здесь при включении и отключении служб.
К вашему сведению: 4
= отключено. Вот почему его нет в списке выше. В этом месте перечислены только те ключи, которые в настоящее время отключены. И я не думаю, что в XP есть 5
.